Traduzindo o aplicativo iOS para idiomas não suportados / não padronizados

Estou expandindo um aplicativo existente para iPhone (4.xe superior) com suporte para mais idiomas: estoniano, letão e lituano.

No meu iPhone e no simulador não há suporte para esses idiomas, e tenho certeza de que nenhum firmware especial existe para eles para uso nesses territórios.

Como posso criar um aplicativo que ofereça suporte a eles?

Eu tenho duas soluções que eu realmente não gosto. Nenhum deles permite que eu tenha mais de um idioma no aplicativo, pois o usuário não pode escolher os idiomas incluídos na lista Settings.app. Isso significa que uma versão deve ser enviada para cada idioma.

Opção 1: Abuse o diretório en.lproj

Para cada idioma de destino (lt, lv, et) eu coloco os arquivos de strings para esse idioma em um diretório en.lproj.

Prós: Usa um mecanismo bem conhecido. O aplicativo acha que está executando o inglês.

Contras: Causa estragos em minhas ferramentas de localização. É confuso para futuros mantenedores e, portanto, propenso a erros. Requer uma configuração de compilação estranha.

Opção 2: Abuse NSUserDefaults [AppleLanguages]

oAppleLanguages objeto em NSUserDefaults contém uma lista de idiomas para o aplicativo usar. Ao configurá-lo dessa maneira, posso fazer com que o aplicativo carregue, por exemplo, o lituano de um diretório lt.lproj:

<code>[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"lt", nil] forKey:@"AppleLanguages"];
</code>

(Por razões históricas, eu já estou fazendo uma versão um pouco mais envolvida disso para remover uma tradução obsoleta em algumas versões do aplicativo. Caso contrário, as instalações mais antigas pegariam o diretório lproj mesmo que eu não mais o empaciasse com o aplicativo.)

Prós: Usa diretórios lproj corretamente nomeados. Integra-se bem com ferramentas de localização. Configuração simples. Requer apenas uma linha emmain.m implementar.

Contras: Mesmo que aAppleLanguages A chave está sendo usada por muitas pessoas que esta solução usa para carregar idiomas de outra forma não suportados, então temo que eu possa estar patinando em gelo fino.

Le QuestionsComo outros aplicativos normalmente suportam esses idiomas "não suportados"?Existe uma maneira de apoiá-los juntamente com os idiomas normalmente suportados?Como você se sente sobre oAppleLanguages hackear?

questionAnswers(1)

yourAnswerToTheQuestion