Localização do Storyboard do XCode Duplicate Strings Merge?

9

Atualmente, estou trabalhando em um aplicativo iOS e localizando-o em vários idiomas, mas enfrentei um problema incômodo (sem quebra).

Quando adiciono uma nova localização ao meu storyboard, o xcode preenche automaticamente as strings, o que é muito bom. O problema que estou tendo é que eu tenho várias interfaces que ambos têm um botão de volta. O texto sobre estes é, naturalmente, o mesmo e suas traduções são bem. A pergunta que eu estava pensando, é possível, sem usar strings.localizable, de alguma forma mesclar várias traduções de objetos em um?

É assim que seria atualmente:

"Pnu-Ec-HAj.normalTitle" = "Back";
"Rtx-fT-rdc.normalTitle" = "Back";

Mas seria mais fácil se houvesse uma sintaxe como

"Pnu-Ec-HAj.normalTitle", "Rtx-fT-rdc.normalTitle" = "Back";  (esta sintaxe não está correta, obviamente)

Eu olhei em volta por um bom tempo, mas ainda não encontrei nenhuma resposta para essa pergunta.

Obrigado pela leitura.

    
por Guus 18.02.2016 в 14:31
fonte

2 respostas

2

Recomendaria referenciar todos os textos em seu storyboard em código e definir o texto em viewDidLoad como, por exemplo:

buyButton.titleLabel.text = NSLocalizedString(@"SHOP_BUY_BUTTON_TEXT",@"Button for buying product in detail view");

É muito trabalhoso se você tiver grandes storyboards, mas no final você tem um Localizable.strings limpo com chaves e comentários concisos, fornecendo o contexto necessário para seus tradutores.

Prefixo a chave com a seção do aplicativo, por exemplo, SHOP_*** , USER_SETTINGS_*** , etc.

Além disso, usamos um serviço como OneSky para organizar nossas traduções on-line e atualizá-las da nuvem (não associadas a elas e não é sem seus problemas iniciais também.

    
por Julian Vogels 06.09.2016 / 11:40
fonte
0

Infelizmente, os arquivos .strings são arquivos de valor-chave e, por natureza, deve haver uma chave (que é composta pelo ID da ponta do elemento seguido pela propriedade) e o valor da cadeia associada.

Como a Apple descreve no link precedente:

  

O formato de arquivo de strings padrão consiste em um ou mais pares de valores-chave, juntamente com comentários opcionais. A chave e o valor em um determinado par são strings de texto entre aspas duplas e separadas por um sinal de igual.

então, sua idéia não é suportada pelos arquivos .strings .

A única maneira de suportar esse recurso é usar o código NSLocalizedString .

    
por A_C 05.09.2016 / 15:55
fonte