extension - xcode extract localized strings




Come usare genstrings su più directory? (8)

Ho una directory, che ha un sacco di sottodirectory. quei sottodivari a volte hanno anche sottodivisioni. ci sono file sorgente all'interno.

Come potrei usare i genstring per attraversare tutte queste dir e sottodirectory?

Diciamo che io cd alla mia directory principale in Terminal, e quindi vorrei scrivere questo:

genstrings -o en.lproj *.m

Come potrei dirlo ora per esaminare tutte queste directory? O dovrei aggiungere molti percorsi relativi separati da virgola? Come?


Ho appena aggiunto un altro percorso al comando genstrings, in questo modo:

genstrings -o en.lproj *.m Classes/*.m

..e ha funzionato bene!

Btw. una cosa a portata di mano sui genstrings. Quando continui a sviluppare la tua app, genstrings ha uno switch -a che aggiunge nuove stringhe al file di stringa localizzato.


Prova questo

genstrings -o English.lproj ./Classes/*.m ./Classes/*.h ./Classes/subclass/*.m

Se le sottocartelle non sono troppe, funzionerà perfettamente.



Quanto segue migliora le risposte precedenti, questo troverà entrambi i file .h e .m:

find ./ -name *.h -print0 -o -name *.m -print0 | xargs -0 genstrings -o en.lproj

Un metodo potrebbe essere:

find ./ -name "*.m" -print0 | xargs -0 genstrings -o en.lproj

xargs è un bel pezzo di shell-foo. Prenderà delle stringhe standard in e le convertirà in argomenti per la funzione successiva. Questo popolerà il comando genstrings con ogni file .m sotto la directory corrente.

Questa risposta gestisce gli spazi nel percorso utilizzato in modo che sia più robusto. Dovresti usarlo per evitare di saltare i file durante l'elaborazione dei tuoi file sorgente.

Modifica: come detto nei commenti e in altre risposte, * .m dovrebbe essere citato.


Non so esattamente perché, ma il comando di Brian non ha funzionato per me. Questo ha fatto:

find . -name \*.m | xargs genstrings -o en.lproj

EDIT: Beh, quando ho originariamente scritto questo ero di fretta e avevo solo bisogno di qualcosa che funzionasse. Il problema che stava accadendo per me quando usavo la risposta accettata sopra era che "* .m" deve essere citato (e il curioso può trovare una spiegazione sul perché questo è il caso nei commenti sulla risposta di Brian King). Penso che la soluzione migliore sia usare quella risposta originale con il bit appropriato, che poi leggerà:

find ./ -name "*.m" -print0 | xargs -0 genstrings -o en.lproj

Sto lasciando intatta la mia risposta originale sopra, nel caso in cui aiuti ancora qualcuno per qualsiasi motivo.


trova ./ -name "* .m" -print0 | xargs -0 genstrings -o en.lproj

Questo popolerà il comando genstrings con ogni file .m nella directory corrente. Di creare la "chiave / contesto" NSLocalizedString () nel file Localizable.string, che può essere utilizzato in qualsiasi punto del progetto.


veloce

find ./ -name \*.swift -print0 | xargs -0 genstrings -o .en.lproj

Se hai bisogno del file nella stessa cartella

find ./ -name \*.swift -print0 | xargs -0 genstrings -o .




localization