modules/setlanguage.js

  1. /* global jsPDF */
  2. /**
  3. * @license
  4. * Licensed under the MIT License.
  5. * http://opensource.org/licenses/mit-license
  6. */
  7. /**
  8. * jsPDF setLanguage Plugin
  9. *
  10. * @name setLanguage
  11. * @module
  12. */
  13. (function (jsPDFAPI) {
  14. "use strict";
  15. /**
  16. * Add Language Tag to the generated PDF
  17. *
  18. * @name setLanguage
  19. * @function
  20. * @param {string} langCode The Language code as ISO-639-1 (e.g. 'en') or as country language code (e.g. 'en-GB').
  21. * @returns {jsPDF}
  22. * @example
  23. * var doc = new jsPDF()
  24. * doc.text(10, 10, 'This is a test')
  25. * doc.setLanguage("en-US")
  26. * doc.save('english.pdf')
  27. */
  28. jsPDFAPI.setLanguage = function (langCode) {
  29. "use strict";
  30. var langCodes = {
  31. "af": "Afrikaans",
  32. "sq": "Albanian",
  33. "ar": "Arabic (Standard)",
  34. "ar-DZ": "Arabic (Algeria)",
  35. "ar-BH": "Arabic (Bahrain)",
  36. "ar-EG": "Arabic (Egypt)",
  37. "ar-IQ": "Arabic (Iraq)",
  38. "ar-JO": "Arabic (Jordan)",
  39. "ar-KW": "Arabic (Kuwait)",
  40. "ar-LB": "Arabic (Lebanon)",
  41. "ar-LY": "Arabic (Libya)",
  42. "ar-MA": "Arabic (Morocco)",
  43. "ar-OM": "Arabic (Oman)",
  44. "ar-QA": "Arabic (Qatar)",
  45. "ar-SA": "Arabic (Saudi Arabia)",
  46. "ar-SY": "Arabic (Syria)",
  47. "ar-TN": "Arabic (Tunisia)",
  48. "ar-AE": "Arabic (U.A.E.)",
  49. "ar-YE": "Arabic (Yemen)",
  50. "an": "Aragonese",
  51. "hy": "Armenian",
  52. "as": "Assamese",
  53. "ast": "Asturian",
  54. "az": "Azerbaijani",
  55. "eu": "Basque",
  56. "be": "Belarusian",
  57. "bn": "Bengali",
  58. "bs": "Bosnian",
  59. "br": "Breton",
  60. "bg": "Bulgarian",
  61. "my": "Burmese",
  62. "ca": "Catalan",
  63. "ch": "Chamorro",
  64. "ce": "Chechen",
  65. "zh": "Chinese",
  66. "zh-HK": "Chinese (Hong Kong)",
  67. "zh-CN": "Chinese (PRC)",
  68. "zh-SG": "Chinese (Singapore)",
  69. "zh-TW": "Chinese (Taiwan)",
  70. "cv": "Chuvash",
  71. "co": "Corsican",
  72. "cr": "Cree",
  73. "hr": "Croatian",
  74. "cs": "Czech",
  75. "da": "Danish",
  76. "nl": "Dutch (Standard)",
  77. "nl-BE": "Dutch (Belgian)",
  78. "en": "English",
  79. "en-AU": "English (Australia)",
  80. "en-BZ": "English (Belize)",
  81. "en-CA": "English (Canada)",
  82. "en-IE": "English (Ireland)",
  83. "en-JM": "English (Jamaica)",
  84. "en-NZ": "English (New Zealand)",
  85. "en-PH": "English (Philippines)",
  86. "en-ZA": "English (South Africa)",
  87. "en-TT": "English (Trinidad & Tobago)",
  88. "en-GB": "English (United Kingdom)",
  89. "en-US": "English (United States)",
  90. "en-ZW": "English (Zimbabwe)",
  91. "eo": "Esperanto",
  92. "et": "Estonian",
  93. "fo": "Faeroese",
  94. "fj": "Fijian",
  95. "fi": "Finnish",
  96. "fr": "French (Standard)",
  97. "fr-BE": "French (Belgium)",
  98. "fr-CA": "French (Canada)",
  99. "fr-FR": "French (France)",
  100. "fr-LU": "French (Luxembourg)",
  101. "fr-MC": "French (Monaco)",
  102. "fr-CH": "French (Switzerland)",
  103. "fy": "Frisian",
  104. "fur": "Friulian",
  105. "gd": "Gaelic (Scots)",
  106. "gd-IE": "Gaelic (Irish)",
  107. "gl": "Galacian",
  108. "ka": "Georgian",
  109. "de": "German (Standard)",
  110. "de-AT": "German (Austria)",
  111. "de-DE": "German (Germany)",
  112. "de-LI": "German (Liechtenstein)",
  113. "de-LU": "German (Luxembourg)",
  114. "de-CH": "German (Switzerland)",
  115. "el": "Greek",
  116. "gu": "Gujurati",
  117. "ht": "Haitian",
  118. "he": "Hebrew",
  119. "hi": "Hindi",
  120. "hu": "Hungarian",
  121. "is": "Icelandic",
  122. "id": "Indonesian",
  123. "iu": "Inuktitut",
  124. "ga": "Irish",
  125. "it": "Italian (Standard)",
  126. "it-CH": "Italian (Switzerland)",
  127. "ja": "Japanese",
  128. "kn": "Kannada",
  129. "ks": "Kashmiri",
  130. "kk": "Kazakh",
  131. "km": "Khmer",
  132. "ky": "Kirghiz",
  133. "tlh": "Klingon",
  134. "ko": "Korean",
  135. "ko-KP": "Korean (North Korea)",
  136. "ko-KR": "Korean (South Korea)",
  137. "la": "Latin",
  138. "lv": "Latvian",
  139. "lt": "Lithuanian",
  140. "lb": "Luxembourgish",
  141. "mk": "FYRO Macedonian",
  142. "ms": "Malay",
  143. "ml": "Malayalam",
  144. "mt": "Maltese",
  145. "mi": "Maori",
  146. "mr": "Marathi",
  147. "mo": "Moldavian",
  148. "nv": "Navajo",
  149. "ng": "Ndonga",
  150. "ne": "Nepali",
  151. "no": "Norwegian",
  152. "nb": "Norwegian (Bokmal)",
  153. "nn": "Norwegian (Nynorsk)",
  154. "oc": "Occitan",
  155. "or": "Oriya",
  156. "om": "Oromo",
  157. "fa": "Persian",
  158. "fa-IR": "Persian/Iran",
  159. "pl": "Polish",
  160. "pt": "Portuguese",
  161. "pt-BR": "Portuguese (Brazil)",
  162. "pa": "Punjabi",
  163. "pa-IN": "Punjabi (India)",
  164. "pa-PK": "Punjabi (Pakistan)",
  165. "qu": "Quechua",
  166. "rm": "Rhaeto-Romanic",
  167. "ro": "Romanian",
  168. "ro-MO": "Romanian (Moldavia)",
  169. "ru": "Russian",
  170. "ru-MO": "Russian (Moldavia)",
  171. "sz": "Sami (Lappish)",
  172. "sg": "Sango",
  173. "sa": "Sanskrit",
  174. "sc": "Sardinian",
  175. "sd": "Sindhi",
  176. "si": "Singhalese",
  177. "sr": "Serbian",
  178. "sk": "Slovak",
  179. "sl": "Slovenian",
  180. "so": "Somani",
  181. "sb": "Sorbian",
  182. "es": "Spanish",
  183. "es-AR": "Spanish (Argentina)",
  184. "es-BO": "Spanish (Bolivia)",
  185. "es-CL": "Spanish (Chile)",
  186. "es-CO": "Spanish (Colombia)",
  187. "es-CR": "Spanish (Costa Rica)",
  188. "es-DO": "Spanish (Dominican Republic)",
  189. "es-EC": "Spanish (Ecuador)",
  190. "es-SV": "Spanish (El Salvador)",
  191. "es-GT": "Spanish (Guatemala)",
  192. "es-HN": "Spanish (Honduras)",
  193. "es-MX": "Spanish (Mexico)",
  194. "es-NI": "Spanish (Nicaragua)",
  195. "es-PA": "Spanish (Panama)",
  196. "es-PY": "Spanish (Paraguay)",
  197. "es-PE": "Spanish (Peru)",
  198. "es-PR": "Spanish (Puerto Rico)",
  199. "es-ES": "Spanish (Spain)",
  200. "es-UY": "Spanish (Uruguay)",
  201. "es-VE": "Spanish (Venezuela)",
  202. "sx": "Sutu",
  203. "sw": "Swahili",
  204. "sv": "Swedish",
  205. "sv-FI": "Swedish (Finland)",
  206. "sv-SV": "Swedish (Sweden)",
  207. "ta": "Tamil",
  208. "tt": "Tatar",
  209. "te": "Teluga",
  210. "th": "Thai",
  211. "tig": "Tigre",
  212. "ts": "Tsonga",
  213. "tn": "Tswana",
  214. "tr": "Turkish",
  215. "tk": "Turkmen",
  216. "uk": "Ukrainian",
  217. "hsb": "Upper Sorbian",
  218. "ur": "Urdu",
  219. "ve": "Venda",
  220. "vi": "Vietnamese",
  221. "vo": "Volapuk",
  222. "wa": "Walloon",
  223. "cy": "Welsh",
  224. "xh": "Xhosa",
  225. "ji": "Yiddish",
  226. "zu": "Zulu",
  227. };
  228. if (this.internal.languageSettings === undefined) {
  229. this.internal.languageSettings = {};
  230. this.internal.languageSettings.isSubscribed = false;
  231. }
  232. if (langCodes[langCode] !== undefined) {
  233. this.internal.languageSettings.languageCode = langCode;
  234. if (this.internal.languageSettings.isSubscribed === false) {
  235. this.internal.events.subscribe("putCatalog", function () {
  236. this.internal.write("/Lang (" + this.internal.languageSettings.languageCode + ")");
  237. });
  238. this.internal.languageSettings.isSubscribed = true;
  239. }
  240. }
  241. return this;
  242. };
  243. })(jsPDF.API);