Eu localizei uma parte do meu aplicativo criando um storyboard base.lproj e três arquivos de string para ele. Foi há um mês e depois adicionei um novo controlador de exibição ao aplicativo, mas os botões e rótulos desse controlador não aparecem nos arquivos de string
É possível atualizar esses 3 arquivos de string anexados ao storyboard ou devo adicionar novas traduções de strings programaticamente usando NSLocalizableString e Localizable.strings?
Respostas:
Existem duas opções:
Opção 1
O Xcode pode "recarregar" o arquivo convertendo-o em um tipo de arquivo [Interface Builder Cocoa Touch Storyboard] ou em um tipo de arquivo [Localizable Strings] .
opção 2
Use o ibtool para extrair as strings do seu storyboard.
Abra o aplicativo Terminal
Localize o diretório Base.lproj
Use esta linha para extrair as seqüências de caracteres:
ibtool MainStoryboard.storyboard --generate-strings-file file_name.strings
Depois que o ibtool extrai as strings para file_name.strings, você pode copiá-lo e colá-lo no seu arquivo .strings original
Visite para mais informações: https://conyac.cc/business/columns/localization_guide_ios
fonte
Confira o BartyCrouch , ele resolve perfeitamente o seu problema. Também é de código aberto , é mantido ativamente e pode ser facilmente instalado e integrado ao seu projeto.
Instale o BartyCrouch via Homebrew :
Como alternativa, instale-o via Mint :
Atualize incrementalmente seus arquivos Storyboards / XIBs Strings:
Isso fará exatamente o que você estava procurando.
Para manter seus arquivos Storyboards / XIBs Strings atualizados ao longo do tempo , recomendo adicionar um script de construção (instruções sobre como adicionar um script de construção aqui ):
Além de atualizar de maneira incremental seus arquivos Storyboards / XIBs Strings, isso também garantirá que seus
Localizable.strings
arquivos permaneçam atualizados com as novas chaves adicionadas no código usandoNSLocalizedString
e mostrando avisos para chaves duplicadas ou valores vazios.Verifique o BartyCrouch no GitHub ou este artigo detalhado para obter informações adicionais.
fonte
Você pode adicionar manualmente uma chave ao seu arquivo de localização. Você pode encontrar o objeto principal selecionando-o no editor de storyboard. Vamos dar uma olhada no
Object-ID
inspetor de identidade. É parecido com"nwc-b2-19c"
Na sua atualização de localização ou adicione tradução. Por exemplo :
fonte
Este não é para todos, mas não requer ferramentas adicionais no terminal e é fácil para pequenas alterações manuais. (Não considere isso quando quiser automatizar seu processo.)
Etapa 0: configuração do idioma do storyboard
Esta etapa é realizada apenas uma vez.
Agora, quando adiciono algo ao storyboard, faço o seguinte
Etapa 1: adicionar o arquivo de seqüências de caracteres localizáveis em inglês
basta marcar o item de linha em inglês.
Isso cria um novo arquivo de strings localizáveis em inglês com todas as linhas
Etapa 2: copiar os novos itens de linha nos arquivos de outros idiomas
e traduzi-los
Etapa 3: desmarque o inglês e remova o arquivo de seqüências de caracteres localizável correspondente
o arquivo era necessário apenas para obter os novos itens de linha
Este é um processo fácil e rápido, tudo é feito no editor de storyboard
Editar:
Esse processo funciona muito bem com pequenos storyboards. Por exemplo, eu tenho um projeto baseado em guias e um storyboard para cada guia.
Pesquise "referência do storyboard" para encontrar tutoriais.
Bom exemplo: referência do Storyboard no Xcode, onde devemos usá-lo?
Portanto, cada pequeno storyboard possui apenas algumas seqüências de caracteres para localizar.
fonte
Finalmente, minha solução foi (rudimentar, mas eficaz) copiar as traduções anteriores e colá-las em um novo arquivo criado, desmarcando e marcando a caixa Idioma da localização.
Isso seria útil em alguns casos como o meu, quando você precisar alterar apenas um ou dois textos.
fonte
Acho que a melhor maneira é usar Localizações de exportação / importação internas:
PS Se você não deseja editar no XLIFF Editor e pulou a etapa 3, o XCode não pode salvar novas strings. Nesse caso, abra .xliff no XLIFF Editor, salve novamente sem alterações e importe um novo arquivo.
fonte
/* Class = "UILabel"; text = "a basic text"; ObjectID = "HFW-aN-MTb"; */
, mas o novo rótulo NÃO é criado no arquivo Main.strings. Depois editei o arquivo .xliff para adicionar uma tradução para o novo rótulo. Eu o importei novamente. O novo rótulo agora está inserido no arquivo Main.strings.Quando você clica em seu storyboard, Main.storyboard por exemplo ... No lado direito, você pode ver o menu de localização (veja a imagem em anexo). Se você desmarcar e verificar novamente um idioma, o arquivo será gerado novamente. Normalmente, copio o conteúdo, giro o arquivo novamente e colo o conteúdo que copiei e já fui traduzido.
É assim que eu uso para atualizar o dicionário.
fonte
Eu tenho um storyboard enorme com muitas cordas lá. Dois idiomas baseiam o inglês e outro árabe. A tarefa era adicionar alguns campos e rótulos ao storyboard e adicionar localização para eles sem nenhum script e NSLocalizableStrings.
Para mim ajudou a seguir:
Primeiro : verifique se você tem o git para evitar alterações inesperadas.
Editor
->Export For Localization...
. Salve o arquivo ar.xliff em algum lugar.fonte
Existe
um aplicativo,uma ferramenta de linha de comando da Apple chamada AppleGlot que suporta localização incremental. Ainda não tentei, mas parece exatamente com a ferramenta que você pesquisou (há algum tempo).fonte
appleglot
ferramenta está trabalhando com pacotes finais de aplicativos. É uma abordagem completamente diferente para aplicativos de tradução.Aqui está um script para extrair seqüências de caracteres de storyboards e xibs e mesclá-las com as traduções existentes.
Para executar o script automaticamente quando você cria um projeto, coloque o script no diretório raiz do projeto e adicione uma fase Executar Script com a seguinte linha às fases de construção de destino nas configurações do projeto.
Ou você pode executar o script no Terminal manualmente quando quiser.
O script é executado
ibtool
como Tha Leang respondeu. Também é executadogenstrings
para extrair e mesclar seqüências marcadas comNSLocalizedString
no seu código-fonte. O script é baseado em um script nesta postagem , que mescla seqüências de caracteres após a execuçãogenstrings
.fonte
A abordagem mais fácil e muito menos arriscada é apenas copiar o ID do objeto do storyboard e adicionar uma nova chave para a chave no arquivo localizado, como no exemplo abaixo:
1: Copie a identificação do objeto conforme abaixo do storyboard para o componente:
2: Adicione uma nova chave no arquivo localizado, como abaixo:
Nota: Essa é uma abordagem muito menos arriscada se você quiser atualizar apenas alguns componentes, caso contrário, poderá recriar arquivos localizados para o storyboard.
fonte
O Xlifftool está disponível como aplicativo para Mac e funciona bem. Ele mostra todas as strings e objetos traduzíveis de info.plist, strings localizáveis e o storyboard.
Obtenha aqui para o mac: https://itunes.apple.com/lv/app/xlifftool/id1074282695?mt=12
Etapa 1: no Xcode, selecione a pasta do projeto no navegador do projeto. Em seguida, selecione Editor / Exportar para localização ...
Suas strings traduzíveis serão incluídas em um arquivo xliff no idioma que você selecionou para localização no Xcode.
Etapa 2: abra o arquivo com xlifftool e traduza ou atualize suas traduções que foram feitas anteriormente.
Etapa 3: faça o upload novamente no seu projeto com Editor / Importar localizações ...
fonte
Esta é a minha maneira fácil de atualizar novo texto do storyboard ou xib para a sequência de localização
1- use este script http://tredje.se/dev/trouble/?x=entry:entry150917-204052
2- selecione sua string de localização que deseja atualizar e alterne a string de idioma de "String de localização" para "Storyboard do construtor de interface"
3- troque de volta :)
Feito.
fonte
Opção 1 O
Xcode pode "recarregar" o arquivo convertendo-o em um
[Interface Builder Cocoa Touch Storyboard]
tipo ou[Localizable Strings]
arquivo.Selecione seu arquivo de storyboard base na seção Localizar o Localizador do Project Navigator no Inspetor de Arquivos . Se seu arquivo é atualmente um , altere-o para ou vice-versa. O Xcode deveria ter convertido seu storyboard para a versão atual, preservando seus antigos esforços de localização. Aqui você pode alterar o arquivo novamente para o tipo de arquivo original, se desejar.
[Localizable Strings]
[Interface Builder Cocoa Touch Storyboard]
Opção 2
Use
ibtool
para extrair as seqüências de caracteres em seu storyboard.Abra o aplicativo Terminal
Localize seu
Base.lproj
diretórioUse esta linha para extrair as seqüências de caracteres:
Depois que o ibtool extrai as strings para
file_name.strings
, você pode copiá-lo e colá-lo no seu.strings
arquivo original .fonte