Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

@intlify/vite-plugin-vue-i18n locale translation files splitting

Abierto
#97 10 comentarios 18 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
32/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
typescript, vite

Línea de trabajo

Comienza revisando el punto de entrada de @intlify/vite-plugin-vue-i18n y la documentación actual de la README sobre la carga de locales. Reproduce el comportamiento informado con las estructuras de directorios de en y fr del issue y determina después qué comportamiento de división y combinación se pretende; se considera terminado cuando varios archivos por locale se combinan correctamente o se documenta la alternativa compatible.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

status: proposal
Clear and concise description of the problem
  • for some projects custom block code is not the right way
  • if we want place locale files in separate directory, we need to use "global" access, so everything is in one file per locale,
    example (these files can really grow in size and be really unclear):
locales/en.yaml
locales/fr.yaml
  • if we split locale translation files into multiple files, import all locales at once is not working, because its not correctly merged
Suggested solution
  • add possibility to split each locale to multiple files, so our structure can look like this:
locales/en/group1/subject1.yaml
locales/en/group1/subject2.yaml
locales/en/group2/subject3.yaml

locales/fr/group1/subject1.yaml
locales/fr/group1/subject2.yaml
locales/fr/group2/subject3.yaml

There are to possibilities how to achieve this:

  1. more complex way - first directory will define the locale and each directory is a subject path, so if locales/en/group1/subject1.yaml content is this:
foo: foo
bar:
  baz: baz

the "generated" file for en locale will be:

group1:
  subject1:
    foo: foo
    bar:
      baz: baz
  1. more simple way - just merge the content, use root subject as locale - we will need to define whole subject in each file, the plugin will just merge everything in one
    locales/en/group1/subject1.yaml
en:
  group1:
    subject1:
      foo: foo
      bar:
        baz: baz

locales/fr/group1/subject1.yaml

fr:
  group1:
    subject1:
      foo: foo
      bar:
        baz: baz
Alternative

If there is any existing way how to achieve similar code spliting right now without need to implement it, please add it to documentation, because now there is nothing about it.

Additional context

I tried several ways how to structure the dirs, files and content of yaml/json files and nothing was correctly merged, always only one file worked and other were ignored.

Validations
  • Read the Contributing Guidelines.
  • Read the README
  • Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
Lenguaje dominante
TypeScript
Estrellas
270
Forks
46
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de intlify/bundle-tools

Todos los issues de intlify/bundle-tools

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.