/**
* @license
* Licensed under the MIT License.
* http://opensource.org/licenses/mit-license
*/
import { jsPDF } from "../jspdf.js";
/**
* jsPDF setLanguage Plugin
*
* @name setLanguage
* @module
*/
(function(jsPDFAPI) {
"use strict";
/**
* Add Language Tag to the generated PDF
*
* @name setLanguage
* @function
* @param {string} langCode The Language code as ISO-639-1 (e.g. 'en') or as country language code (e.g. 'en-GB').
* @returns {jsPDF}
* @example
* var doc = new jsPDF()
* doc.text(10, 10, 'This is a test')
* doc.setLanguage("en-US")
* doc.save('english.pdf')
*/
jsPDFAPI.setLanguage = function(langCode) {
"use strict";
var langCodes = {
af: "Afrikaans",
sq: "Albanian",
ar: "Arabic (Standard)",
"ar-DZ": "Arabic (Algeria)",
"ar-BH": "Arabic (Bahrain)",
"ar-EG": "Arabic (Egypt)",
"ar-IQ": "Arabic (Iraq)",
"ar-JO": "Arabic (Jordan)",
"ar-KW": "Arabic (Kuwait)",
"ar-LB": "Arabic (Lebanon)",
"ar-LY": "Arabic (Libya)",
"ar-MA": "Arabic (Morocco)",
"ar-OM": "Arabic (Oman)",
"ar-QA": "Arabic (Qatar)",
"ar-SA": "Arabic (Saudi Arabia)",
"ar-SY": "Arabic (Syria)",
"ar-TN": "Arabic (Tunisia)",
"ar-AE": "Arabic (U.A.E.)",
"ar-YE": "Arabic (Yemen)",
an: "Aragonese",
hy: "Armenian",
as: "Assamese",
ast: "Asturian",
az: "Azerbaijani",
eu: "Basque",
be: "Belarusian",
bn: "Bengali",
bs: "Bosnian",
br: "Breton",
bg: "Bulgarian",
my: "Burmese",
ca: "Catalan",
ch: "Chamorro",
ce: "Chechen",
zh: "Chinese",
"zh-HK": "Chinese (Hong Kong)",
"zh-CN": "Chinese (PRC)",
"zh-SG": "Chinese (Singapore)",
"zh-TW": "Chinese (Taiwan)",
cv: "Chuvash",
co: "Corsican",
cr: "Cree",
hr: "Croatian",
cs: "Czech",
da: "Danish",
nl: "Dutch (Standard)",
"nl-BE": "Dutch (Belgian)",
en: "English",
"en-AU": "English (Australia)",
"en-BZ": "English (Belize)",
"en-CA": "English (Canada)",
"en-IE": "English (Ireland)",
"en-JM": "English (Jamaica)",
"en-NZ": "English (New Zealand)",
"en-PH": "English (Philippines)",
"en-ZA": "English (South Africa)",
"en-TT": "English (Trinidad & Tobago)",
"en-GB": "English (United Kingdom)",
"en-US": "English (United States)",
"en-ZW": "English (Zimbabwe)",
eo: "Esperanto",
et: "Estonian",
fo: "Faeroese",
fj: "Fijian",
fi: "Finnish",
fr: "French (Standard)",
"fr-BE": "French (Belgium)",
"fr-CA": "French (Canada)",
"fr-FR": "French (France)",
"fr-LU": "French (Luxembourg)",
"fr-MC": "French (Monaco)",
"fr-CH": "French (Switzerland)",
fy: "Frisian",
fur: "Friulian",
gd: "Gaelic (Scots)",
"gd-IE": "Gaelic (Irish)",
gl: "Galacian",
ka: "Georgian",
de: "German (Standard)",
"de-AT": "German (Austria)",
"de-DE": "German (Germany)",
"de-LI": "German (Liechtenstein)",
"de-LU": "German (Luxembourg)",
"de-CH": "German (Switzerland)",
el: "Greek",
gu: "Gujurati",
ht: "Haitian",
he: "Hebrew",
hi: "Hindi",
hu: "Hungarian",
is: "Icelandic",
id: "Indonesian",
iu: "Inuktitut",
ga: "Irish",
it: "Italian (Standard)",
"it-CH": "Italian (Switzerland)",
ja: "Japanese",
kn: "Kannada",
ks: "Kashmiri",
kk: "Kazakh",
km: "Khmer",
ky: "Kirghiz",
tlh: "Klingon",
ko: "Korean",
"ko-KP": "Korean (North Korea)",
"ko-KR": "Korean (South Korea)",
la: "Latin",
lv: "Latvian",
lt: "Lithuanian",
lb: "Luxembourgish",
mk: "North Macedonia",
ms: "Malay",
ml: "Malayalam",
mt: "Maltese",
mi: "Maori",
mr: "Marathi",
mo: "Moldavian",
nv: "Navajo",
ng: "Ndonga",
ne: "Nepali",
no: "Norwegian",
nb: "Norwegian (Bokmal)",
nn: "Norwegian (Nynorsk)",
oc: "Occitan",
or: "Oriya",
om: "Oromo",
fa: "Persian",
"fa-IR": "Persian/Iran",
pl: "Polish",
pt: "Portuguese",
"pt-BR": "Portuguese (Brazil)",
pa: "Punjabi",
"pa-IN": "Punjabi (India)",
"pa-PK": "Punjabi (Pakistan)",
qu: "Quechua",
rm: "Rhaeto-Romanic",
ro: "Romanian",
"ro-MO": "Romanian (Moldavia)",
ru: "Russian",
"ru-MO": "Russian (Moldavia)",
sz: "Sami (Lappish)",
sg: "Sango",
sa: "Sanskrit",
sc: "Sardinian",
sd: "Sindhi",
si: "Singhalese",
sr: "Serbian",
sk: "Slovak",
sl: "Slovenian",
so: "Somani",
sb: "Sorbian",
es: "Spanish",
"es-AR": "Spanish (Argentina)",
"es-BO": "Spanish (Bolivia)",
"es-CL": "Spanish (Chile)",
"es-CO": "Spanish (Colombia)",
"es-CR": "Spanish (Costa Rica)",
"es-DO": "Spanish (Dominican Republic)",
"es-EC": "Spanish (Ecuador)",
"es-SV": "Spanish (El Salvador)",
"es-GT": "Spanish (Guatemala)",
"es-HN": "Spanish (Honduras)",
"es-MX": "Spanish (Mexico)",
"es-NI": "Spanish (Nicaragua)",
"es-PA": "Spanish (Panama)",
"es-PY": "Spanish (Paraguay)",
"es-PE": "Spanish (Peru)",
"es-PR": "Spanish (Puerto Rico)",
"es-ES": "Spanish (Spain)",
"es-UY": "Spanish (Uruguay)",
"es-VE": "Spanish (Venezuela)",
sx: "Sutu",
sw: "Swahili",
sv: "Swedish",
"sv-FI": "Swedish (Finland)",
"sv-SV": "Swedish (Sweden)",
ta: "Tamil",
tt: "Tatar",
te: "Teluga",
th: "Thai",
tig: "Tigre",
ts: "Tsonga",
tn: "Tswana",
tr: "Turkish",
tk: "Turkmen",
uk: "Ukrainian",
hsb: "Upper Sorbian",
ur: "Urdu",
ve: "Venda",
vi: "Vietnamese",
vo: "Volapuk",
wa: "Walloon",
cy: "Welsh",
xh: "Xhosa",
ji: "Yiddish",
zu: "Zulu"
};
if (this.internal.languageSettings === undefined) {
this.internal.languageSettings = {};
this.internal.languageSettings.isSubscribed = false;
}
if (langCodes[langCode] !== undefined) {
this.internal.languageSettings.languageCode = langCode;
if (this.internal.languageSettings.isSubscribed === false) {
this.internal.events.subscribe("putCatalog", function() {
this.internal.write(
"/Lang (" + this.internal.languageSettings.languageCode + ")"
);
});
this.internal.languageSettings.isSubscribed = true;
}
}
return this;
};
})(jsPDF.API);