2015-06-07 10 views
23

Sto rilevando un'app scritta interamente in francese. Le stringhe sono codificate in francese nel codice e tutti i messaggi nello storyboard sono in francese. Ma la regione di sviluppo iniziale in Info.plist è stata lasciata in inglese. Così ho cambiato CFBundleDevelopmentRegion in fr in modo che corrisponda al linguaggio reale che è stato utilizzato. Ma XCode continua a dirmi che la mia lingua è l'inglese per lo sviluppo:Come cambio la lingua di sviluppo in Xcode prima di internazionalizzare la mia app?

XCode 6.3.2 project Info tab

Come posso correggere questo? L'obiettivo è essere in grado di attivare l'internazionalizzazione di base e utilizzare il francese come lingua di base anziché inglese.

risposta

0

Selezionare il file Info.plist sotto il gruppo Supporting Files nel Navigatore di progetto (a destra). Quindi, nella vista dell'editor nel Localization native development region fare clic sulle frecce su e giù sulla destra di "Inglese" e selezionare France.

Open base-language selection

Questo dovrebbe essere esso. Sebbene Xcode a volte non aggiorni la vista "Info" delle impostazioni del progetto.

+0

L'avevo già fatto ma non era abbastanza. – Sebastien

+1

Questo non ha assolutamente nulla a che fare con la lingua "Base". Questo definisce solo quale lingua verrà utilizzata se non esiste nessuna delle lingue preferite dell'utente. – geon

+0

@geon: dove hai letto questo? https://developer.apple.com/library/prerelease/ios/documentation/MacOSX/Conceptual/BPInternational/InternationalizingYourUserInterface/InternationalizingYourUserInterface.html#//apple_ref/doc/uid/10000171i-CH3-SW2 e https: // developer. apple.com/library/prerelease/ios/documentation/MacOSX/Conceptual/BPInternational/InternationalizingYourUserInterface/InternationalizingYourUserInterface.html#//apple_ref/doc/uid/10000171i-CH3-SW4 non menziona la selezione della traduzione predefinita se nessuna traduzione per l'utente -language è disponibile. – dergab

15

Forse l'ho capito.

Ho sviluppato un'applicazione in svedese, ma la lingua di sviluppo è impostata sull'inglese.

Ho modificato manualmente MyProject.xcodeproj/project.pbxproj. Ci sono due linee di questo tipo:

91C8245918BDFA6100A9972F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; }; 

e questa sezione:

developmentRegion = English; 
hasScannedForEncodings = 0; 
knownRegions = (
     en, 
     Base, 
); 

Cambiare tutto "en" a "sv" come questo:

91C8245918BDFA6100A9972F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/InfoPlist.strings; sourceTree = "<group>"; }; 

e

developmentRegion = Swedish; 
hasScannedForEncodings = 0; 
knownRegions = (
     sv, 
     Base, 
); 

e lo spostamento del file MyProject/en.lproj/InfoPlist.strings a MyProject/sv.lproj/InfoPlist.strings sembra averlo risolto. Ora il "linguaggio di sviluppo" si presenta come svedese e posso aggiungere una traduzione in inglese.

Dopo aver aggiunto la traduzione, lo storyboard ha un triangolo di espansione in cui la lingua di base è la versione svedese esistente e la traduzione è un file di stringhe in inglese.

The storyboard have an English translation. Yay.

18

La seguente procedura ha funzionato per me, ma include modificando manualmente project.pbxproj di file:

  1. Uscire da XCode
  2. Aprire il file project.pbxproj con il vostro editor di testo preferito
  3. aggiornare i seguenti sezione (vicino a developmentRegion):

VECCHIO:

developmentRegion = English; 
    hasScannedForEncodings = 0; 
    knownRegions = (
     en, 
     Base, 
    ); 

NUOVO:

developmentRegion = fr; 
      hasScannedForEncodings = 0; 
      knownRegions = (
       fr, 
       Base, 
      ); 

ho creato un GitHub repository con un progetto di esempio che è stato inizialmente creato con inglese come predefinito sviluppo del linguaggio, e quindi aggiornato con la procedura di cui sopra per utilizzare francese come lingua di sviluppo.

Project ScreenShot

0

Ecco uno script Ruby per cambiare la regione di sviluppo nel progetto Xcode utilizzando le cocoapods librerie:

require 'fileutils' 
require 'Xcodeproj' 

filename = ARGV.first 

raise "Argument '#{filename}' is not a valid .xcodeproject" unless filename && File.directory?(filename) && File.extname(filename).downcase == ".xcodeproj" 

puts "Region to set: " 
region = $stdin.gets.chomp 

project = Xcodeproj::Project.open(filename) 
project.root_object.development_region = region 
project.save 

puts "#{project.path}", "development_region = #{project.root_object.development_region}" 

https://www.ralfebert.de/snippets/ios/xcode-change-development-language/

2

Volevo sviluppare il progetto nel mio linguaggio "sviluppatore" utilizzando segnaposto anziché testi reali nell'esempio "WLAN_NOT_AVAILABLE" all'interno di NSLocalizedString che in seguito verrà tradotto in lingue diverse, compreso l'inglese, fuori rotta. Non mi piace quando devo scrivere frasi intere nel codice.

ho fatto solo aprire il file * .pbxproj all'interno della cartella * .xcodeproj e cambiato la seguente riga:

developmentRegion = Base; 

Dopo che l'inglese non era più impostato come linguaggio di sviluppo e sono stato in grado di trattarlo come chiunque altro. Questo ti dà come sviluppatore la possibilità di scrivere segnaposti di testo breve e delegare l'ortografia corretta a un altro nella tua squadra.

Problemi correlati