Como definir um idioma diferente do inglês como idioma de desenvolvimento e localização Base?
Quando um projeto Xcode do aplicativo iOS é criado recentemente, na configuração do projeto (não alvo), podemos ver que ele possuiUse Base internationalization
ativado por padrão e existem 2 arquivos localizados para oDevelopment Language
qual éEnglish
por padrão (um paraMain.storyboard
e um paraLaunchScreen.storyboard
, ambos os quais residem noBase.lproj
diretório). Veja abaixo a captura de tela:
(Para simplificar, mencionarei apenasMain.storyboard
de agora em diante.)
E na seção de localização deMain.storyboard
do lado direito do painel, podemos ver que oBase
localização é verificada por padrão e também há umaEnglish
localização que está desmarcada por padrão. Veja abaixo a captura de tela:
E no alvoInfo.plist
, existe uma chave chamadaLocalization native development region
(ou seja,CFBundleDevelopmentRegion
) e seu valor padrão éen
. Veja abaixo a captura de tela:
Se eu entendi direito, com essas configurações padrão, o desenvolvedor pode escrever em inglês noBase
localização deMain.storyboard
e deixe oEnglish
localização como desmarcada. Se o aplicativo precisar se adaptar a outro idioma, o desenvolvedor poderá adicionar uma localização na configuração de localização do projeto e selecionarMain.storyboard
na caixa de diálogo exibida. Veja abaixo a captura de tela:
TomaChinese (Simplified)
como exemplo, isso resultará em um diretório recém-criadozh-Hans.lproj
com umMain.strings
arquivo dentro dele. (Para simplificar, vou me referir a ele comoChinese
ao invés deChinese (Simplified)
.) O desenvolvedor só precisa traduzir as cadeias de inglês dentro deste arquivo para chinês (o recém-criadoMain.strings
nozh-Hans.lproj
por padrão, todos os textos em inglês duplicados do diretórioMain.storyboard
noBase.lproj
) Com essas configurações, oLanguage
O campo na descrição deste aplicativo na AppStore listará inglês (a partir doBase
localização, porque o inglês é odevelopment language
) e chinês (doChinese
localização). No dispositivo do usuário final, se o idioma do sistema for inglês / chinês (ou inglês / chinês estiver entre o idioma preferido), o aplicativo usará o recurso de idioma correspondente (para inglês, use oBase
localização; para chinês, use oChinese
localização). Para todas as outras preferências de idioma, o inglês atuará como idioma substituto porqueCFBundleDevelopmentRegion
éen
, tãoBase
localização é usada.
Portanto, minha primeira pergunta será: o entendimento acima está correto? Para resumir, com odevelopment language
sendo inglês, não precisamos ativarEnglish
localização para arquivos de storyboard. Basta usar oBase
localização e escreva inglês diretamente nos arquivos do storyboard. Só precisamos adicionar a localização para outros idiomas que não o inglês. (Na verdade, parece problemático se ativarmos oEnglish
localização. E seEnglish
localização estiver ativada, precisamos manter os dois textos emBase.lproj/Main.storyboard
een.lproj/Main.strings
.)
Se o entendimento acima estiver correto, minha segunda pergunta será: como alcançar a internacionalização de maneira inversa? Ou seja, se eu gostaria de usarChinese
Enquanto odevelopment language
e escreva chinês noBase
localização e adicione apenas localização para idiomas diferentes deChinese
, é possível e como fazer isso no Xcode? Não consigo encontrar uma maneira de mudar odevelopment language
na configuração do projeto, a fim de afirmar que oBase
localização no projeto éChinese
ao invés deEnglish
.