Estamos desenvolvendo um aplicativo grande, composto por muitos pacotes pequenos. Cada pacote possui seu próprio conjunto de arquivos de recursos para localização.
Qual é a melhor abordagem para organizar e nomear as cadeias de localização?
Aqui estão os meus pensamentos até agora:
Manipulação de duplicatas
O mesmo texto (por exemplo, "CEP") pode ocorrer várias vezes em um determinado pacote. O instinto de programação (DRY) diz-me para criar um recurso de cadeia única compartilhado por todas as ocorrências .
Por outro lado, um tradutor pode querer escolher uma tradução longa ("Postleitzahl") em alguns lugares e outra mais curta ("PLZ") em lugares com menos espaço. Ou podemos decidir anexar dois pontos a algumas ocorrências ("CEP:"), mas não a outras. Ou podemos exigir uma capitalização diferente ("código postal") em alguns lugares. Todos esses argumentos apontam para a criação de um recurso por uso, mesmo que seu conteúdo seja idêntico .
Nomeação
Se pretendemos eliminar duplicatas, faz sentido nomear recursos por conteúdo , talvez sugerindo o tipo de uso via prefixo. Portanto, podemos ter labelOK
= "OK" , messageFileTooLarge
= "O arquivo excede o tamanho máximo do arquivo." e labelZipCode
= "CEP" .
A nomeação por conteúdo tem a vantagem de manipular argumentos de formato naturalmente: O recurso messageFileHas_0_MBWhileMaximumIs_1_MB
claramente usa dois argumentos de formatação, o tamanho real do arquivo e o tamanho máximo do arquivo.
Se permitirmos duplicatas, no entanto, nomear somente pelo conteúdo não faz sentido. Para obter nomes de recursos exclusivos, devemos, de alguma forma, incluir o local de uso no nome do recurso. Isso funciona para controles gráficos, embora os identificadores tendam a demorar um pouco: fileSelectionConfirmationButtonText
= "OK" , customerDetailsTableColumnZipCode
= "CEP" . No entanto, para arquivos de código não visuais, fica mais difícil. Como você nomeia um uso específico de uma string se não sabe onde ela será exibida? Por arquivo de código e nome da função? Parece um pouco desajeitado e quebradiço para mim.
Em suma, estou inclinado a permitir duplicatas, mas estou lutando para encontrar um esquema de nomes consistente que suporte isso.
Editar: Esta pergunta tem dois aspectos: Como organizar recursos (DRY x duplicatas) e como nomeá- los. Até agora, as respostas se concentraram no primeiro aspecto. Eu gostaria de receber algum feedback sobre convenções de nomenclatura!