Localizable.strings Woes
-
26-09-2019 - |
Pergunta
Meu arquivo localizável.strings foi corrompido e eu não sei como restaurá -lo.
Se eu o abrir como um arquivo de texto sem formatação, ele começa com caracteres estranhos que não posso copiar aqui.
Se eu deixar o arquivo ser o aplicativo criado. Se eu fizer alguma alteração, os valores não são interpretados corretamente ou recebo um erro no horário de compilação.
Localizable.strings: Conversion of string failed. The string is empty.
Command /Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/copystrings failed with exit code 1
Eu suspeito que esse seja um problema de codificação, mas não sei como aconteceu (talvez o SVN seja o culpado?) Nem como resolvê -lo. Quaisquer dicas serão muito mais apreciadas.
Solução
Tenho problemas com o mesmo arquivo que parecem muito semelhantes aos seus. O que acontece para mim é que o Xcode não conhece a formação de arquivo correta. Costumo entender isso ao reorganizar o projeto e removo e re-adquiri esse arquivo para o projeto Xcode. Quando eu adicionei o arquivo, sua codificação é definida para algo como o Western Roman, que parece não conseguir renderizar nada além do ASCII.
Aqui está o que eu faço para resolver o problema:
No Xcode, selecione o arquivo localizable.stings no painel Grupos e Arquivos.
Faça uma informação Get nesse arquivo.
No painel de informações, selecione a guia Geral.
Nessa guia, vá para o arquivo que codifica e altere seu valor.
O último passo é onde está o truque, pois agora você precisa adivinhar a codificação certa. Acho que para a maioria dos idiomas europeus que "Unicode (UTF-8)" trabalha. E para os idiomas asiáticos, acho que "Unicode (UTF-16/32)" são os que tentam.
Outras dicas
Acabei de ter esse erro porque esqueci um semicolon. Demorei um pouco para descobrir. Parece um erro realmente ambíguo do compilador, mas a correção foi simples.
Certifique-se de que, nas informações de get-get, que o UTF-16 esteja selecionado. Se estiver definido como nenhum ou UTF-8 como codificação, você precisará alterá-lo. Se seus personagens tiverem espaços entre eles, você optar por "reinterpretar" o arquivo como UTF-16. Se houver caracteres estranhos no arquivo, você precisará removê -los.
Executar o problema do UTF-8, às vezes você ainda precisa verificar o conteúdo, caso haja alguns problemas de sintaxe.
Use a seguinte expressão regular para verificar sua linha de texto por linha, se houver alguma linha não correspondida, deve haver um problema.
"(.+?)"="(.+?)";
Você pode usar o plutil
ferramenta de linha de comando. Sem opções ou com o -lint
Opção, ele verifica a sintaxe do arquivo fornecido como argumento. Ele lhe dirá mais precisamente onde está o erro.
Isso acontece comigo quando há uma cotação ausente ou algo que não está certo com o arquivo. Geralmente, como meus arquivos de idioma são feitos por outro membro da equipe, ele tende a esquecer uma cotação ou algo assim. Normalmente, o Xcode mostra um erro nessa linha, às vezes ele não e apenas lança o erro de "dados corrompidos".
Verifique duas vezes se todas as suas cordas estão devidamente fechadas em cotações
Abra o arquivo no Xcode.
Clique com o botão direito do mouse no Project Navigator.
Selecione Aberto como -> Lista de propriedades ASCII