2013-03-01 17 views
6

Ho un'app PhoneGap, dove uso il plug-in della fotocamera. Il problema è che i pulsanti non usano la lingua nativa di iOS, ma sono solo in inglese ('Retake' e 'Use' ecc.).Lingua inglese cambia lingua delle etichette?

L'app che sto facendo è un'app per bambini, ma non sono madrelingua inglese. Quindi mi piacerebbe averlo nella loro lingua madre.

Esiste un modo per tradurre quei pulsanti nella lingua corretta?

+0

Hai risolto questo? Per qualche ragione la mia app mostra i pulsanti in tedesco, leggi qui http://stackoverflow.com/questions/25245093/wrong-language-on-native-controls-ios-html5-cordova-app – Mirko

+1

Vedi questa domanda. Ho risolto questo qui: http://stackoverflow.com/questions/34286524/how-to-change-cordova-camera-plugin-language-in-ios/34574301#34574301 – Perfection

risposta

0

Cordova è fortunatamente open source.
Il primo passaggio è segnalare il bug su Apache Cordova bug tracker. Quindi, clona il cordova source code per cercare di capire perché il plug-in non visualizza la lingua corretta.

Non è così complicato. Plugin è solo una colla tra una funzione javascript e una funzione nativa.

+0

L'intero punto di utilizzo di Cordova non è quello di cambiare il Codice nativo – Mirko

1

Se si utilizza XCode come IDE per sviluppare il progetto, è possibile localizzarlo come un normale progetto iOS. Per sapere come fare puoi controllare questo other post. Non è necessario fornire la traduzione per quelle "parole" (Retake, Use, ecc.), Basta impostare le localizzazioni appropriate per dire all'iOS di usare la lingua nativa.

Tuttavia, se si utilizza PhoneGap Build per compilare il progetto, selezionare this topic nel forum PhoneGap Build. Simile alla procedura XCode, dovrai creare una cartella chiamata "locales" nella tua directory/www e inserire le lingue che desideri utilizzare. Ancora una volta, non è necessario fornire la traduzione per quei pulsanti. L'iOS farà da solo.

2

Sono stato in grado di modificare le lingue dell'etichetta modificando il plist del progetto (platforms/ios/ProjectName/ProjectNAme-Info.plist).

ho cambiato CFBundleDevelopmentRegionEnglish-fr_FR e ha aggiunto questa matrice:

<key>CFBundleLocalizations</key> 
<array> 
    <string>fr</string> 
</array> 
0

Infatti, CFBundleDevelopentRegion sembra essere un ripiego se iOS non riesce a trovare localizzazioni dichiarati nei CFBundleLocalizations.

Non è necessario modificare quella chiave. Basta aggiungere una serie di codici Paese ISO in .plist (come ha fatto Michaël) è sufficiente.

1

Se non si desidera modificare manualmente la lingua in XCode dopo ogni generazione, si possono fare le seguenti aggiornamenti nel codice sorgente PhoneGap/Cordova sul vostro Mac:

(Esempio con Cordova 3.6.3 e il locale Francese, è necessario aggiornare alla lingua versione &)

Folder : ~\.cordova\lib\npm_cache\cordova-ios\3.6.3\package\bin\templates\project\__PROJECT_NAME__\ 
File : __PROJECT_NAME__-Info.plist 
Update : 
    => Change <key>CFBundleDevelopmentRegion</key> 
       <string>English</string> 
     to  <key>CFBundleDevelopmentRegion</key> 
       <string>France</string> 

    => Add after it 
       <key>CFBundleLocalizations</key> 
       <array> 
        <string>fr</string> 
       </array> 

Folder : ~\.cordova\lib\npm_cache\cordova-ios\3.6.3\package\bin\templates\project\__PROJECT_NAME__\Resources\ 
Update : 
    => Create a 'fr.lproj' folder by Copy/Paste of the 'en.lproj' folder 
    => Complete the translation in 'fr.lproj/Localizable.strings' file (not required) 

questo avrà effetto su tutti i progetti che si genera con questa versione Cordova.

Eseguire prima il backup della cartella cordova e non lasciare file indesiderati nella cartella 'templates' o saranno copiati nel pacchetto finale.

Spero che aiuti.

0

La soluzione è quella di dichiarare le lingue nel file plist come:

<key>CFBundleLocalizations</key> <array> <string>it</string> <string>es</string> </array>

Se non si vuole fare manualmente, perché è probabile che non esegue il monitoraggio il file plist, è possibile utilizzare il Cordova Custom Config plugin per aggiungere le chiavi mancanti al file plist quando si esegue cordova prepare

Problemi correlati