@ckeditor/ckeditor5-language 41.3.0-alpha.3 → 41.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/build/language.js +1 -1
  2. package/package.json +2 -3
  3. package/src/textpartlanguageui.d.ts +4 -0
  4. package/src/textpartlanguageui.js +84 -34
  5. package/dist/content-index.css +0 -4
  6. package/dist/editor-index.css +0 -4
  7. package/dist/index.css +0 -4
  8. package/dist/translations/ar.d.ts +0 -8
  9. package/dist/translations/ar.js +0 -5
  10. package/dist/translations/bg.d.ts +0 -8
  11. package/dist/translations/bg.js +0 -5
  12. package/dist/translations/bn.d.ts +0 -8
  13. package/dist/translations/bn.js +0 -5
  14. package/dist/translations/ca.d.ts +0 -8
  15. package/dist/translations/ca.js +0 -5
  16. package/dist/translations/cs.d.ts +0 -8
  17. package/dist/translations/cs.js +0 -5
  18. package/dist/translations/da.d.ts +0 -8
  19. package/dist/translations/da.js +0 -5
  20. package/dist/translations/de-ch.d.ts +0 -8
  21. package/dist/translations/de-ch.js +0 -5
  22. package/dist/translations/de.d.ts +0 -8
  23. package/dist/translations/de.js +0 -5
  24. package/dist/translations/el.d.ts +0 -8
  25. package/dist/translations/el.js +0 -5
  26. package/dist/translations/en-au.d.ts +0 -8
  27. package/dist/translations/en-au.js +0 -5
  28. package/dist/translations/en.d.ts +0 -8
  29. package/dist/translations/en.js +0 -5
  30. package/dist/translations/es.d.ts +0 -8
  31. package/dist/translations/es.js +0 -5
  32. package/dist/translations/et.d.ts +0 -8
  33. package/dist/translations/et.js +0 -5
  34. package/dist/translations/fi.d.ts +0 -8
  35. package/dist/translations/fi.js +0 -5
  36. package/dist/translations/fr.d.ts +0 -8
  37. package/dist/translations/fr.js +0 -5
  38. package/dist/translations/gl.d.ts +0 -8
  39. package/dist/translations/gl.js +0 -5
  40. package/dist/translations/he.d.ts +0 -8
  41. package/dist/translations/he.js +0 -5
  42. package/dist/translations/hi.d.ts +0 -8
  43. package/dist/translations/hi.js +0 -5
  44. package/dist/translations/hr.d.ts +0 -8
  45. package/dist/translations/hr.js +0 -5
  46. package/dist/translations/hu.d.ts +0 -8
  47. package/dist/translations/hu.js +0 -5
  48. package/dist/translations/id.d.ts +0 -8
  49. package/dist/translations/id.js +0 -5
  50. package/dist/translations/it.d.ts +0 -8
  51. package/dist/translations/it.js +0 -5
  52. package/dist/translations/ja.d.ts +0 -8
  53. package/dist/translations/ja.js +0 -5
  54. package/dist/translations/jv.d.ts +0 -8
  55. package/dist/translations/jv.js +0 -5
  56. package/dist/translations/ko.d.ts +0 -8
  57. package/dist/translations/ko.js +0 -5
  58. package/dist/translations/lt.d.ts +0 -8
  59. package/dist/translations/lt.js +0 -5
  60. package/dist/translations/lv.d.ts +0 -8
  61. package/dist/translations/lv.js +0 -5
  62. package/dist/translations/ms.d.ts +0 -8
  63. package/dist/translations/ms.js +0 -5
  64. package/dist/translations/nl.d.ts +0 -8
  65. package/dist/translations/nl.js +0 -5
  66. package/dist/translations/no.d.ts +0 -8
  67. package/dist/translations/no.js +0 -5
  68. package/dist/translations/pl.d.ts +0 -8
  69. package/dist/translations/pl.js +0 -5
  70. package/dist/translations/pt-br.d.ts +0 -8
  71. package/dist/translations/pt-br.js +0 -5
  72. package/dist/translations/pt.d.ts +0 -8
  73. package/dist/translations/pt.js +0 -5
  74. package/dist/translations/ro.d.ts +0 -8
  75. package/dist/translations/ro.js +0 -5
  76. package/dist/translations/ru.d.ts +0 -8
  77. package/dist/translations/ru.js +0 -5
  78. package/dist/translations/sk.d.ts +0 -8
  79. package/dist/translations/sk.js +0 -5
  80. package/dist/translations/sr-latn.d.ts +0 -8
  81. package/dist/translations/sr-latn.js +0 -5
  82. package/dist/translations/sr.d.ts +0 -8
  83. package/dist/translations/sr.js +0 -5
  84. package/dist/translations/sv.d.ts +0 -8
  85. package/dist/translations/sv.js +0 -5
  86. package/dist/translations/th.d.ts +0 -8
  87. package/dist/translations/th.js +0 -5
  88. package/dist/translations/tk.d.ts +0 -8
  89. package/dist/translations/tk.js +0 -5
  90. package/dist/translations/tr.d.ts +0 -8
  91. package/dist/translations/tr.js +0 -5
  92. package/dist/translations/tt.d.ts +0 -8
  93. package/dist/translations/tt.js +0 -5
  94. package/dist/translations/ug.d.ts +0 -8
  95. package/dist/translations/ug.js +0 -5
  96. package/dist/translations/uk.d.ts +0 -8
  97. package/dist/translations/uk.js +0 -5
  98. package/dist/translations/ur.d.ts +0 -8
  99. package/dist/translations/ur.js +0 -5
  100. package/dist/translations/vi.d.ts +0 -8
  101. package/dist/translations/vi.js +0 -5
  102. package/dist/translations/zh-cn.d.ts +0 -8
  103. package/dist/translations/zh-cn.js +0 -5
  104. package/dist/translations/zh.d.ts +0 -8
  105. package/dist/translations/zh.js +0 -5
  106. package/dist/types/augmentation.d.ts +0 -51
  107. package/dist/types/index.d.ts +0 -17
  108. package/dist/types/textpartlanguage.d.ts +0 -39
  109. package/dist/types/textpartlanguagecommand.d.ts +0 -74
  110. package/dist/types/textpartlanguageconfig.d.ts +0 -29
  111. package/dist/types/textpartlanguageediting.d.ts +0 -32
  112. package/dist/types/textpartlanguageui.d.ts +0 -27
  113. package/dist/types/utils.d.ts +0 -44
package/build/language.js CHANGED
@@ -2,4 +2,4 @@
2
2
  /*!
3
3
  * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
4
4
  * For licensing, see LICENSE.md.
5
- */(()=>{var e={782:(e,t,a)=>{e.exports=a(237)("./src/core.js")},311:(e,t,a)=>{e.exports=a(237)("./src/ui.js")},584:(e,t,a)=>{e.exports=a(237)("./src/utils.js")},237:e=>{"use strict";e.exports=CKEditor5.dll}},t={};function a(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,a),i.exports}a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";a.r(n),a.d(n,{TextPartLanguage:()=>l,TextPartLanguageEditing:()=>r,TextPartLanguageUI:()=>u});var e=a(782),t=a(584);function o(e,a){return`${e}:${a=a||(0,t.getLanguageDirection)(e)}`}class i extends e.Command{refresh(){const e=this.editor.model,t=e.document;this.value=this._getValueFromFirstAllowedNode(),this.isEnabled=e.schema.checkAttributeInSelection(t.selection,"language")}execute({languageCode:e,textDirection:t}={}){const a=this.editor.model,n=a.document.selection,i=!!e&&o(e,t);a.change((e=>{if(n.isCollapsed)i?e.setSelectionAttribute("language",i):e.removeSelectionAttribute("language");else{const t=a.schema.getValidRanges(n.getRanges(),"language");for(const a of t)i?e.setAttribute("language",i,a):e.removeAttribute("language",a)}}))}_getValueFromFirstAllowedNode(){const e=this.editor.model,t=e.schema,a=e.document.selection;if(a.isCollapsed)return a.getAttribute("language")||!1;for(const e of a.getRanges())for(const a of e.getItems())if(t.checkAttribute(a,"language"))return a.getAttribute("language")||!1;return!1}}class r extends e.Plugin{static get pluginName(){return"TextPartLanguageEditing"}constructor(e){super(e),e.config.define("language",{textPartLanguage:[{title:"Arabic",languageCode:"ar"},{title:"French",languageCode:"fr"},{title:"Spanish",languageCode:"es"}]})}init(){const e=this.editor;e.model.schema.extend("$text",{allowAttributes:"language"}),e.model.schema.setAttributeProperties("language",{copyOnEnter:!0}),this._defineConverters(),e.commands.add("textPartLanguage",new i(e))}_defineConverters(){const e=this.editor.conversion;e.for("upcast").elementToAttribute({model:{key:"language",value:e=>o(e.getAttribute("lang"),e.getAttribute("dir"))},view:{name:"span",attributes:{lang:/[\s\S]+/}}}),e.for("downcast").attributeToElement({model:"language",view:(e,{writer:t},a)=>{if(!e)return;if(!a.item.is("$textProxy")&&!a.item.is("documentSelection"))return;const{languageCode:n,textDirection:o}=function(e){const[t,a]=e.split(":");return{languageCode:t,textDirection:a}}(e);return t.createAttributeElement("span",{lang:n,dir:o})}})}}var g=a(311);class u extends e.Plugin{static get pluginName(){return"TextPartLanguageUI"}init(){const e=this.editor,a=e.t,n=e.config.get("language.textPartLanguage"),i=a("Choose language"),r=a("Remove language"),u=a("Language");e.ui.componentFactory.add("textPartLanguage",(a=>{const l=new t.Collection,s={},d=e.commands.get("textPartLanguage");l.add({type:"button",model:new g.ViewModel({label:r,languageCode:!1,withText:!0})}),l.add({type:"separator"});for(const e of n){const t={type:"button",model:new g.ViewModel({label:e.title,languageCode:e.languageCode,role:"menuitemradio",textDirection:e.textDirection,withText:!0})},a=o(e.languageCode,e.textDirection);t.model.bind("isOn").to(d,"value",(e=>e===a)),l.add(t),s[a]=e.title}const c=(0,g.createDropdown)(a);return(0,g.addListToDropdown)(c,l,{ariaLabel:u,role:"menu"}),c.buttonView.set({ariaLabel:u,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:u}),c.extendTemplate({attributes:{class:["ck-text-fragment-language-dropdown"]}}),c.bind("isEnabled").to(d,"isEnabled"),c.buttonView.bind("label").to(d,"value",(e=>e&&s[e]||i)),c.buttonView.bind("ariaLabel").to(d,"value",(e=>{const t=e&&s[e];return t?`${t}, ${u}`:u})),this.listenTo(c,"execute",(t=>{d.execute({languageCode:t.source.languageCode,textDirection:t.source.textDirection}),e.editing.view.focus()})),c}))}}class l extends e.Plugin{static get requires(){return[r,u]}static get pluginName(){return"TextPartLanguage"}}})(),(window.CKEditor5=window.CKEditor5||{}).language=n})();
5
+ */(()=>{var e={782:(e,t,n)=>{e.exports=n(237)("./src/core.js")},311:(e,t,n)=>{e.exports=n(237)("./src/ui.js")},584:(e,t,n)=>{e.exports=n(237)("./src/utils.js")},237:e=>{"use strict";e.exports=CKEditor5.dll}},t={};function n(a){var o=t[a];if(void 0!==o)return o.exports;var i=t[a]={exports:{}};return e[a](i,i.exports,n),i.exports}n.d=(e,t)=>{for(var a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};(()=>{"use strict";n.r(a),n.d(a,{TextPartLanguage:()=>s,TextPartLanguageEditing:()=>r,TextPartLanguageUI:()=>u});var e=n(782),t=n(584);function o(e,n){return`${e}:${n=n||(0,t.getLanguageDirection)(e)}`}class i extends e.Command{refresh(){const e=this.editor.model,t=e.document;this.value=this._getValueFromFirstAllowedNode(),this.isEnabled=e.schema.checkAttributeInSelection(t.selection,"language")}execute({languageCode:e,textDirection:t}={}){const n=this.editor.model,a=n.document.selection,i=!!e&&o(e,t);n.change((e=>{if(a.isCollapsed)i?e.setSelectionAttribute("language",i):e.removeSelectionAttribute("language");else{const t=n.schema.getValidRanges(a.getRanges(),"language");for(const n of t)i?e.setAttribute("language",i,n):e.removeAttribute("language",n)}}))}_getValueFromFirstAllowedNode(){const e=this.editor.model,t=e.schema,n=e.document.selection;if(n.isCollapsed)return n.getAttribute("language")||!1;for(const e of n.getRanges())for(const n of e.getItems())if(t.checkAttribute(n,"language"))return n.getAttribute("language")||!1;return!1}}class r extends e.Plugin{static get pluginName(){return"TextPartLanguageEditing"}constructor(e){super(e),e.config.define("language",{textPartLanguage:[{title:"Arabic",languageCode:"ar"},{title:"French",languageCode:"fr"},{title:"Spanish",languageCode:"es"}]})}init(){const e=this.editor;e.model.schema.extend("$text",{allowAttributes:"language"}),e.model.schema.setAttributeProperties("language",{copyOnEnter:!0}),this._defineConverters(),e.commands.add("textPartLanguage",new i(e))}_defineConverters(){const e=this.editor.conversion;e.for("upcast").elementToAttribute({model:{key:"language",value:e=>o(e.getAttribute("lang"),e.getAttribute("dir"))},view:{name:"span",attributes:{lang:/[\s\S]+/}}}),e.for("downcast").attributeToElement({model:"language",view:(e,{writer:t},n)=>{if(!e)return;if(!n.item.is("$textProxy")&&!n.item.is("documentSelection"))return;const{languageCode:a,textDirection:o}=function(e){const[t,n]=e.split(":");return{languageCode:t,textDirection:n}}(e);return t.createAttributeElement("span",{lang:a,dir:o})}})}}var g=n(311);class u extends e.Plugin{static get pluginName(){return"TextPartLanguageUI"}init(){const e=this.editor,t=e.t,n=t("Choose language"),a=t("Language");e.ui.componentFactory.add("textPartLanguage",(t=>{const{definitions:o,titles:i}=this._getItemMetadata(),r=e.commands.get("textPartLanguage"),u=(0,g.createDropdown)(t);return(0,g.addListToDropdown)(u,o,{ariaLabel:a,role:"menu"}),u.buttonView.set({ariaLabel:a,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:a}),u.extendTemplate({attributes:{class:["ck-text-fragment-language-dropdown"]}}),u.bind("isEnabled").to(r,"isEnabled"),u.buttonView.bind("label").to(r,"value",(e=>e&&i[e]||n)),u.buttonView.bind("ariaLabel").to(r,"value",(e=>{const t=e&&i[e];return t?`${t}, ${a}`:a})),this.listenTo(u,"execute",(t=>{r.execute({languageCode:t.source.languageCode,textDirection:t.source.textDirection}),e.editing.view.focus()})),u})),e.ui.componentFactory.add("menuBar:textPartLanguage",(n=>{const{definitions:o}=this._getItemMetadata(),i=e.commands.get("textPartLanguage"),r=new g.MenuBarMenuView(n);r.buttonView.set({label:a});const u=new g.MenuBarMenuListView(n);u.set({ariaLabel:t("Language"),role:"menu"});for(const e of o){if("button"!=e.type){u.items.add(new g.ListSeparatorView(n));continue}const t=new g.MenuBarMenuListItemView(n,r),a=new g.MenuBarMenuListItemButtonView(n);a.bind(...Object.keys(e.model)).to(e.model),a.bind("ariaChecked").to(a,"isOn"),a.delegate("execute").to(r),t.children.add(a),u.items.add(t)}return r.bind("isEnabled").to(i,"isEnabled"),r.panelView.children.add(u),r.on("execute",(t=>{i.execute({languageCode:t.source.languageCode,textDirection:t.source.textDirection}),e.editing.view.focus()})),r}))}_getItemMetadata(){const e=this.editor,n=new t.Collection,a={},i=e.commands.get("textPartLanguage"),r=e.config.get("language.textPartLanguage"),u=(0,e.locale.t)("Remove language");n.add({type:"button",model:new g.ViewModel({label:u,languageCode:!1,withText:!0})}),n.add({type:"separator"});for(const e of r){const t={type:"button",model:new g.ViewModel({label:e.title,languageCode:e.languageCode,role:"menuitemradio",textDirection:e.textDirection,withText:!0})},r=o(e.languageCode,e.textDirection);t.model.bind("isOn").to(i,"value",(e=>e===r)),n.add(t),a[r]=e.title}return{definitions:n,titles:a}}}class s extends e.Plugin{static get requires(){return[r,u]}static get pluginName(){return"TextPartLanguage"}}})(),(window.CKEditor5=window.CKEditor5||{}).language=a})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-language",
3
- "version": "41.3.0-alpha.3",
3
+ "version": "41.3.0",
4
4
  "description": "Text part language feature for CKEditor 5.",
5
5
  "keywords": [
6
6
  "ckeditor",
@@ -13,7 +13,7 @@
13
13
  "type": "module",
14
14
  "main": "src/index.js",
15
15
  "dependencies": {
16
- "ckeditor5": "41.3.0-alpha.3"
16
+ "ckeditor5": "41.3.0"
17
17
  },
18
18
  "author": "CKSource (http://cksource.com/)",
19
19
  "license": "GPL-2.0-or-later",
@@ -25,7 +25,6 @@
25
25
  "directory": "packages/ckeditor5-language"
26
26
  },
27
27
  "files": [
28
- "dist",
29
28
  "lang",
30
29
  "src/**/*.js",
31
30
  "src/**/*.d.ts",
@@ -20,4 +20,8 @@ export default class TextPartLanguageUI extends Plugin {
20
20
  * @inheritDoc
21
21
  */
22
22
  init(): void;
23
+ /**
24
+ * Returns metadata for dropdown and menu items.
25
+ */
26
+ private _getItemMetadata;
23
27
  }
@@ -6,7 +6,7 @@
6
6
  * @module language/textpartlanguageui
7
7
  */
8
8
  import { Plugin } from 'ckeditor5/src/core.js';
9
- import { ViewModel, createDropdown, addListToDropdown } from 'ckeditor5/src/ui.js';
9
+ import { addListToDropdown, createDropdown, ListSeparatorView, MenuBarMenuView, MenuBarMenuListView, MenuBarMenuListItemView, MenuBarMenuListItemButtonView, ViewModel } from 'ckeditor5/src/ui.js';
10
10
  import { Collection } from 'ckeditor5/src/utils.js';
11
11
  import { stringifyLanguageAttribute } from './utils.js';
12
12
  /**
@@ -27,45 +27,14 @@ export default class TextPartLanguageUI extends Plugin {
27
27
  init() {
28
28
  const editor = this.editor;
29
29
  const t = editor.t;
30
- const options = editor.config.get('language.textPartLanguage');
31
30
  const defaultTitle = t('Choose language');
32
- const removeTitle = t('Remove language');
33
31
  const accessibleLabel = t('Language');
34
32
  // Register UI component.
35
33
  editor.ui.componentFactory.add('textPartLanguage', locale => {
36
- const itemDefinitions = new Collection();
37
- const titles = {};
34
+ const { definitions, titles } = this._getItemMetadata();
38
35
  const languageCommand = editor.commands.get('textPartLanguage');
39
- // Item definition with false `languageCode` will behave as remove lang button.
40
- itemDefinitions.add({
41
- type: 'button',
42
- model: new ViewModel({
43
- label: removeTitle,
44
- languageCode: false,
45
- withText: true
46
- })
47
- });
48
- itemDefinitions.add({
49
- type: 'separator'
50
- });
51
- for (const option of options) {
52
- const def = {
53
- type: 'button',
54
- model: new ViewModel({
55
- label: option.title,
56
- languageCode: option.languageCode,
57
- role: 'menuitemradio',
58
- textDirection: option.textDirection,
59
- withText: true
60
- })
61
- };
62
- const language = stringifyLanguageAttribute(option.languageCode, option.textDirection);
63
- def.model.bind('isOn').to(languageCommand, 'value', value => value === language);
64
- itemDefinitions.add(def);
65
- titles[language] = option.title;
66
- }
67
36
  const dropdownView = createDropdown(locale);
68
- addListToDropdown(dropdownView, itemDefinitions, {
37
+ addListToDropdown(dropdownView, definitions, {
69
38
  ariaLabel: accessibleLabel,
70
39
  role: 'menu'
71
40
  });
@@ -104,5 +73,86 @@ export default class TextPartLanguageUI extends Plugin {
104
73
  });
105
74
  return dropdownView;
106
75
  });
76
+ // Register menu bar UI component.
77
+ editor.ui.componentFactory.add('menuBar:textPartLanguage', locale => {
78
+ const { definitions } = this._getItemMetadata();
79
+ const languageCommand = editor.commands.get('textPartLanguage');
80
+ const menuView = new MenuBarMenuView(locale);
81
+ menuView.buttonView.set({
82
+ label: accessibleLabel
83
+ });
84
+ const listView = new MenuBarMenuListView(locale);
85
+ listView.set({
86
+ ariaLabel: t('Language'),
87
+ role: 'menu'
88
+ });
89
+ for (const definition of definitions) {
90
+ if (definition.type != 'button') {
91
+ listView.items.add(new ListSeparatorView(locale));
92
+ continue;
93
+ }
94
+ const listItemView = new MenuBarMenuListItemView(locale, menuView);
95
+ const buttonView = new MenuBarMenuListItemButtonView(locale);
96
+ buttonView.bind(...Object.keys(definition.model)).to(definition.model);
97
+ buttonView.bind('ariaChecked').to(buttonView, 'isOn');
98
+ buttonView.delegate('execute').to(menuView);
99
+ listItemView.children.add(buttonView);
100
+ listView.items.add(listItemView);
101
+ }
102
+ menuView.bind('isEnabled').to(languageCommand, 'isEnabled');
103
+ menuView.panelView.children.add(listView);
104
+ menuView.on('execute', evt => {
105
+ languageCommand.execute({
106
+ languageCode: evt.source.languageCode,
107
+ textDirection: evt.source.textDirection
108
+ });
109
+ editor.editing.view.focus();
110
+ });
111
+ return menuView;
112
+ });
113
+ }
114
+ /**
115
+ * Returns metadata for dropdown and menu items.
116
+ */
117
+ _getItemMetadata() {
118
+ const editor = this.editor;
119
+ const itemDefinitions = new Collection();
120
+ const titles = {};
121
+ const languageCommand = editor.commands.get('textPartLanguage');
122
+ const options = editor.config.get('language.textPartLanguage');
123
+ const t = editor.locale.t;
124
+ const removeTitle = t('Remove language');
125
+ // Item definition with false `languageCode` will behave as remove lang button.
126
+ itemDefinitions.add({
127
+ type: 'button',
128
+ model: new ViewModel({
129
+ label: removeTitle,
130
+ languageCode: false,
131
+ withText: true
132
+ })
133
+ });
134
+ itemDefinitions.add({
135
+ type: 'separator'
136
+ });
137
+ for (const option of options) {
138
+ const def = {
139
+ type: 'button',
140
+ model: new ViewModel({
141
+ label: option.title,
142
+ languageCode: option.languageCode,
143
+ role: 'menuitemradio',
144
+ textDirection: option.textDirection,
145
+ withText: true
146
+ })
147
+ };
148
+ const language = stringifyLanguageAttribute(option.languageCode, option.textDirection);
149
+ def.model.bind('isOn').to(languageCommand, 'value', value => value === language);
150
+ itemDefinitions.add(def);
151
+ titles[language] = option.title;
152
+ }
153
+ return {
154
+ definitions: itemDefinitions,
155
+ titles
156
+ };
107
157
  }
108
158
  }
@@ -1,4 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
@@ -1,4 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
package/dist/index.css DELETED
@@ -1,4 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"ar":{"dictionary":{"Language":"اللغة","Choose language":"اختيار اللغة","Remove language":"إزالة اللغة"},getPluralForm(n){return n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"bg":{"dictionary":{"Language":"Език","Choose language":"Избери език","Remove language":"Премахни език"},getPluralForm(n){return (n != 1);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"bn":{"dictionary":{"Language":"ভাষা","Choose language":"ভাষা নির্বাচন করুন","Remove language":"ভাষা মুছে ফেলুন"},getPluralForm(n){return (n != 1);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"ca":{"dictionary":{"Language":"Idioma","Choose language":"Triar l'idioma","Remove language":"Eliminar l'idioma"},getPluralForm(n){return (n != 1);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"cs":{"dictionary":{"Language":"Jazyk","Choose language":"Vybrat jazyk","Remove language":"Odstranit jazyk"},getPluralForm(n){return (n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"da":{"dictionary":{"Language":"Sprog","Choose language":"Vælg sprog","Remove language":"Fjern sprog"},getPluralForm(n){return (n != 1);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"de-ch":{"dictionary":{"Language":"Sprache","Choose language":"Sprache auswählen","Remove language":"Sprache entfernen"},getPluralForm(n){return (n != 1);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"de":{"dictionary":{"Language":"Sprache","Choose language":"Sprache auswählen","Remove language":"Sprache entfernen"},getPluralForm(n){return (n != 1);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"el":{"dictionary":{"Language":"Γλώσσα","Choose language":"Επιλογή γλώσσας","Remove language":"Απομάκρυνση γλώσσας"},getPluralForm(n){return (n != 1);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"en-au":{"dictionary":{"Language":"Language","Choose language":"Choose language","Remove language":"Remove language"},getPluralForm(n){return (n != 1);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"en":{"dictionary":{"Language":"Language","Choose language":"Choose language","Remove language":"Remove language"},"getPluralForm":null}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"es":{"dictionary":{"Language":"Idioma","Choose language":"Elija el idioma","Remove language":"Quitar idioma"},getPluralForm(n){return n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"et":{"dictionary":{"Language":"Keel","Choose language":"Vali keel","Remove language":"Eemalda keel"},getPluralForm(n){return (n != 1);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"fi":{"dictionary":{"Language":"Kieli","Choose language":"Valitse kieli","Remove language":"Poista kieli"},getPluralForm(n){return (n != 1);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"fr":{"dictionary":{"Language":"Langue","Choose language":"Choisir la langue","Remove language":"Supprimer la langue"},getPluralForm(n){return (n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"gl":{"dictionary":{"Language":"Idioma","Choose language":"Escolla o idioma","Remove language":"Retirar o idioma"},getPluralForm(n){return (n != 1);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"he":{"dictionary":{"Language":"שפה","Choose language":"בחר שפה","Remove language":"הסר שפה"},getPluralForm(n){return (n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"hi":{"dictionary":{"Language":"भाषा","Choose language":"भाषा चुनें","Remove language":"भाषा हटाएं"},getPluralForm(n){return (n != 1);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"hr":{"dictionary":{"Language":"Jezik","Choose language":"Odaberi jezik","Remove language":"Ukloni jezik"},getPluralForm(n){return n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"hu":{"dictionary":{"Language":"Nyelv","Choose language":"Nyelv választása","Remove language":"Nyelv eltávolítása"},getPluralForm(n){return (n != 1);}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"id":{"dictionary":{"Language":"Bahasa","Choose language":"Pilih bahasa","Remove language":"Singkirkan bahasa"},getPluralForm(n){return 0;}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"it":{"dictionary":{"Language":"Lingua","Choose language":"Seleziona lingua","Remove language":"Rimuovi lingua"},getPluralForm(n){return n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;}}}
@@ -1,8 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
-
6
- import type { Translations } from 'ckeditor5';
7
- declare const translations: Translations;
8
- export default translations;
@@ -1,5 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export default {"ja":{"dictionary":{"Language":"言語","Choose language":"言語を選択","Remove language":"言語を削除"},getPluralForm(n){return 0;}}}