¿Puedo utilizar una entrada abreviada de "idioma" (código de idioma) en mi archivo .bib?

¿Puedo utilizar una entrada abreviada de "idioma" (código de idioma) en mi archivo .bib?

Estoy usando BiblaTeXy tengo una pregunta: Como veo en casi todos los tipos de fuentes de mi .bibarchivo, puedo usar la entrada language.

Sin embargo, todo lo que pongo es literario y se muestra en mis referencias. Entonces, ¿no puedo usar también, por ejemplo, un ISO-639-1 u otro?código iso?

P.ej:

@online{SOTexBibLangIso,
    author = {Stackoverflow Tex Community},
    title = {Can I use a shortened "language" entry (language code) in my .bib file?},
    url = {https://tex.stackexchange.com/questions/294703/can-i-use-a-shortened-language-entry-language-code-in-my-bib-file},
    language = {en},
    urldate = {2016-02-18},
}

Respuesta1

biblatexdistingue dos campos lingüísticos: (1) languagey (2) langid. De acuerdo con labiblatexdocumentación, pag. 20,

[el languagecampo contiene el] idioma(s) de la obra. Los idiomas se pueden especificar literalmente o como claves de localización. Si se utilizan claves de localización, el prefijo langse omite.

en P. 25 tenemos

[ langid] La identificación del idioma de la entrada de bibliografía. [...] El identificador debe ser un nombre de idioma conocido por los paquetes babel/ . polyglossiaEsta información se puede utilizar para cambiar patrones de separación de palabras y localizar cadenas en la bibliografía. Tenga en cuenta que los nombres de los idiomas distinguen entre mayúsculas y minúsculas.

Entonces, el languagecampo es lo que está impreso en la bibliografía como el idioma del trabajo, mientras que langidse usa internamente para biblatexel comportamiento de cambio de idioma de (puede usarse para cambiar la separación de palabras en la bibliografía, de modo que las palabras se separen con guiones correctamente, o podría cambiar el cadenas dependientes del idioma también; esto se controla con la autolangopción). Tenga en cuenta que por defecto la languageinformación no se imprime si el idioma allí indicado coincide con el idioma principal del documento; esto está controlado por la clearlangopción y \DeclareRedundantLanguages.

Podrías por ejemplo tener

@online{elk,
  author   = {Anne Elk},
  title    = {Über die Anatomie der Donnerechse},
  url      = {http://www.example.edu/~elk/bronto.pdf},
  date     = {2016-01-01},
  language = {german},
  langid   = {ngerman},
}

para un texto alemán ( languageis german, langgermantambién estaría bien) siguiendo las nuevas reglas de ortografía ( langidis ngerman).


El langidcampo solo puede funcionar con identificadores de idioma conocidos por babel/ polyglossia, pero según el comentario anterior de PLK, Biber también puede manejar códigos de idioma BCP47 y asignarlos a sus respectivas contrapartes. De hecho, Biber aceptará felizmente entradas sin sentido como langid = {flobbel}, pero eso generará problemas si usa algo distinto a babely polyglossiael autolang=nonepaquete de idioma intenta cargar el idioma desconocido flobbel.


El languagecampo acepta cualquier entrada, pero los identificadores de idioma que biblatexconoce se tratan de manera diferente, se traducen. Para ser un poco más preciso, esto funciona para idiomas definidos en el .lbxarchivo utilizado actualmente como lang<language>, puede darles como <language>o lang<language>. Si la cadena bib no está definida en .lbx, el contenido del languagecampo se imprime tal cual.Puedes ver los idiomas soportados english.lbxaquí,para holandés la lista está aquí). Puede proporcionar el identificador de idioma con lango sin prefijo langgreeky greekobtener los mismos resultados. Si utiliza

language = {english},

en un documento holandés, el resultado es "Engels" y si el idioma del documento es inglés, obtenemos "English".

La cadena enno está en la lista de identificadores de idiomas reconocidos y se imprime tal cual.

Puedes emular lo que hace Biber con el langidcampo usando un mapa fuente

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \step[fieldsource=language,
            match=\regexp{\Aen\Z},
            replace=\regexp{english}]
      \step[fieldsource=language,
            match=\regexp{\Ade\Z},
            replace=\regexp{german}]
    }
  }
}

información relacionada