Internacionalización
Idioma de la interfaz
locale selecciona el paquete de idioma de menús, ayudas, diálogos y otros textos traducidos. locales registra los paquetes sin seleccionar un idioma. Este ajuste se comparte entre las unidades de la instancia de Univer. Use valores de LocaleType, como LocaleType.EN_US.
- Todos los productos: interfaz:
localecambia las traducciones de menús, ayudas, diálogos y etiquetas de plugins. No traduce contenido del usuario ni renombra unidades existentes. - Sheets: formatos y fórmulas: La visualización de números/fechas usa primero la locale sobrescrita del formato numérico, después el
localedel snapshot del libro y finalmente el de la instancia.regionno sustituye estos ajustes.DOLLAR, los formatos monetarios de resultados financieros y la normalización de entradas CJK siguen usandolocale. - Docs: estadísticas:
localese usa para segmentar y contar palabras.
Cambiar el idioma durante la ejecución
Cargue los paquetes de todos los plugins o presets instalados antes de cambiar el idioma. loadLocales() combina traducciones sin cambiar de idioma; setLocale() selecciona el idioma sin descargar paquetes. Las traducciones ausentes muestran su clave. Este ejemplo carga el paquete UI compartido; combine en la misma llamada los paquetes del idioma de destino de los demás plugins instalados.
import { LocaleType, mergeLocales } from '@univerjs/core'import UIEnUS from '@univerjs/ui/locale/en-US'univerAPI.loadLocales(LocaleType.EN_US, mergeLocales(UIEnUS))univerAPI.setLocale(LocaleType.EN_US)console.log(univerAPI.getCurrentLocale()) // enUSRegistro de paquetes de idiomas en modo complemento
Para registrar paquetes de idioma en modo complemento, debe importar los paquetes de idioma correspondientes desde los complementos que los proporcionan y fusionarlos en un solo objeto para pasar a la instancia Univer. Aquí hay un ejemplo:
import { LocaleType, mergeLocales, Univer } from '@univerjs/core'import DesignEnUS from '@univerjs/design/locale/en-US'import SheetsUIEnUS from '@univerjs/sheets-ui/locale/en-US'import UIEnUS from '@univerjs/ui/locale/en-US'const univer = new Univer({ locale: LocaleType.EN_US, locales: { [LocaleType.EN_US]: mergeLocales( DesignEnUS, UIEnUS, SheetsUIEnUS, ), },})Caution
No todos los complementos incluyen paquetes de idiomas. Especificaremos esto en la documentación de cada característica.
Registro de paquetes de idiomas en modo preestablecido
Los paquetes preestablecidos ya incluyen los paquetes de idiomas de complemento correspondientes, solo necesita importarlos desde el modo preestablecido.
import { UniverSheetsCorePreset } from '@univerjs/preset-sheets-core'import UniverPresetSheetsCoreEnUS from '@univerjs/preset-sheets-core/locales/en-US'import { createUniver, LocaleType, mergeLocales } from '@univerjs/presets'const { univerAPI } = createUniver({ locale: LocaleType.EN_US, locales: { [LocaleType.EN_US]: mergeLocales( UniverPresetSheetsCoreEnUS, ), }, presets: [UniverSheetsCorePreset()],})Combinación de paquetes de idioma
mergeLocales El método se utiliza para fusionar múltiples complementos o paquetes de idioma preestablecidos en un objeto de paquete de idioma completo. Puedes usarlo de la siguiente manera:
import { mergeLocales } from '@univerjs/core'// You can pass multiple language pack objects to mergeconst locales = mergeLocales( plugin1Locales, plugin2Locales, presetLocales,)// You can also pass an array of language pack objectsconst locales = mergeLocales([ plugin1Locales, plugin2Locales, presetLocales,])import { mergeLocales } from '@univerjs/presets'// You can pass multiple language pack objects to mergeconst locales = mergeLocales( plugin1Locales, plugin2Locales, presetLocales,)// You can also pass an array of language pack objectsconst locales = mergeLocales([ plugin1Locales, plugin2Locales, presetLocales,])Paquetes de idiomas personalizados
Univer también admite paquetes de idiomas personalizados. Puede ensamblar un objeto de paquete de idioma según sea necesario y pasarlo a la instancia Univer. Los paquetes de idiomas preestablecidos generalmente se almacenan en el directorio <rootDir>/packages/<PLUGIN_NAME>/locale.
import { LocaleType, Univer } from '@univerjs/core'const univer = new Univer({ locale: LocaleType.JA_JP, locales: { [LocaleType.JA_JP]: { ui: { shortcut: { undo: '元に戻す', redo: 'やり直す', }, }, }, },})Contribución de traducciones
Univer actualmente proporciona los siguientes paquetes de idiomas integrados:
zh-CN: chino simplificadoen-US: inglészh-TW: tradicional Chinozh-HK: Chino tradicional (Hong Kong)ru-RU: Rusovi-VN: Vietnamitafa-IR: Persafr-FR: Francésja-JP: japonésko-KR: coreanoes-ES: españolca-ES: catalánsk-SK: eslovacoar-SA: Árabede-DE: alemánid-ID: indonesioit-IT: italianopl-PL: polacopt-BR: portugués (brasileño)
Univer es un proyecto de código abierto lleno de inclusión y damos la bienvenida a desarrolladores de todo el mundo para agregar o mejorar las configuraciones regionales de Univer.
Configuración regional
region define las convenciones regionales de las funciones correspondientes. Este ajuste se comparte entre las unidades de la instancia de Univer.
Use valores de LocaleType para ambos: LocaleType.EN_US vale enUS, mientras que en-US es el nombre del archivo de idioma / etiqueta BCP 47. No pase códigos de país como US o SG a region. No hace falta cargar el paquete del idioma de la región si la interfaz usa otro idioma.
Sin un region explícito, este sigue a locale, incluidas las llamadas posteriores a setLocale(). Definir region al inicializar o llamar a setRegion() detiene ese seguimiento. Los cambios posteriores de idioma conservan la región elegida. No hay una API pública para restaurar el seguimiento automático; cambie ambos valores para mantenerlos sincronizados.
Añada region: LocaleType.DE_DE junto a locale en createUniver() o new Univer() para conservar el idioma de la interfaz con las convenciones regionales alemanas.
import { LocaleType } from '@univerjs/core'univerAPI.setRegion(LocaleType.DE_DE)univerAPI.setLocale(LocaleType.EN_US)console.log(univerAPI.getCurrentRegion()) // deDEAquí la interfaz cambia a inglés y la región sigue siendo Alemania. getCurrentLocale() y getCurrentRegion() devuelven los identificadores activos. Para cambiar ambos, llame a los dos setters con el mismo valor de LocaleType.
- Sheets: controles de moneda:
regiondetermina el icono de moneda, las opciones y vistas previas de moneda/contabilidad y el formato aplicado por el comando de moneda. No reescribe formatos de celdas existentes ni convierte importes. - Docs: estadísticas:
regionda formato a las cifras del diálogo de estadísticas y de la barra de estado (por ejemplo, separadores de grupos), sin cambiar las reglas de recuento. - Comentarios en hilo, si están habilitados:
regioncontrola el formato de fecha/hora, con reloj de 24 horas y dígitos latinos.localecontrola los textos de la interfaz. No cambian las marcas de tiempo almacenadas;regionno es un ajuste de zona horaria. - Boards, Slides, Bases, PDFs:
localecontrola las traducciones de la interfaz.regionestá disponible para funciones compartidas integradas, como los comentarios en hilo, pero no reformatea automáticamente texto de tableros/diapositivas, campos Base ni contenido PDF.
Diseño de derecha a izquierda
Atención
Actualmente, RTL solo es compatible con la capa de UI. La capa de renderizado no admite RTL.
La dirección del diseño es independiente: use direction al inicializar o univerAPI.setDirection('rtl') / setDirection('ltr'). Cambiar solo locale o region no cambia la dirección.
univerAPI.setDirection('rtl')¿Cómo es esta guía?