Introducción
¿Hablas un idioma extranjero que aún no es compatible con Sweet Home 3D y te gustaría contribuir a su traducción a ese idioma? A partir de la versión 2.3, Sweet Home 3D admite archivos SH3L y esta guía te enseñará a crear un archivo de este tipo por ti mismo. Un archivo SH3L es un archivo de idioma autoinstalable y los usuarios solo tienen que hacer doble clic en un archivo SH3L para traducir Sweet Home 3D al idioma descrito por ese archivo.
Instrucciones básicas
La creación de un archivo SH3L consiste en:
- descargar una versión en inglés de los archivos para traducir,
- descomprimir el archivo descargado,
- añadir un sufijo de 2 letras que coincida con tu idioma a los archivos
.propertiesque contiene, - traducir el texto en los archivos
.properties, - convertirlos a codificación ASCII,
- traducir el texto de ayuda en los archivos
.html(no es obligatorio, pero será realmente útil para los usuarios), - volver a comprimir los archivos
.propertiesy los archivos de ayuda en un archivo con la extensión SH3L, - hacer doble clic en el archivo SH3L para probar tu traducción en Sweet Home 3D,
- distribuir tu archivo SH3L.
Instrucciones detalladas
Si no te asustan las instrucciones básicas anteriores, sigue adelante con los siguientes pasos.
Obtener la versión en inglés
Descarga el archivo en /SweetHome3DTranslation.zip (versión 7.5) y descomprímelo con las herramientas de tu sistema.
SweetHome3DTranslation.zip contiene un conjunto de archivos con extensiones .properties y .html colocados en subcarpetas como se muestra en la figura 1.

Todos los archivos .properties y .html contienen la versión en inglés de los textos que tendrás que traducir a tu idioma:
- los archivos
package.propertiesdescriben las etiquetas, los menús y los elementos de menú que se muestran en la interfaz de usuario de Sweet Home 3D, - los archivos
basic.propertiesymetal.propertiesdescriben las etiquetas de los diálogos estándar, - los que terminan en
Catalog.propertiesdescriben los nombres de los muebles y las texturas disponibles en el software, - los archivos
.htmlcontienen el texto de la ayuda de Sweet Home 3D.
Cambiar el nombre de los archivos según tu idioma
Antes de traducir los archivos .properties, debes cambiar el nombre de cada uno de ellos añadiendo a su nombre un guion bajo seguido del código ISO de 2 caracteres que coincida con tu idioma. Encontrarás este código en la última columna del documento
Luego, si quieres traducir los archivos de ayuda, también debes cambiar el nombre del subdirectorio
Por ejemplo, el código ISO para el checo es _cs, y debes cambiar el nombre de los archivos como se muestra en la figura 2.

Traducir archivos de propiedades
Los archivos .properties son archivos de texto plano y puedes editarlos con cualquier editor de texto como Wordpad, TextEdit o emacs. Por ejemplo, el archivo com/eteks/sweethome3d/package.properties en Sweet Home 3D 3.0 contiene el siguiente 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 # Resources for HomeFramePane class HomeFramePane.untitled=Sin título # Resources for MacOSXConfiguration class MacOSXConfiguration.WINDOW_MENU.Name=Ventana MacOSXConfiguration.MINIMIZE.Name=Minimizar MacOSXConfiguration.ZOOM.Name=Zoom MacOSXConfiguration.BRING_ALL_TO_FRONT.Name=Traer todo al frente # Resources for SweetHome3D class SweetHome3D.3DError.message=<html> Sweet Home 3D se cerrará ahora debido a un error fatal <br>en el sistema de renderizado 3D. Actualiza los controladores DirectX/OpenGL <br>de tu tarjeta gráfica. SweetHome3D.3DError.title=Error 3D SweetHome3D.confirmSaveAfter3DError.message=<html> Sweet Home 3D debe cerrarse ahora debido a un error fatal en <br>el sistema de renderizado 3D. ¿Quieres guardar todas las casas modificadas? SweetHome3D.confirmSaveAfter3DError.title=Error 3D SweetHome3D.confirmSaveAfter3DError.save=Guardar SweetHome3D.confirmSaveAfter3DError.doNotSave=No guardar
Un archivo .properties contiene tres tipos de líneas:
- las líneas que empiezan con un carácter # son comentarios (se muestran en verde en el ejemplo anterior). Algunos comentarios contienen información legal, otros dan información a los desarrolladores o a los traductores. Mantén estas líneas sin cambios.
- las líneas vacías se utilizan simplemente para separar las distintas partes de un archivo
.properties. - las otras líneas empiezan con un texto utilizado por Sweet Home 3D como clave para encontrar un texto que se muestra en la pantalla (se muestra en azul en el ejemplo anterior). Siguiendo esta clave, cada una de estas líneas contiene un signo igual (
=) y un texto en un idioma determinado. Tu trabajo empieza a partir de los signos iguales. No cambies el texto de la clave y sustituye el texto en inglés después del signo igual por su traducción.
Casos especiales:
- Los textos que empiezan con una etiqueta
<html>contienen texto en formato HTML. Estos textos contienen otras etiquetas HTML entre<y>signos, como<br>en el ejemplo anterior que representa un retorno de carro en medio de textos largos. No elimines estas etiquetas HTML, ayudan a Sweet Home 3D a presentar correctamente algunos textos. Traducir texto entre etiquetas HTML no es muy difícil, excepto tal vez para el peor texto HTML que es el valor de la claveWallPanel.wallOrientationLabel.text. - Para evitar líneas largas en el editor de texto, algunas líneas
se dividen en dos o más líneas y luego se separan por barras invertidas
\, como la línea que empieza porSweetHome3D.3DError.messageen el ejemplo anterior. En ese caso, no elimines el signo\situado al final de una línea porque indica que la siguiente línea sigue a la línea actual. - Algunos textos contienen una secuencia de caracteres especiales que empiezan
con un signo
% , como%s,%d,%1$s,%2$s… Estas secuencias de caracteres se sustituirán por un nombre de archivo, una unidad o un número cuando sea necesario, así que no las elimines.
Por ejemplo, la secuencia de caracteres%sen el texto de la siguiente claveHomeFurniturePanel.widthLabel.text:
HomeFurniturePanel.widthLabel.text=Ancho (%s):
se sustituirá por la unidad que se esté utilizando. Las dos secuencias de caracteres%1$dy%2$dque aparecen en el texto de la siguiente clavePrintPreviewPanel.pageLabel.text:
PrintPreviewPanel.pageLabel.text=Página %1$d/%2$d
aparecerán en la pantalla como un número de página y el número de páginas, y solo debes traducir la palabraPage. - Algunos textos también contienen la secuencia de caracteres especiales
\n, como en el siguiente ejemplo:HomeController.saveError=No se puede guardar la casa en\n"%s"
Sweet Home 3D muestra esta secuencia de caracteres como un retorno de carro para dividir una línea en la pantalla, y no debes eliminarlos. - El valor de la clave
HelpController.helpIndexindica el directorio donde se pueden encontrar los archivos de ayuda. Si traduces los archivos de ayuda .html, debes sustituir el subdirectorioenencontrado por el código de 2 letras de tu idioma.
Por ejemplo, si traduces la ayuda al checo, debería quedar:HelpController.helpIndex=/com/eteks/sweethome3d/viewcontroller/resources/help/cs/index.html
- Sweet Home 3D utiliza el texto de las claves que terminan con
.mnemonicpara adivinar qué letra de una etiqueta o un elemento de menú debe subrayarse para el acceso mediante el teclado. Esta letra mnemotécnica depende de la palabra mostrada y debes encontrar una única por cuadro de diálogo o menú.
Por ejemplo, los siguientes textos y mnemónicos mostrados en el cuadro de diálogo de modificación de muebles:HomeFurniturePanel.nameLabel.text=Nombre: HomeFurniturePanel.nameLabel.mnemonic=N HomeFurniturePanel.nameVisibleCheckBox.text=Mostrar nombre en el plano HomeFurniturePanel.nameVisibleCheckBox.mnemonic=S HomeFurniturePanel.widthLabel.text=Ancho (%s): HomeFurniturePanel.widthLabel.mnemonic=W
se puede traducir al 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
- Utiliza Sweet Home 3D o la página de importación de modelos 3D para ayudarte a traducir los archivos
.propertiesque terminan enCatalog.properties.
Convertir archivos de propiedades a codificación ASCII
Si has traducido textos a un idioma con letras que no pertenecen a la codificación ISO-8859-1 (principalmente idiomas de Europa Central y del Este e idiomas con un alfabeto no latino), tendrás que convertir todos tus archivos .properties a una codificación ASCII compatible con Sweet Home 3D. Esta conversión se puede hacer con la herramienta native2ascii proporcionada con el JDK o se puede realizar con el siguiente formulario.
Para cada archivo .properties, crea una copia de seguridad de ese archivo, copia/pega el texto a convertir en el siguiente área de texto, haz clic en el botón Convertir y copia/pega el texto convertido de nuevo en su archivo .properties.
La herramienta de conversión sustituirá cada carácter no ASCII (letras latinas acentuadas y letras no latinas) por una secuencia que empiece por \u y seguida de un código de 4 dígitos hexadecimales que coincida con ese carácter en Unicode. Desgraciadamente, esta conversión hará que tu texto sea bastante ilegible para un humano, pero si no la realizas, Sweet Home 3D no podrá mostrar correctamente los caracteres de tu traducción. Esta es la razón por la que debes crear una copia de seguridad de tus archivos originales .properties, en caso de que quieras cambiarlos más tarde.
Si quieres editar directamente los archivos .properties convertidos a ASCII, también puedes utilizar la aplicación Properties Editor disponible como un archivo ejecutable Jar aquí.
Traducir los archivos de ayuda
Una buena traducción de Sweet Home 3D también debería incluir la traducción de sus archivos de ayuda. Traducir todos los archivos .html es una tarea larga, pero realmente ayudará a los usuarios a aprender el software y evitar algunas solicitudes de soporte en el foro de Sweet Home 3D. Utiliza cualquier editor HTML para traducir estos archivos, tratando de mantener los enlaces que contiene y su hoja de estilo sin cambios.
Una vez traducidos, también debes crear capturas de pantalla de los cuadros de diálogo en tu idioma para sustituir las imágenes que se encuentran en com/eteks/sweethome3d/viewcontroller/resources/help/en/images. Para poder crear tales capturas de pantalla, crea y prueba un primer archivo SH3L con los siguientes pasos (una vez que exista un archivo SH3L que contenga archivos .properties traducidos, también puedes solicitar al desarrollador de Sweet Home 3D que genere las capturas de pantalla).
Crear el archivo SH3L
Una vez que todos los archivos .properties y .html se traducen y se convierten a ASCII si es necesario (o incluso antes si quieres probar este procedimiento), debes comprimirlos en un archivo. Dependiendo de tu sistema, la creación de un archivo zip se puede hacer con el siguiente procedimiento:
- en Windows, selecciona la carpeta
comque contiene todos los archivos traducidos y elige Enviar a > Carpeta comprimida desde su menú contextual, - en Mac OS X, selecciona la carpeta
comque contiene todos los archivos traducidos y elige el elemento de menú Archivo > Comprimir « com », - en Linux, selecciona la carpeta
comque contiene todos los archivos traducidos, elige Crear archivo… desde su menú contextual y luego selecciona .zip en la lista de formatos.
Finalmente, cambia la extensión .zip del archivo zip a .sh3l. Un archivo SH3L puede tener cualquier nombre, pero para evitar conflictos con los archivos SH3L existentes, debes nombrarlo a partir del idioma que contiene y la versión de Sweet Home 3D que tradujiste (por ejemplo, French-4.1.sh3l podría ser un buen nombre para la traducción francesa de Sweet Home 3D 4.1).
Probar un archivo SH3L
Para probar la traducción, haz doble clic en un archivo SH3L o elígelo con el botón Importar archivo de biblioteca de idiomas
que se muestra en la parte superior del panel Preferencias. Esto iniciará Sweet Home 3D y traducirá su interfaz de usuario al idioma descrito en el archivo SH3L. Esto también copiará el archivo SH3L en una carpeta que depende de tu sistema:
- en Windows Vista / 7 / 8 / 10 / 11, esta carpeta es C:\Users\usuario\AppData\Roaming\eTeks\Sweet Home 3D\languages,
- en Windows XP y versiones anteriores de Windows, esta carpeta es C:\Documents and Settings\usuario\Application Data\eTeks\Sweet Home 3D\languages,
- en macOS, es la subcarpeta Library/Application Support/eTeks/Sweet Home 3D/languages de tu carpeta de usuario,
- en Linux y otros Unix, es la subcarpeta .eteks/sweethome3d/languages de tu carpeta de usuario,
- con la versión portátil de Sweet Home 3D, es la subcarpeta data/languages de la carpeta donde se almacena la aplicación Sweet Home 3D,
Tenga en cuenta también que, durante el desarrollo de su archivo SH3L, probablemente tendrá que reiniciar Sweet Home 3D para ver los cambios en su archivo SH3L.
Distribución de archivos SH3L
Una vez que su archivo SH3L esté listo, puede proponerlo a quien quiera, anunciarlo a los usuarios de Sweet Home 3D en la parte del foro reservada a idiomas extranjeros o en otros lugares. Si está de acuerdo, se puede poner a disposición en este sitio web en la página sobre traducciones compatibles con Sweet Home 3D.
Actualización de archivos SH3L
Algunas versiones de Sweet Home 3D traen nuevas funciones para traducir, otras no. Si no traduce las etiquetas de la interfaz de usuario que coinciden con estas nuevas funciones, Sweet Home 3D funcionará, pero todas las etiquetas nuevas aparecerán en inglés. Para encontrar las nuevas claves y las claves actualizadas en los archivos .properties, puede utilizar una función ofrecida por SourceForge.net que le permite comparar dos versiones de un archivo de proyecto:
- Busque las fechas de las versiones de Sweet Home 3D que desea comparar en el historial (por ejemplo, 19 de julio de 2015 para la versión 5.0 y 2 de febrero de 2015 para la versión 4.6)
- Haga clic en el archivo
.propertieso.htmlque desea actualizar en la figura 1, - Seleccione las dos casillas de verificación del número de revisión que coincida con la fecha de la versión del archivo actualizado, eligiendo la fecha que sea justo anterior a una fecha de versión de Sweet Home 3D,
- Haga clic en el botón Comparar.
El último clic le mostrará las diferencias entre las dos versiones de ese archivo .properties (por ejemplo, este enlace le mostrará las diferencias entre la versión 4.6 y la versión 5.0 del archivo com/eteks/sweethome3d/viewcontroller/package.properties).
Una vez que haya encontrado las diferencias, actualice su traducción, añadiendo nuevos nombres de clave si es necesario, y publique una nueva versión de su traducción.
