Guia de tradução
Introdução
Você fala um idioma estrangeiro ainda não suportado no Sweet Home 3D e gostaria de contribuir com sua tradução para esse idioma? A partir da versão 2.3, o Sweet Home 3D suporta arquivos SH3L e este guia vai te ensinar como criar um arquivo desse tipo por conta própria. Um arquivo SH3L é um arquivo de idioma auto-instalável e os usuários só precisam dar um duplo clique em um arquivo SH3L para traduzir o Sweet Home 3D para o idioma descrito nesse arquivo.
Instruções básicas
Criar um arquivo SH3L consiste em:
- downloading an English version of the files to translate,
- descompactar o arquivo baixado,
- adicionar um sufixo de 2 letras correspondente ao seu idioma aos arquivos
.propertiesque ele contém, - traduzir o texto nos arquivos
.properties, - convertê-los para codificação ASCII,
- traduzir o texto de ajuda nos arquivos
.html(não é obrigatório, mas será muito útil para os usuários), - compactar os arquivos
.propertiese os arquivos de ajuda em um arquivo com extensão SH3L, - dar um duplo clique no arquivo SH3L para testar sua tradução no Sweet Home 3D,
- distribuir seu arquivo SH3L.
Instruções detalhadas
Se você não tem medo das instruções básicas anteriores, continue com os próximos passos.
Obtendo a versão em inglês
Download the archive at https://www.sweethome3d.com/SweetHome3DTranslation.zip (version 7.5) and unzip it with the tools of your system.
SweetHome3DTranslation.zip contains a set of files with .properties and .html extensions placed in subfolders as shown in figure 1.

Todos os arquivos .properties e .html contêm a versão em inglês dos textos que você terá que traduzir para seu idioma:
- os arquivos
package.propertiesdescrevem rótulos, menus e itens de menu mostrados na interface do usuário do Sweet Home 3D, - os arquivos
basic.propertiesemetal.propertiesdescrevem rótulos de diálogo padrão, - os que terminam com
Catalog.propertiesdescrevem os nomes dos móveis e texturas disponíveis no software, - os arquivos
.htmlcontêm o texto da ajuda do Sweet Home 3D.

Os arquivos .properties devem ser colocados nas pastas mostradas na figura 1. caso contrário, o Sweet Home 3D não poderá usá-los corretamente. Então não mova os arquivos para fora de sua pasta, não renomeie nenhuma pasta (exceto o subdiretório en de help) e não exclua nenhuma pasta.
Renomeando arquivos de acordo com seu idioma
Antes de traduzir os arquivos .properties, você deve renomear cada um deles adicionando ao nome um sublinhado seguido do código ISO de 2 caracteres correspondente ao seu idioma. Você encontrará este código na última coluna do documento https://www.loc.gov/standards/iso639-2/php/English_list.php.
Então, se você quiser traduzir os arquivos de ajuda, você também deve renomear o subdiretório en de help com esse código de 2 letras.
Por exemplo, o código ISO para Tcheco é cs. Se você quiser traduzir o Sweet Home 3D para Tcheco, cada nome de arquivo deve ter o sufixo _cs, e você deve renomear os arquivos como mostrado na figura 2.

Traduzindo arquivos de propriedades
Os arquivos .properties são arquivos de texto simples e você pode editá-los com qualquer editor de texto como Wordpad, TextEdit ou emacs. Por exemplo, o arquivo com/eteks/sweethome3d/package.properties no Sweet Home 3D 3.0 contém o seguinte texto:
# package.properties 10 oct. 2007 # # Copyright (c) 2024 Space Mushrooms <[email protected]>. All Rights Reserved. # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. # # You should have received a copy of the GNU General Public License along with # this program; if not, write to the Free Software Foundation, Inc., 59 Temple # Place, Suite 330, Boston, MA 02111-1307 USA # Recursos para a classe HomeFramePane HomeFramePane.untitled=Sem título # Recursos para a classe MacOSXConfiguration MacOSXConfiguration.WINDOW_MENU.Name=Janela MacOSXConfiguration.MINIMIZE.Name=Minimizar MacOSXConfiguration.ZOOM.Name=Zoom MacOSXConfiguration.BRING_ALL_TO_FRONT.Name=Trazer tudo para frente # Recursos para a classe SweetHome3D SweetHome3D.3DError.message=<html> O Sweet Home 3D será encerrado agora devido a um erro fatal <br>no sistema de renderização 3D. Por favor, atualize os drivers DirectX/OpenGL <br>da placa gráfica do seu computador. SweetHome3D.3DError.title=Erro 3D SweetHome3D.confirmSaveAfter3DError.message=<html> O Sweet Home 3D deve ser encerrado agora devido a um erro fatal no <br>sistema de renderização 3D. Deseja salvar todas as casas modificadas? SweetHome3D.confirmSaveAfter3DError.title=Erro 3D SweetHome3D.confirmSaveAfter3DError.save=Salvar SweetHome3D.confirmSaveAfter3DError.doNotSave=Não salvar
Um arquivo .properties contém três tipos de linhas:
- as linhas que começam com o caractere # são comentários (mostrados em verde no exemplo anterior). Alguns comentários contêm informações legais, alguns fornecem informações para desenvolvedores ou tradutores. Mantenha essas linhas inalteradas.
- linhas vazias são usadas apenas para separar as várias partes de um arquivo
.properties. - as outras linhas começam com algum texto usado pelo Sweet Home 3D como uma chave para encontrar um texto exibido na tela (mostrado em azul no exemplo anterior). Após esta chave, cada uma dessas linhas contém um sinal de igual (
=) e um texto em um determinado idioma. Seu trabalho começa a partir dos sinais de igual. Não altere o texto da chave e substitua o texto em inglês após o sinal de igual pela sua tradução.
Casos especiais:
- Os textos começando com uma
<html>tag contêm algum texto no formato HTML. Estes textos contêm outras tags HTML entre<e>sinais, como<br>no exemplo anterior que representa uma quebra de linha no meio de textos longos. Não remova estas tags HTML, elas ajudam o Sweet Home 3D a apresentar corretamente alguns textos. Traduzir texto entre tags HTML não é muito difícil, exceto talvez para o pior texto HTML que é o valor da chaveWallPanel.wallOrientationLabel.text. - Para evitar linhas longas no editor de texto, algumas linhas
são divididas em duas ou mais linhas e então separadas por barras invertidas
\, como a linha começando porSweetHome3D.3DError.messageno exemplo anterior. Nesse caso, não remova o sinal\localizado no final de uma linha porque ele indica que a próxima linha segue a linha atual. - Alguns textos contêm sequência especial de caracteres começando
com um sinal
%, como%s,%d,%1$s,%2$s… Estas sequências de caracteres serão substituídas por um nome de arquivo, uma unidade ou um número quando necessário, então não as remova.
Por exemplo, a sequência de caracteres%sno texto da seguinte chaveHomeFurniturePanel.widthLabel.text:
HomeFurniturePanel.widthLabel.text=Largura (%s):
será substituída pela unidade atualmente em uso. As duas sequências de caracteres%1$de%2$dque aparecem no texto da seguinte chavePrintPreviewPanel.pageLabel.text:
PrintPreviewPanel.pageLabel.text=Página %1$d/%2$d
aparecerão na tela como um número de página e o total de páginas, e você deve traduzir apenas a palavraPage. - Alguns textos contêm também a sequência especial de caracteres
\ncomo no seguinte exemplo:HomeController.saveError=Não é possível salvar a casa em "%s"
Esta sequência de caracteres é exibida pelo Sweet Home 3D como uma quebra de linha para dividir uma linha na tela, e você não deve removê-las. - O valor da chave
HelpController.helpIndexindica o diretório onde os arquivos de ajuda podem ser encontrados. Se você traduzir os arquivos de ajuda .html, você deve substituir o subdiretórioenencontrado pelo código de 2 letras do seu idioma.
Por exemplo, se você traduzir a ajuda para Tcheco, deve ficar:HelpController.helpIndex=/com/eteks/sweethome3d/viewcontroller/resources/help/cs/index.html
- O texto das chaves que terminam com
.mnemonicsão usados pelo Sweet Home 3D para adivinhar qual letra em um rótulo ou item de menu deve ser sublinhada para acesso pelo teclado. Esta letra mnemônica depende da palavra exibida e você deve encontrar uma única por caixa de diálogo ou menu.
Por exemplo, os seguintes textos e mnemônicos exibidos na caixa de diálogo de modificação de móveis:HomeFurniturePanel.nameLabel.text=Nome: HomeFurniturePanel.nameLabel.mnemonic=N HomeFurniturePanel.nameVisibleCheckBox.text=Exibir nome no plano HomeFurniturePanel.nameVisibleCheckBox.mnemonic=E HomeFurniturePanel.widthLabel.text=Largura (%s): HomeFurniturePanel.widthLabel.mnemonic=L
podem ser traduzidos em francês por:HomeFurniturePanel.nameLabel.text=Nom : HomeFurniturePanel.nameLabel.mnemonic=N HomeFurniturePanel.nameVisibleCheckBox.text=Afficher le nom dans le plan HomeFurniturePanel.nameVisibleCheckBox.mnemonic=S HomeFurniturePanel.widthLabel.text=Largeur (%s) : HomeFurniturePanel.widthLabel.mnemonic=L
- Use Sweet Home 3D or 3d models import page to help you translate the
.propertiesfiles ending byCatalog.properties.
Convertendo arquivos de propriedades para codificação ASCII
Se você traduziu textos para um idioma com letras que não pertencem à codificação ISO-8859-1 (principalmente idiomas da Europa Central e Oriental e idiomas com alfabeto não latino), você terá que converter todos os seus arquivos .properties para uma codificação ASCII suportada pelo Sweet Home 3D. Esta conversão pode ser feita com a ferramenta native2ascii fornecida com o JDK ou pode ser realizada com o seguinte formulário.
Para cada arquivo .properties, crie um backup desse arquivo, copie/cole o texto a ser convertido na seguinte área de texto, clique no botão Converter e copie/cole o texto convertido de volta em seu arquivo .properties.
A ferramenta de conversão substituirá cada caractere não ASCII (letras latinas acentuadas e letras não latinas) por uma sequência começando com \u e seguida por um código de 4 dígitos hexadecimais correspondente a esse caractere em Unicode. Infelizmente, esta conversão tornará seu texto bastante ilegível para um humano, mas se você não a realizar, o Sweet Home 3D não será capaz de exibir os caracteres de sua tradução corretamente. Esta é a razão pela qual você deve criar um backup de seus arquivos .properties originais, caso queira alterá-los posteriormente.
Se você quiser editar diretamente arquivos .properties convertidos para ASCII, você também pode usar o aplicativo Properties Editor disponível como arquivo Jar executável aqui.
Traduzindo os arquivos de ajuda
Uma boa tradução do Sweet Home 3D também deve incluir a tradução de seus arquivos de ajuda. Traduzir todos os arquivos .html é uma tarefa longa, mas realmente ajudará os usuários a aprender o software e evitar algumas solicitações de suporte no fórum do Sweet Home 3D. Use qualquer editor HTML para traduzir estes arquivos, tentando manter os links que ele contém e sua folha de estilo inalterada.
Uma vez traduzido, você também deve criar capturas de tela das caixas de diálogo em seu idioma para substituir as imagens encontradas em .properties traduzidos, você também pode solicitar ao desenvolvedor do Sweet Home 3D para gerar as capturas de tela).
Criando o arquivo SH3L
Uma vez que todos os arquivos .properties e .html estejam traduzidos e convertidos para ASCII se necessário (ou mesmo antes se você quiser testar este procedimento), você deve compactá-los em um arquivo. Dependendo do seu sistema, criar um arquivo zip pode ser feito com o seguinte procedimento:
- no Windows, selecione a pasta
comcontendo todos os arquivos traduzidos e escolha Enviar para > Pasta compactada em seu menu de contexto, - no Mac OS X, selecione a pasta
comcontendo todos os arquivos traduzidos e escolha Arquivo > Comprimir « com » no item de menu, - no Linux, selecione a pasta
comcontendo todos os arquivos traduzidos, escolha Criar arquivo… em seu menu de contexto e então selecione .zip na lista de formatos.
Finalmente, mude a extensão .zip do arquivo zip para .sh3l. Um arquivo SH3L pode ter qualquer nome, mas para evitar conflitos com arquivos SH3L existentes, você deve nomeá-lo a partir do idioma que ele contém e da versão do Sweet Home 3D que você traduziu (por exemplo, French-4.1.sh3l poderia ser um bom nome para a tradução francesa do Sweet Home 3D 4.1).
Testando um arquivo SH3L
Para testar a tradução, dê um duplo clique em um arquivo SH3L ou escolha-o com o botão Importar arquivo de biblioteca de idiomas
exibido no topo do painel Preferências. Isso iniciará o Sweet Home 3D e traduzirá sua interface de usuário para o idioma descrito no arquivo SH3L. Isso também copiará o arquivo SH3L em uma pasta dependendo do seu sistema:
- no Windows Vista / 7 / 8 / 10 / 11, esta pasta é C:UsersusuárioAppDataRoamingeTeksSweet Home 3Dlanguages,
- no Windows XP e versões anteriores do Windows, esta pasta é C:Documents and SettingsusuárioApplication DataeTeksSweet Home 3Dlanguages,
- no macOS, é a subpasta Library/Application Support/eTeks/Sweet Home 3D/languages da sua pasta de usuário,
- no Linux e outros Unix, é a subpasta .eteks/sweethome3d/languages da sua pasta de usuário,
- com a versão portátil do Sweet Home 3D, é a subpasta data/languages da pasta onde o aplicativo Sweet Home 3D está armazenado,
Observe também que, durante o desenvolvimento do seu arquivo SH3L, você provavelmente terá que reiniciar o Sweet Home 3D para ver as alterações no seu arquivo SH3L.
Distribuindo arquivos SH3L
Once your SH3L file is ready, you can propose it to anyone, announce it to Sweet Home 3D users in the forum part reserved to foreign languages or in other places. If you agree, it can be made available on this web site in the page about translations supported by Sweet Home 3D.
Atualizando arquivos SH3L
Algumas versões do Sweet Home 3D trazem novos recursos para traduzir, outras não. Se você não traduzir os rótulos da interface do usuário correspondentes a esses novos recursos, o Sweet Home 3D funcionará, mas todos os novos rótulos aparecerão em inglês. Para encontrar as novas chaves e as chaves atualizadas nos arquivos .properties, você pode usar um recurso oferecido pelo SourceForge.net que permite comparar duas versões de um arquivo de projeto:
- Search the dates of Sweet Home 3D versions you want to compare in history (for example, July 19, 2015 for version 5.0 and February 2, 2015 for version 4.6)
- Clique no arquivo
.propertiesou.htmlque você deseja atualizar na figura 1, - Selecione as duas caixas de seleção do número de revisão correspondente à data da versão do arquivo atualizado, escolhendo a data que está logo antes de uma data de versão do Sweet Home 3D,
- Clique no botão Compare.
O último clique mostrará as diferenças entre as duas versões desse arquivo .properties (por exemplo, este link mostrará as diferenças entre a versão 4.6 e a versão 5.0 do arquivo com/eteks/sweethome3d/viewcontroller/package.properties).
Depois de encontrar as diferenças, atualize sua tradução, adicionando novos nomes de chave, se necessário, e lance uma nova versão de sua tradução.