Jelajahi Sumber

Merge branch 'master' into local/single-line-experiments

# Conflicts:
#	packages/ckeditor5-table/src/tablekeyboard.js
Kuba Niegowski 5 tahun lalu
induk
melakukan
93b7014834
100 mengubah file dengan 490 tambahan dan 98 penghapusan
  1. 2 6
      docs/_snippets/framework/tutorials/using-react-in-widget.js
  2. 10 3
      docs/builds/guides/development/custom-builds.md
  3. 5 5
      docs/builds/guides/integration/advanced-setup.md
  4. 6 3
      docs/framework/guides/architecture/editing-engine.md
  5. 3 3
      docs/framework/guides/architecture/ui-library.md
  6. 3 1
      docs/framework/guides/contributing/development-environment.md
  7. 1 1
      docs/framework/guides/deep-dive/localization.md
  8. 1 1
      docs/framework/guides/development-tools.md
  9. 4 12
      docs/framework/guides/tutorials/using-react-in-a-widget.md
  10. 5 5
      package.json
  11. 21 0
      packages/ckeditor5-adapter-ckfinder/lang/translations/tk.po
  12. 41 0
      packages/ckeditor5-alignment/lang/translations/tk.po
  13. 41 0
      packages/ckeditor5-alignment/lang/translations/ug.po
  14. 2 1
      packages/ckeditor5-autoformat/package.json
  15. 5 4
      packages/ckeditor5-autoformat/src/autoformat.js
  16. 27 4
      packages/ckeditor5-autoformat/src/blockautoformatediting.js
  17. 1 1
      packages/ckeditor5-autoformat/src/inlineautoformatediting.js
  18. 71 8
      packages/ckeditor5-autoformat/tests/autoformat.js
  19. 30 4
      packages/ckeditor5-autoformat/tests/blockautoformatediting.js
  20. 5 7
      packages/ckeditor5-autoformat/tests/manual/autoformat.md
  21. 21 0
      packages/ckeditor5-autosave/lang/translations/tk.po
  22. 21 0
      packages/ckeditor5-autosave/lang/translations/ug.po
  23. 1 1
      packages/ckeditor5-autosave/src/autosave.js
  24. TEMPAT SAMPAH
      packages/ckeditor5-basic-styles/docs/assets/img/typing-after-code.gif
  25. TEMPAT SAMPAH
      packages/ckeditor5-basic-styles/docs/assets/img/typing-inside-code.gif
  26. 12 0
      packages/ckeditor5-basic-styles/docs/features/basic-styles.md
  27. 45 0
      packages/ckeditor5-basic-styles/lang/translations/tk.po
  28. 4 4
      packages/ckeditor5-basic-styles/lang/translations/ug.po
  29. 1 0
      packages/ckeditor5-basic-styles/package.json
  30. 16 0
      packages/ckeditor5-basic-styles/src/code/codeediting.js
  31. 35 0
      packages/ckeditor5-basic-styles/tests/code/codeediting.js
  32. 4 0
      packages/ckeditor5-basic-styles/theme/code.css
  33. 21 0
      packages/ckeditor5-block-quote/lang/translations/tk.po
  34. 1 1
      packages/ckeditor5-block-quote/lang/translations/ug.po
  35. 7 4
      packages/ckeditor5-block-quote/src/blockquoteediting.js
  36. 0 0
      packages/ckeditor5-build-balloon-block/build/ckeditor.js
  37. 0 0
      packages/ckeditor5-build-balloon-block/build/ckeditor.js.map
  38. 1 1
      packages/ckeditor5-build-balloon-block/build/translations/af.js
  39. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/ar.js
  40. 1 1
      packages/ckeditor5-build-balloon-block/build/translations/ast.js
  41. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/az.js
  42. 0 1
      packages/ckeditor5-build-balloon-block/build/translations/bg.js
  43. 1 1
      packages/ckeditor5-build-balloon-block/build/translations/ca.js
  44. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/cs.js
  45. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/da.js
  46. 1 1
      packages/ckeditor5-build-balloon-block/build/translations/de-ch.js
  47. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/de.js
  48. 1 1
      packages/ckeditor5-build-balloon-block/build/translations/el.js
  49. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/en-au.js
  50. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/en-gb.js
  51. 1 1
      packages/ckeditor5-build-balloon-block/build/translations/eo.js
  52. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/es.js
  53. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/et.js
  54. 1 1
      packages/ckeditor5-build-balloon-block/build/translations/eu.js
  55. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/fa.js
  56. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/fi.js
  57. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/fr.js
  58. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/gl.js
  59. 1 1
      packages/ckeditor5-build-balloon-block/build/translations/gu.js
  60. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/he.js
  61. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/hr.js
  62. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/hu.js
  63. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/id.js
  64. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/it.js
  65. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/ja.js
  66. 1 1
      packages/ckeditor5-build-balloon-block/build/translations/km.js
  67. 1 1
      packages/ckeditor5-build-balloon-block/build/translations/kn.js
  68. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/ko.js
  69. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/ku.js
  70. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/lt.js
  71. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/lv.js
  72. 1 1
      packages/ckeditor5-build-balloon-block/build/translations/ms.js
  73. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/nb.js
  74. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/ne.js
  75. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/nl.js
  76. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/no.js
  77. 1 1
      packages/ckeditor5-build-balloon-block/build/translations/oc.js
  78. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/pl.js
  79. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/pt-br.js
  80. 1 1
      packages/ckeditor5-build-balloon-block/build/translations/pt.js
  81. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/ro.js
  82. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/ru.js
  83. 1 1
      packages/ckeditor5-build-balloon-block/build/translations/si.js
  84. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/sk.js
  85. 1 1
      packages/ckeditor5-build-balloon-block/build/translations/sl.js
  86. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/sq.js
  87. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/sr-latn.js
  88. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/sr.js
  89. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/sv.js
  90. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/th.js
  91. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/tr.js
  92. 1 1
      packages/ckeditor5-build-balloon-block/build/translations/tt.js
  93. 0 1
      packages/ckeditor5-build-balloon-block/build/translations/ug.js
  94. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/uk.js
  95. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/vi.js
  96. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/zh-cn.js
  97. 0 0
      packages/ckeditor5-build-balloon-block/build/translations/zh.js
  98. 0 0
      packages/ckeditor5-build-balloon/build/ckeditor.js
  99. 0 0
      packages/ckeditor5-build-balloon/build/ckeditor.js.map
  100. 1 1
      packages/ckeditor5-build-balloon/build/translations/af.js

+ 2 - 6
docs/_snippets/framework/tutorials/using-react-in-widget.js

@@ -114,17 +114,13 @@ class ProductPreviewEditing extends Plugin {
 
 				// The inner <div class="product__react-wrapper"></div> element.
 				// This element will host a React <ProductPreview /> component.
-				const reactWrapper = viewWriter.createUIElement( 'div', {
+				const reactWrapper = viewWriter.createRawElement( 'div', {
 					class: 'product__react-wrapper'
-				}, function( domDocument ) {
-					const domElement = this.toDomElement( domDocument );
-
+				}, function( domElement ) {
 					// This the place where React renders the actual product preview hosted
 					// by a UIElement in the view. you are using a function (renderer) passed as
 					// editor.config.products#productRenderer.
 					renderProduct( id, domElement );
-
-					return domElement;
 				} );
 
 				viewWriter.insert( viewWriter.createPositionAt( section, 0 ), reactWrapper );

+ 10 - 3
docs/builds/guides/development/custom-builds.md

@@ -35,16 +35,23 @@ In order to start developing CKEditor 5 you will require:
 
 ## Forking an existing build
 
-Start with [forking](https://help.github.com/articles/fork-a-repo/) one of the official builds (it will serve as the starting point for your custom one) and then clone your fork:
+Start with [forking](https://help.github.com/articles/fork-a-repo/) [the main `ckeditor5` repository](https://github.com/ckeditor/ckeditor5) (it will serve as the starting point for your customizations) and then clone your fork:
 
 ```bash
-git clone -b stable git@github.com:<your-username>/ckeditor5-build-classic.git
+git clone -b stable git@github.com:<your-username>/ckeditor5.git
+```
+
+Builds are available in the `packages/` directory. The directories are named `ckeditor5-build-*`.
+For example, use the following command to get to the classic build:
+
+```bash
+cd packages/ckeditor5-build-classic
 ```
 
 To make updating easier you may optionally add the original build repository to your Git remotes:
 
 ```bash
-git remote add upstream https://github.com/ckeditor/ckeditor5-build-classic.git
+git remote add upstream https://github.com/ckeditor/ckeditor5.git
 ```
 
 <info-box hint>

+ 5 - 5
docs/builds/guides/integration/advanced-setup.md

@@ -66,7 +66,7 @@ This scenario allows you to fully control the building process of CKEditor. This
 	Similar results to what this method allows can be achieved by {@link builds/guides/development/custom-builds customizing an existing build} and integrating your custom build like in scenario 1. This will give faster build times (since CKEditor will be built once and committed), however, it requires maintaining a separate repository and installing the code from that repository into your project (e.g. by publishing a new npm package or using tools like [Lerna](https://github.com/lerna/lerna)). This makes it less convenient than the method described in this scenario.
 </info-box>
 
-First of all, you need to install source packages that you will use. If you base your integration on one of the existing builds, you can take them from that build's `package.json` file (see e.g. [classic build's `package.json`](https://github.com/ckeditor/ckeditor5-build-classic/tree/master/package.json)). At this moment you can choose the editor creator and the features you want.
+First of all, you need to install source packages that you will use. If you base your integration on one of the existing builds, you can take them from that build's `package.json` file (see e.g. [classic build's `package.json`](https://github.com/ckeditor/ckeditor5/blob/master/packages/ckeditor5-build-classic/package.json)). At this moment you can choose the editor creator and the features you want.
 
 Copy these dependencies to your `package.json` and call `npm install` to install them. The `dependencies` (or `devDependencies`) section of `package.json` should look more or less like this:
 
@@ -376,7 +376,7 @@ Webpack 4 introduced the [concept of modes](https://webpack.js.org/concepts/mode
 
 <info-box>
 	Prior to version 1.2.7 `uglifyjs-webpack-plugin` had a bug which caused webpack to crash with the following error: `TypeError: Assignment to constant variable.`. If you experienced this error, make sure that your `node_modules` contains an up-to-date version of this package (and that webpack uses this version).
-	
+
 	CKEditor 5 Builds use [`Terser`](https://github.com/terser/terser) instead of `uglifyjs-webpack-plugin` because [the later one seems to be unsupported anymore](https://github.com/ckeditor/ckeditor5/issues/1353).
 </info-box>
 
@@ -513,11 +513,11 @@ If you want to load two different editors on one page you need to make sure that
 
 There is no limit for how many editor classes a single build can export. By default, the official builds export a single editor class only. However, they can easily import more.
 
-You can start from forking (or copying) an existing build like in the {@link builds/guides/development/custom-builds "Creating custom builds"} guide. Let's say you forked and cloned the [`ckeditor5-build-classic`](http://github.com/ckeditor/ckeditor5-build-classic) repository and want to add {@link module:editor-inline/inlineeditor~InlineEditor} to it:
+You can start from forking (or copying) an existing build like in the {@link builds/guides/development/custom-builds "Creating custom builds"} guide. Let's say you forked and cloned the [`ckeditor5`](http://github.com/ckeditor /ckeditor5) repository and want to add {@link module:editor-inline/inlineeditor~InlineEditor} to the classic build:
 
 ```bash
-git clone -b stable git@github.com:<your-username>/ckeditor5-build-classic.git
-cd ckeditor5-build-classic
+git clone -b stable git@github.com:<your-username>/ckeditor5.git
+cd ckeditor5/packages/ckeditor5-build-classic
 npm install
 ```
 

+ 6 - 3
docs/framework/guides/architecture/editing-engine.md

@@ -159,9 +159,11 @@ Markers are a special type of ranges.
 * They can only be created and changed through the {@link module:engine/model/writer~Writer model writer}.
 * They can be synchronized over the network with other collaborating clients.
 * They are automatically updated when the document's structure is changed.
-* They can be converted to attributes or elements in the [view](#view).
+* They can be converted to the editing view, to show them in the editor (as {@link module:engine/conversion/downcasthelpers~DowncastHelpers#markerToHighlight highlights} or {@link module:engine/conversion/downcasthelpers~DowncastHelpers#markerToElement elements}).
+* They can be {@link module:engine/conversion/downcasthelpers~DowncastHelpers#markerToData converted to the data view}, to store them with the document data.
+* They can be {@link module:engine/conversion/upcasthelpers~UpcastHelpers#dataToMarker loaded with the document data}.
 
-This makes them ideal for storing and maintaining additional data in the model &mdash; such as comments, selections of other users, etc.
+Markers are ideal for storing and maintaining additional data related to portions of the document &mdash; such as comments or selections of other users.
 
 ### Schema
 
@@ -224,7 +226,7 @@ editor.data;                    // The data pipeline (DataController).
 
 ### Element types and custom data
 
-The structure of the view resembles the structure in the DOM very closely. The semantics of HTML is defined in its specification. The view structure comes "DTD-free", so in order to provide additional information and better express the semantics of the content, the view structure implements 5 element types ({@link module:engine/view/containerelement~ContainerElement}, {@link module:engine/view/attributeelement~AttributeElement}, {@link module:engine/view/emptyelement~EmptyElement}, {@link module:engine/view/uielement~UIElement}, and {@link module:engine/view/editableelement~EditableElement}) and so called {@link module:engine/view/element~Element#getCustomProperty "custom properties"} (i.e. custom element properties which are not rendered). This additional information provided by editor features is then used by the {@link module:engine/view/renderer~Renderer} and [converters](#conversion).
+The structure of the view resembles the structure in the DOM very closely. The semantics of HTML is defined in its specification. The view structure comes "DTD-free", so in order to provide additional information and better express the semantics of the content, the view structure implements 6 element types ({@link module:engine/view/containerelement~ContainerElement}, {@link module:engine/view/attributeelement~AttributeElement}, {@link module:engine/view/emptyelement~EmptyElement}, {@link module:engine/view/rawelement~RawElement}, {@link module:engine/view/uielement~UIElement}, and {@link module:engine/view/editableelement~EditableElement}) and so called {@link module:engine/view/element~Element#getCustomProperty "custom properties"} (i.e. custom element properties which are not rendered). This additional information provided by editor features is then used by the {@link module:engine/view/renderer~Renderer} and [converters](#conversion).
 
 The element types can be defined as follows:
 
@@ -232,6 +234,7 @@ The element types can be defined as follows:
 * **Attribute element** &ndash; The elements that cannot contain container elements inside them. Most model text attributes are converted to view attribute elements. They are used mostly for inline styling elements such as `<strong>`, `<i>`, `<a>`, `<code>`. Similar attribute elements are flattened by the view writer, so e.g. `<a href="..."><a class="bar">x</a></a>` would automatically be optimized to `<a href="..." class="bar">x</a>`.
 * **Empty element** &ndash; The elements that must not have any child nodes, for example `<img>`.
 * **UI elements** &ndash; The elements that are not a part of the "data" but need to be "inlined" in the content. They are ignored by the selection (it jumps over them) and the view writer in general. The contents of these elements and events coming from them are filtered out, too.
+* **Raw element** &ndash; The elements that work as data containers ("wrappers", "sandboxes") but their children are transparent to the editor. Useful when non-standard data must be rendered but the editor should not be concerned what it is and how it works. Users cannot put the selection inside a raw element, split it into smaller chunks or directly modify its content.
 * **Editable element** &ndash; The elements used as "nested editables" of non-editable fragments of the content, for example a caption in the image widget, where the `<figure>` wrapping the image is not editable (it is a widget) and the `<figcaption>` inside it is an editable element.
 
 Additionally, you can define {@link module:engine/view/element~Element#getCustomProperty custom properties} which can be used to store information like:

+ 3 - 3
docs/framework/guides/architecture/ui-library.md

@@ -310,7 +310,7 @@ The dropdown panel exposes its {@link module:ui/dropdown/dropdownpanelview~Dropd
 
 The framework provides a set of helpers to make the dropdown creation process easier, although it is still possible to compose a custom dropdown from scratch using the base classes.
 
-The {@link module:ui/dropdown/utils#createDropdown} helper creates a {@link module:ui/dropdown/dropdownview~DropdownView} with either a {@link module:ui/button/buttonview~ButtonView} or a {@link module:ui/dropdown/button/splitbuttonview~SplitButtonView}.
+The {@link module:ui/dropdown/utils~createDropdown} helper creates a {@link module:ui/dropdown/dropdownview~DropdownView} with either a {@link module:ui/button/buttonview~ButtonView} or a {@link module:ui/dropdown/button/splitbuttonview~SplitButtonView}.
 
 ```js
 import { createDropdown } from '@ckeditor/ckeditor5-ui/src/dropdown/utils';
@@ -376,7 +376,7 @@ dropdownView.buttonView.set( {
 
 #### Adding a list to a dropdown
 
-The {@link module:ui/list/listview~ListView} can be added to a dropdown using the {@link module:ui/dropdown/utils#addListToDropdown} helper.
+The {@link module:ui/list/listview~ListView} can be added to a dropdown using the {@link module:ui/dropdown/utils~addListToDropdown} helper.
 
 ```js
 import Model from '@ckeditor/ckeditor5-ui/src/model';
@@ -411,7 +411,7 @@ addListToDropdown( dropdownView, items );
 
 #### Adding a toolbar to a dropdown
 
-A {@link module:ui/toolbar/toolbarview~ToolbarView} can be added to a dropdown using  the {@link module:ui/dropdown/utils#addToolbarToDropdown} helper.
+A {@link module:ui/toolbar/toolbarview~ToolbarView} can be added to a dropdown using  the {@link module:ui/dropdown/utils~addToolbarToDropdown} helper.
 
 ```js
 import ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';

+ 3 - 1
docs/framework/guides/contributing/development-environment.md

@@ -95,7 +95,9 @@ This task accepts the following arguments:
 
 * `--skip-api` &ndash; Skips building the API documentation (which takes the majority of the total time).
 * `--skip-snippets` &ndash; Skips building live snippets.
-* `--snippets=snippet-name` &ndash; Whitelists snippets to build (accepts glob patterns).
+* `--snippets=snippet-name` &ndash; Snippets to build (accepts glob patterns). If a snippet that you want to build uses another snippet as a source that provides an editor instance, you need to specify both snippets. See examples:
+    - `--snippets=features/*` - all snippets that starts with `features/` in their names will be built,
+    - `--snippets=classic-editor,build-classic-source` - all snippets that contains the specified strings in their names will be built.
 * `--skip-validation` &ndash; Skips the final link validation.
 * `--watch` &ndash; Runs the documentation generator in a watch mode. It covers guides but it does not cover API docs.
 * `--production` &ndash; Minifies the assets and performs other actions which are unnecessary during CKEditor 5 development.

+ 1 - 1
docs/framework/guides/deep-dive/localization.md

@@ -149,7 +149,7 @@ Adding translations to the editor can be done in three ways to satisfy various n
 
 ### Using the `add()` function
 
-The first option for adding translations is via {@link module:utils/translation-service.add the translation-service's `add()` helper}. This utility adds translations to the global `window.CKEDITOR_TRANSLATIONS` object by extending it. Since it needs to be imported, it works only before building the editor.
+The first option for adding translations is via {@link module:utils/translation-service~add the translation-service's `add()` helper}. This utility adds translations to the global `window.CKEDITOR_TRANSLATIONS` object by extending it. Since it needs to be imported, it works only before building the editor.
 
 Starting with the CKEditor 5 v19.0.0 release, the `add()` method now accepts an optional `getPluralForm()` function as the third argument. This function is only needed for defining the plural form if no language file was loaded for a particular language. It also accepts an array of translations for a *message* if the *message* should support singular and plural forms.
 

+ 1 - 1
docs/framework/guides/development-tools.md

@@ -90,7 +90,7 @@ They allow for "stringifying" the {@link framework/guides/architecture/editing-e
 	Both tools are designed for prototyping, debugging, and testing purposes. Do not use them in production-grade code.
 </info-box>
 
-For instance, to take a peek at the editor model, you could use the {@link module:engine/dev-utils/model#static-function-getData `getData()`} helper:
+For instance, to take a peek at the editor model, you could use the {@link module:engine/dev-utils/model~getData `getData()`} helper:
 
 ```js
 import { getData } from '@ckeditor/ckeditor5-engine/src/dev-utils/model';

+ 4 - 12
docs/framework/guides/tutorials/using-react-in-a-widget.md

@@ -365,17 +365,13 @@ export default class ProductPreviewEditing extends Plugin {
 
 				// The inner <div class="product__react-wrapper"></div> element.
 				// This element will host a React <ProductPreview /> component.
-				const reactWrapper = viewWriter.createUIElement( 'div', {
+				const reactWrapper = viewWriter.createRawElement( 'div', {
 					class: 'product__react-wrapper'
-				}, function( domDocument ) {
-					const domElement = this.toDomElement( domDocument );
-
+				}, function( domElement ) {
 					// This the place where React renders the actual product preview hosted
 					// by a UIElement in the view. You are using a function (renderer) passed as
 					// editor.config.products#productRenderer.
 					renderProduct( id, domElement );
-
-					return domElement;
 				} );
 
 				viewWriter.insert( viewWriter.createPositionAt( section, 0 ), reactWrapper );
@@ -1184,17 +1180,13 @@ export default class ProductPreviewEditing extends Plugin {
 
 				// The inner <div class="product__react-wrapper"></div> element.
 				// This element will host a React <ProductPreview /> component.
-				const reactWrapper = viewWriter.createUIElement( 'div', {
+				const reactWrapper = viewWriter.createRawElement( 'div', {
 					class: 'product__react-wrapper'
-				}, function( domDocument ) {
-					const domElement = this.toDomElement( domDocument );
-
+				}, function( domElement ) {
 					// This the place where React renders the actual product preview hosted
 					// by a UIElement in the view. You are using a function (renderer) passed as
 					// editor.config.products#productRenderer.
 					renderProduct( id, domElement );
-
-					return domElement;
 				} );
 
 				viewWriter.insert( viewWriter.createPositionAt( section, 0 ), reactWrapper );

+ 5 - 5
package.json

@@ -77,11 +77,11 @@
   },
   "devDependencies": {
     "@ckeditor/ckeditor5-comments": "^20.0.0",
-    "@ckeditor/ckeditor5-dev-docs": "^21.0.0",
-    "@ckeditor/ckeditor5-dev-env": "^21.0.0",
-    "@ckeditor/ckeditor5-dev-tests": "^21.0.0",
-    "@ckeditor/ckeditor5-dev-utils": "^21.0.0",
-    "@ckeditor/ckeditor5-dev-webpack-plugin": "^21.0.0",
+    "@ckeditor/ckeditor5-dev-docs": "^23.0.0",
+    "@ckeditor/ckeditor5-dev-env": "^23.0.0",
+    "@ckeditor/ckeditor5-dev-tests": "^23.0.0",
+    "@ckeditor/ckeditor5-dev-utils": "^23.0.0",
+    "@ckeditor/ckeditor5-dev-webpack-plugin": "^23.0.0",
     "@ckeditor/ckeditor5-inspector": "^2.1.0",
     "@ckeditor/ckeditor5-react": "^2.1.0",
     "@ckeditor/ckeditor5-real-time-collaboration": "^20.0.0",

+ 21 - 0
packages/ckeditor5-adapter-ckfinder/lang/translations/tk.po

@@ -0,0 +1,21 @@
+# Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
+#
+#                                     !!! IMPORTANT !!!
+#
+#         Before you edit this file, please keep in mind that contributing to the project
+#                translations is possible ONLY via the Transifex online service.
+#
+#         To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
+#
+#                   To learn more, check out the official contributor's guide:
+#     https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
+#
+msgid ""
+msgstr ""
+"Language-Team: Turkmen (https://www.transifex.com/ckeditor/teams/11143/tk/)\n"
+"Language: tk\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgctxt "A generic error message displayed on upload failure. The file name is concatenated to this text."
+msgid "Cannot upload file:"
+msgstr "Faýl ýükläp bolmady:"

+ 41 - 0
packages/ckeditor5-alignment/lang/translations/tk.po

@@ -0,0 +1,41 @@
+# Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
+#
+#                                     !!! IMPORTANT !!!
+#
+#         Before you edit this file, please keep in mind that contributing to the project
+#                translations is possible ONLY via the Transifex online service.
+#
+#         To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
+#
+#                   To learn more, check out the official contributor's guide:
+#     https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
+#
+msgid ""
+msgstr ""
+"Language-Team: Turkmen (https://www.transifex.com/ckeditor/teams/11143/tk/)\n"
+"Language: tk\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgctxt "Toolbar button tooltip for aligning the text to the left."
+msgid "Align left"
+msgstr "Çepe deňleşdiriň"
+
+msgctxt "Toolbar button tooltip for aligning the text to the right."
+msgid "Align right"
+msgstr "Saga deňleşdiriň"
+
+msgctxt "Toolbar button tooltip for aligning the text to center."
+msgid "Align center"
+msgstr "Merkeze deňleşdir"
+
+msgctxt "Toolbar button tooltip for making the text justified."
+msgid "Justify"
+msgstr "Akla"
+
+msgctxt "Dropdown button tooltip for the text alignment feature."
+msgid "Text alignment"
+msgstr "Tekstiň deňleşdirilmegi"
+
+msgctxt "Label used by assistive technologies describing the text alignment feature toolbar."
+msgid "Text alignment toolbar"
+msgstr "Teksti deňleşdirmek gurallar paneli"

+ 41 - 0
packages/ckeditor5-alignment/lang/translations/ug.po

@@ -0,0 +1,41 @@
+# Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
+#
+#                                     !!! IMPORTANT !!!
+#
+#         Before you edit this file, please keep in mind that contributing to the project
+#                translations is possible ONLY via the Transifex online service.
+#
+#         To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
+#
+#                   To learn more, check out the official contributor's guide:
+#     https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
+#
+msgid ""
+msgstr ""
+"Language-Team: Uyghur (https://www.transifex.com/ckeditor/teams/11143/ug/)\n"
+"Language: ug\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgctxt "Toolbar button tooltip for aligning the text to the left."
+msgid "Align left"
+msgstr "سولغا توغرىلاش"
+
+msgctxt "Toolbar button tooltip for aligning the text to the right."
+msgid "Align right"
+msgstr "ئوڭغا توغرىلاش"
+
+msgctxt "Toolbar button tooltip for aligning the text to center."
+msgid "Align center"
+msgstr "ئوتتۇرىغا توغرىلاش"
+
+msgctxt "Toolbar button tooltip for making the text justified."
+msgid "Justify"
+msgstr "تەكشىلەش"
+
+msgctxt "Dropdown button tooltip for the text alignment feature."
+msgid "Text alignment"
+msgstr "تېكىست توغرىلاش"
+
+msgctxt "Label used by assistive technologies describing the text alignment feature toolbar."
+msgid "Text alignment toolbar"
+msgstr "تېكىست توغرىلاش قورالبالدىقى"

+ 2 - 1
packages/ckeditor5-autoformat/package.json

@@ -23,7 +23,8 @@
     "@ckeditor/ckeditor5-heading": "^20.0.0",
     "@ckeditor/ckeditor5-list": "^20.0.0",
     "@ckeditor/ckeditor5-paragraph": "^20.0.0",
-    "@ckeditor/ckeditor5-undo": "^20.0.0"
+    "@ckeditor/ckeditor5-undo": "^20.0.0",
+    "@ckeditor/ckeditor5-utils": "^20.0.0"
   },
   "engines": {
     "node": ">=12.0.0",

+ 5 - 4
packages/ckeditor5-autoformat/src/autoformat.js

@@ -123,16 +123,17 @@ export default class Autoformat extends Plugin {
 		if ( command ) {
 			command.modelElements
 				.filter( name => name.match( /^heading[1-6]$/ ) )
-				.forEach( commandValue => {
-					const level = commandValue[ 7 ];
+				.forEach( modelName => {
+					const level = modelName[ 7 ];
 					const pattern = new RegExp( `^(#{${ level }})\\s$` );
 
 					blockAutoformatEditing( this.editor, this, pattern, () => {
-						if ( !command.isEnabled ) {
+						// Should only be active if command is enabled and heading style associated with pattern is inactive.
+						if ( !command.isEnabled || command.value === modelName ) {
 							return false;
 						}
 
-						this.editor.execute( 'heading', { value: commandValue } );
+						this.editor.execute( 'heading', { value: modelName } );
 					} );
 				} );
 		}

+ 27 - 4
packages/ckeditor5-autoformat/src/blockautoformatediting.js

@@ -2,7 +2,9 @@
  * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
  */
+
 import LiveRange from '@ckeditor/ckeditor5-engine/src/model/liverange';
+import first from '@ckeditor/ckeditor5-utils/src/first';
 
 /**
  * The block autoformatting engine. It allows to format various block patterns. For example,
@@ -43,7 +45,8 @@ import LiveRange from '@ckeditor/ckeditor5-engine/src/model/liverange';
  *
  * @param {module:core/editor/editor~Editor} editor The editor instance.
  * @param {module:autoformat/autoformat~Autoformat} plugin The autoformat plugin instance.
- * @param {RegExp} pattern The regular expression to execute on just inserted text.
+ * @param {RegExp} pattern The regular expression to execute on just inserted text. The regular expression is tested against the text
+ * from the beginning until the caret position.
  * @param {Function|String} callbackOrCommand The callback to execute or the command to run when the text is matched.
  * In case of providing the callback, it receives the following parameter:
  * * {Object} match RegExp.exec() result of matching the pattern to inserted text.
@@ -68,6 +71,12 @@ export default function blockAutoformatEditing( editor, plugin, pattern, callbac
 			return;
 		}
 
+		const range = first( editor.model.document.selection.getRanges() );
+
+		if ( !range.isCollapsed ) {
+			return;
+		}
+
 		if ( batch.type == 'transparent' ) {
 			return;
 		}
@@ -82,12 +91,26 @@ export default function blockAutoformatEditing( editor, plugin, pattern, callbac
 
 		const blockToFormat = entry.position.parent;
 
-		// Block formatting should trigger only if the entire content of a paragraph is a single text node... (see ckeditor5#5671).
-		if ( !blockToFormat.is( 'paragraph' ) || blockToFormat.childCount !== 1 ) {
+		// Block formatting should be disabled in codeBlocks (#5800).
+		if ( blockToFormat.is( 'element', 'codeBlock' ) ) {
+			return;
+		}
+
+		// In case a command is bound, do not re-execute it over an existing block style which would result with a style removal.
+		// Instead just drop processing so that autoformat trigger text is not lost. E.g. writing "# " in a level 1 heading.
+		if ( command && command.value === true ) {
+			return;
+		}
+
+		const firstNode = blockToFormat.getChild( 0 );
+		const firstNodeRange = editor.model.createRangeOn( firstNode );
+
+		// Range is only expected to be within or at the very end of the first text node.
+		if ( !firstNodeRange.containsRange( range ) && !range.end.isEqual( firstNodeRange.end ) ) {
 			return;
 		}
 
-		const match = pattern.exec( blockToFormat.getChild( 0 ).data );
+		const match = pattern.exec( firstNode.data.substr( 0, range.end.offset ) );
 
 		// ...and this text node's data match the pattern.
 		if ( !match ) {

+ 1 - 1
packages/ckeditor5-autoformat/src/inlineautoformatediting.js

@@ -201,7 +201,7 @@ function getTextAfterCode( range, model ) {
 
 	const text = Array.from( range.getItems() ).reduce( ( rangeText, node ) => {
 		// Trim text to a last occurrence of an inline element and update range start.
-		if ( !( node.is( 'text' ) || node.is( 'textProxy' ) ) || node.getAttribute( 'code' ) ) {
+		if ( !( node.is( '$text' ) || node.is( '$textProxy' ) ) || node.getAttribute( 'code' ) ) {
 			start = model.createPositionAfter( node );
 
 			return '';

+ 71 - 8
packages/ckeditor5-autoformat/tests/autoformat.js

@@ -77,6 +77,15 @@ describe( 'Autoformat', () => {
 			expect( getData( model ) ).to.equal( '<listItem listIndent="0" listType="bulleted">[]</listItem>' );
 		} );
 
+		it( 'should replace a non-empty paragraph using the asterisk', () => {
+			setData( model, '<paragraph>*[]sample text</paragraph>' );
+			model.change( writer => {
+				writer.insertText( ' ', doc.selection.getFirstPosition() );
+			} );
+
+			expect( getData( model ) ).to.equal( '<listItem listIndent="0" listType="bulleted">[]sample text</listItem>' );
+		} );
+
 		it( 'should not replace minus character when inside bulleted list item', () => {
 			setData( model, '<listItem listIndent="0" listType="bulleted">-[]</listItem>' );
 			model.change( writer => {
@@ -115,6 +124,15 @@ describe( 'Autoformat', () => {
 			expect( getData( model ) ).to.equal( '<listItem listIndent="0" listType="numbered">[]</listItem>' );
 		} );
 
+		it( 'should replace a non-empty paragraph using the parenthesis format', () => {
+			setData( model, '<paragraph>1)[]sample text</paragraph>' );
+			model.change( writer => {
+				writer.insertText( ' ', doc.selection.getFirstPosition() );
+			} );
+
+			expect( getData( model ) ).to.equal( '<listItem listIndent="0" listType="numbered">[]sample text</listItem>' );
+		} );
+
 		it( 'should not replace digit character when there is no . or ) in the format', () => {
 			setData( model, '<paragraph>1[]</paragraph>' );
 			model.change( writer => {
@@ -150,6 +168,24 @@ describe( 'Autoformat', () => {
 
 			expect( getData( model ) ).to.equal( '<paragraph>Foo<softBreak></softBreak>1. []</paragraph>' );
 		} );
+
+		it( 'should be converted from a header', () => {
+			setData( model, '<heading1>1.[]</heading1>' );
+			model.change( writer => {
+				writer.insertText( ' ', doc.selection.getFirstPosition() );
+			} );
+
+			expect( getData( model ) ).to.equal( '<listItem listIndent="0" listType="numbered">[]</listItem>' );
+		} );
+
+		it( 'should be converted from a bulleted list', () => {
+			setData( model, '<listItem listIndent="0" listType="bulleted">1.[]</listItem>' );
+			model.change( writer => {
+				writer.insertText( ' ', doc.selection.getFirstPosition() );
+			} );
+
+			expect( getData( model ) ).to.equal( '<listItem listIndent="0" listType="numbered">[]</listItem>' );
+		} );
 	} );
 
 	describe( 'Heading', () => {
@@ -243,6 +279,15 @@ describe( 'Autoformat', () => {
 
 			expect( getData( model ) ).to.equal( '<paragraph>Foo<softBreak></softBreak># []</paragraph>' );
 		} );
+
+		it( 'should convert a header that already contains a text', () => {
+			setData( model, '<heading1>###[]foo</heading1>' );
+			model.change( writer => {
+				writer.insertText( ' ', doc.selection.getFirstPosition() );
+			} );
+
+			expect( getData( model ) ).to.equal( '<heading3>[]foo</heading3>' );
+		} );
 	} );
 
 	describe( 'Block quote', () => {
@@ -255,13 +300,22 @@ describe( 'Autoformat', () => {
 			expect( getData( model ) ).to.equal( '<blockQuote><paragraph>[]</paragraph></blockQuote>' );
 		} );
 
-		it( 'should not replace greater-than character when inside heading', () => {
+		it( 'should replace greater-than character in a non-empty paragraph', () => {
+			setData( model, '<paragraph>>[]foo</paragraph>' );
+			model.change( writer => {
+				writer.insertText( ' ', doc.selection.getFirstPosition() );
+			} );
+
+			expect( getData( model ) ).to.equal( '<blockQuote><paragraph>[]foo</paragraph></blockQuote>' );
+		} );
+
+		it( 'should wrap the heading if greater-than character was used', () => {
 			setData( model, '<heading1>>[]</heading1>' );
 			model.change( writer => {
 				writer.insertText( ' ', doc.selection.getFirstPosition() );
 			} );
 
-			expect( getData( model ) ).to.equal( '<heading1>> []</heading1>' );
+			expect( getData( model ) ).to.equal( '<blockQuote><heading1>[]</heading1></blockQuote>' );
 		} );
 
 		it( 'should not replace greater-than character when inside numbered list', () => {
@@ -302,22 +356,31 @@ describe( 'Autoformat', () => {
 			expect( getData( model ) ).to.equal( '<codeBlock language="plaintext">[]</codeBlock>' );
 		} );
 
-		it( 'should not replace triple grave accents when already in a code block', () => {
-			setData( model, '<codeBlock language="plaintext">``[]</codeBlock>' );
+		it( 'should replace triple grave accents in a heading', () => {
+			setData( model, '<heading1>``[]</heading1>' );
 			model.change( writer => {
 				writer.insertText( '`', doc.selection.getFirstPosition() );
 			} );
 
-			expect( getData( model ) ).to.equal( '<codeBlock language="plaintext">```[]</codeBlock>' );
+			expect( getData( model ) ).to.equal( '<codeBlock language="plaintext">[]</codeBlock>' );
 		} );
 
-		it( 'should not replace triple grave accents when inside heading', () => {
-			setData( model, '<heading1>``[]</heading1>' );
+		it( 'should replace triple grave accents in a non-empty paragraph', () => {
+			setData( model, '<paragraph>``[]let foo = 1;</paragraph>' );
 			model.change( writer => {
 				writer.insertText( '`', doc.selection.getFirstPosition() );
 			} );
 
-			expect( getData( model ) ).to.equal( '<heading1>```[]</heading1>' );
+			expect( getData( model ) ).to.equal( '<codeBlock language="plaintext">[]let foo = 1;</codeBlock>' );
+		} );
+
+		it( 'should not replace triple grave accents when already in a code block', () => {
+			setData( model, '<codeBlock language="plaintext">``[]</codeBlock>' );
+			model.change( writer => {
+				writer.insertText( '`', doc.selection.getFirstPosition() );
+			} );
+
+			expect( getData( model ) ).to.equal( '<codeBlock language="plaintext">```[]</codeBlock>' );
 		} );
 
 		it( 'should not replace triple grave accents when inside numbered list', () => {

+ 30 - 4
packages/ckeditor5-autoformat/tests/blockautoformatediting.js

@@ -117,7 +117,7 @@ describe( 'blockAutoformatEditing', () => {
 
 		it( 'should ignore other delta operations', () => {
 			const spy = testUtils.sinon.spy();
-			blockAutoformatEditing( editor, plugin, /^[*]\s/, spy );
+			blockAutoformatEditing( editor, plugin, /^[*]\s$/, spy );
 
 			setData( model, '<paragraph>*[]</paragraph>' );
 			model.change( writer => {
@@ -127,9 +127,23 @@ describe( 'blockAutoformatEditing', () => {
 			sinon.assert.notCalled( spy );
 		} );
 
+		it( 'should ignore a ranged selection', () => {
+			model.schema.extend( '$text', { allowAttributes: 'foo' } );
+
+			const spy = testUtils.sinon.spy();
+			blockAutoformatEditing( editor, plugin, /^[*]\s$/, spy );
+
+			setData( model, '<paragraph>[* ]foo</paragraph>' );
+			model.change( writer => {
+				writer.setAttribute( 'foo', true, model.document.selection.getFirstRange() );
+			} );
+
+			sinon.assert.notCalled( spy );
+		} );
+
 		it( 'should stop if there is no text to run matching on', () => {
 			const spy = testUtils.sinon.spy();
-			blockAutoformatEditing( editor, plugin, /^[*]\s/, spy );
+			blockAutoformatEditing( editor, plugin, /^[*]\s$/, spy );
 
 			setData( model, '<paragraph>[]</paragraph>' );
 			model.change( writer => {
@@ -157,7 +171,7 @@ describe( 'blockAutoformatEditing', () => {
 				} );
 
 			const spy = testUtils.sinon.spy();
-			blockAutoformatEditing( editor, plugin, /^[*]\s/, spy );
+			blockAutoformatEditing( editor, plugin, /^[*]\s$/, spy );
 
 			setData( model, '<paragraph>*<softBreak></softBreak>[]</paragraph>' );
 			model.change( writer => {
@@ -167,6 +181,18 @@ describe( 'blockAutoformatEditing', () => {
 			sinon.assert.notCalled( spy );
 		} );
 
+		it( 'should not call callback when typing in the middle of block text', () => {
+			const spy = testUtils.sinon.spy();
+			blockAutoformatEditing( editor, plugin, /^[*]\s$/, spy );
+
+			setData( model, '<paragraph>* foo[]bar</paragraph>' );
+			model.change( writer => {
+				writer.insertText( ' ', doc.selection.getFirstPosition() );
+			} );
+
+			sinon.assert.notCalled( spy );
+		} );
+
 		it( 'should not call callback when after inline element (typing after softBreak in a "matching" paragraph)', () => {
 			// Configure the schema.
 			model.schema.register( 'softBreak', {
@@ -185,7 +211,7 @@ describe( 'blockAutoformatEditing', () => {
 				} );
 
 			const spy = testUtils.sinon.spy();
-			blockAutoformatEditing( editor, plugin, /^[*]\s/, spy );
+			blockAutoformatEditing( editor, plugin, /^[*]\s$/, spy );
 
 			setData( model, '<paragraph>* <softBreak></softBreak>[]</paragraph>' );
 

+ 5 - 7
packages/ckeditor5-autoformat/tests/manual/autoformat.md

@@ -1,14 +1,14 @@
 ## Autoformat
 
-1. Type `#` and press the space in an empty paragraph to replace it with a heading.
+Note: autoformat should not work in a code blocks.
 
-1. Type `*` or `-` and the press space in an empty paragraph to replace it with a list item.
+1. Type `#` and press the space at the beginning of a block to replace it with a heading.
 
-1. Type `>` and press the space in an empty paragraph to replace it with a block quote.
+1. Type `*` or `-` and the press space at the beginning of a block to replace it with a list item.
 
-1. Type a number from the range **1-3** followed by a `.` and press space to replace an empty paragraph with a numbered list item.
+1. Type `>` and press the space at the beginning of a block to replace it with a block quote.
 
-1. Type a number from the range **1-3** followed by a `)` and press space to replace an empty paragraph with a numbered list item.
+1. Type `1` followed by a `.` or `)` and press space (at the beginning of a block) to replace it with a numbered list item.
 
 1. Type `*foobar*`/`_foobar_` to italicize `foobar`. `*`/`_` should be removed.
 
@@ -22,6 +22,4 @@
 
 1. For every autoformat pattern: Undo until you'll see just the pattern (e.g. `- `). Typing should be then possible without triggering the autoformatting again.
 
-1. Typing a different pattern in an already converted block **must not** trigger the autoformatting. For example, typing `- ` in a heading should not convert a heading to a list.
-
 1. Type inline formatting (bold, italic, code, strikethrough) after a soft break (<kbd>Shift</kbd>+<kbd>Enter</kbd>).

+ 21 - 0
packages/ckeditor5-autosave/lang/translations/tk.po

@@ -0,0 +1,21 @@
+# Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
+#
+#                                     !!! IMPORTANT !!!
+#
+#         Before you edit this file, please keep in mind that contributing to the project
+#                translations is possible ONLY via the Transifex online service.
+#
+#         To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
+#
+#                   To learn more, check out the official contributor's guide:
+#     https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
+#
+msgid ""
+msgstr ""
+"Language-Team: Turkmen (https://www.transifex.com/ckeditor/teams/11143/tk/)\n"
+"Language: tk\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgctxt "A message that the data is being saved."
+msgid "Saving changes"
+msgstr "Üýtgeşmeleri saklaň"

+ 21 - 0
packages/ckeditor5-autosave/lang/translations/ug.po

@@ -0,0 +1,21 @@
+# Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
+#
+#                                     !!! IMPORTANT !!!
+#
+#         Before you edit this file, please keep in mind that contributing to the project
+#                translations is possible ONLY via the Transifex online service.
+#
+#         To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
+#
+#                   To learn more, check out the official contributor's guide:
+#     https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
+#
+msgid ""
+msgstr ""
+"Language-Team: Uyghur (https://www.transifex.com/ckeditor/teams/11143/ug/)\n"
+"Language: ug\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgctxt "A message that the data is being saved."
+msgid "Saving changes"
+msgstr "ئۆزگەرتىشلەرنى ساقلاش"

+ 1 - 1
packages/ckeditor5-autosave/src/autosave.js

@@ -139,7 +139,7 @@ export default class Autosave extends Plugin {
 		 * Editor's pending actions manager.
 		 *
 		 * @private
-		 * @member {@module:core/pendingactions~PendingActions} #_pendingActions
+		 * @member {module:core/pendingactions~PendingActions} #_pendingActions
 		 */
 	}
 

TEMPAT SAMPAH
packages/ckeditor5-basic-styles/docs/assets/img/typing-after-code.gif


TEMPAT SAMPAH
packages/ckeditor5-basic-styles/docs/assets/img/typing-inside-code.gif


+ 12 - 0
packages/ckeditor5-basic-styles/docs/features/basic-styles.md

@@ -47,6 +47,18 @@ By default, each feature can upcast more than one type of the content. Here's th
 | {@link module:basic-styles/subscript~Subscript} | `<sub>`, `<* style="vertical-align: sub">` |
 | {@link module:basic-styles/superscript~Superscript} | `<sup>`, `<* style="vertical-align: super">` |
 
+## Typing around inline code
+
+CKEditor 5 allows for typing both at inner and outer boundaries of code to make the editing easier for the users.
+
+**To type inside a code element**, move the caret to its (start or end) boundary. As long as the code remains highlighted (by default: less transparent gray), typing and applying formatting will be done within its boundaries:
+
+{@img assets/img/typing-inside-code.gif 770 The animation showing typing inside the code element in CKEditor 5 rich text editor.}
+
+**To type before or after a code element**, move the caret to its boundary, then press the Arrow key (<kbd>→</kbd> or <kbd>←</kbd>) once. The code is no longer highlighted and whatever text you type or formatting you apply will not be enclosed by the code element:
+
+{@img assets/img/typing-after-code.gif 770 The animation showing typing after the code element in CKEditor 5 rich text editor.}
+
 ## Installation
 
 To add the basic styles features to your editor install the [`@ckeditor/ckeditor5-basic-styles`](https://www.npmjs.com/package/@ckeditor/ckeditor5-basic-styles) package:

+ 45 - 0
packages/ckeditor5-basic-styles/lang/translations/tk.po

@@ -0,0 +1,45 @@
+# Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
+#
+#                                     !!! IMPORTANT !!!
+#
+#         Before you edit this file, please keep in mind that contributing to the project
+#                translations is possible ONLY via the Transifex online service.
+#
+#         To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
+#
+#                   To learn more, check out the official contributor's guide:
+#     https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
+#
+msgid ""
+msgstr ""
+"Language-Team: Turkmen (https://www.transifex.com/ckeditor/teams/11143/tk/)\n"
+"Language: tk\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgctxt "Toolbar button tooltip for the Bold feature."
+msgid "Bold"
+msgstr "Galyň"
+
+msgctxt "Toolbar button tooltip for the Italic feature."
+msgid "Italic"
+msgstr "Italik"
+
+msgctxt "Toolbar button tooltip for the Underline feature."
+msgid "Underline"
+msgstr "Aşagy çyzykly"
+
+msgctxt "Toolbar button tooltip for the Code feature."
+msgid "Code"
+msgstr "Kod"
+
+msgctxt "Toolbar button tooltip for the Strikethrough feature."
+msgid "Strikethrough"
+msgstr "Üsti çyzykly"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr "Aşaky ýazgy"
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr "Üst ýazgy"

+ 4 - 4
packages/ckeditor5-basic-styles/lang/translations/ug.po

@@ -30,16 +30,16 @@ msgstr "ئاستى سىزىق"
 
 msgctxt "Toolbar button tooltip for the Code feature."
 msgid "Code"
-msgstr "كودى"
+msgstr "كود"
 
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
-msgstr ""
+msgstr "ئۆچۈرۈش سىزىقى"
 
 msgctxt "Toolbar button tooltip for the Subscript feature."
 msgid "Subscript"
-msgstr ""
+msgstr "ئاستبەلگە"
 
 msgctxt "Toolbar button tooltip for the Superscript feature."
 msgid "Superscript"
-msgstr ""
+msgstr "ئۈستبەلگە"

+ 1 - 0
packages/ckeditor5-basic-styles/package.json

@@ -11,6 +11,7 @@
   ],
   "dependencies": {
     "@ckeditor/ckeditor5-core": "^20.0.0",
+    "@ckeditor/ckeditor5-typing": "^20.0.0",
     "@ckeditor/ckeditor5-ui": "^20.0.0"
   },
   "devDependencies": {

+ 16 - 0
packages/ckeditor5-basic-styles/src/code/codeediting.js

@@ -9,8 +9,11 @@
 
 import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
 import AttributeCommand from '../attributecommand';
+import TwoStepCaretMovement from '@ckeditor/ckeditor5-typing/src/twostepcaretmovement';
+import setupHighlight from '@ckeditor/ckeditor5-typing/src/utils/inlinehighlight';
 
 const CODE = 'code';
+const HIGHLIGHT_CLASS = 'ck-code_selected';
 
 /**
  * The code editing feature.
@@ -28,6 +31,13 @@ export default class CodeEditing extends Plugin {
 		return 'CodeEditing';
 	}
 
+	/**
+	 * @inheritDoc
+	 */
+	static get requires() {
+		return [ TwoStepCaretMovement ];
+	}
+
 	/**
 	 * @inheritDoc
 	 */
@@ -53,5 +63,11 @@ export default class CodeEditing extends Plugin {
 
 		// Create code command.
 		editor.commands.add( CODE, new AttributeCommand( editor, CODE ) );
+
+		// Enable two-step caret movement for `code` attribute.
+		editor.plugins.get( TwoStepCaretMovement ).registerAttribute( CODE );
+
+		// Setup highlight over selected element.
+		setupHighlight( editor, CODE, 'code', HIGHLIGHT_CLASS );
 	}
 }

+ 35 - 0
packages/ckeditor5-basic-styles/tests/code/codeediting.js

@@ -11,6 +11,9 @@ import AttributeCommand from '../../src/attributecommand';
 
 import { getData as getModelData, setData as setModelData } from '@ckeditor/ckeditor5-engine/src/dev-utils/model';
 import { getData as getViewData } from '@ckeditor/ckeditor5-engine/src/dev-utils/view';
+import { keyCodes } from '@ckeditor/ckeditor5-utils/src/keyboard';
+
+/* global document */
 
 describe( 'CodeEditing', () => {
 	let editor, model;
@@ -100,4 +103,36 @@ describe( 'CodeEditing', () => {
 			expect( getViewData( editor.editing.view, { withoutSelection: true } ) ).to.equal( '<p><code>foo</code>bar</p>' );
 		} );
 	} );
+
+	it( 'should add `ck-code_selected` class when caret enters the element', () => {
+		// Put selection before the link element.
+		setModelData( editor.model, '<paragraph>foo[]<$text code="true">ba</$text>r</paragraph>' );
+
+		// So let's simulate the `keydown` event.
+		editor.editing.view.document.fire( 'keydown', {
+			keyCode: keyCodes.arrowright,
+			preventDefault: () => {},
+			domTarget: document.body
+		} );
+
+		expect( getViewData( editor.editing.view ) ).to.equal(
+			'<p>foo<code class="ck-code_selected">{}ba</code>r</p>'
+		);
+	} );
+
+	it( 'should remove `ck-code_selected` class when caret leaves the element', () => {
+		// Put selection before the link element.
+		setModelData( editor.model, '<paragraph>foo<$text code="true">ba[]</$text>r</paragraph>' );
+
+		// So let's simulate the `keydown` event.
+		editor.editing.view.document.fire( 'keydown', {
+			keyCode: keyCodes.arrowright,
+			preventDefault: () => {},
+			domTarget: document.body
+		} );
+
+		expect( getViewData( editor.editing.view ) ).to.equal(
+			'<p>foo<code>ba</code>{}r</p>'
+		);
+	} );
 } );

+ 4 - 0
packages/ckeditor5-basic-styles/theme/code.css

@@ -8,3 +8,7 @@
 	padding: .15em;
 	border-radius: 2px;
 }
+
+.ck .ck-code_selected {
+	background-color: hsla(0, 0%, 78%, 0.5);
+}

+ 21 - 0
packages/ckeditor5-block-quote/lang/translations/tk.po

@@ -0,0 +1,21 @@
+# Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
+#
+#                                     !!! IMPORTANT !!!
+#
+#         Before you edit this file, please keep in mind that contributing to the project
+#                translations is possible ONLY via the Transifex online service.
+#
+#         To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
+#
+#                   To learn more, check out the official contributor's guide:
+#     https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
+#
+msgid ""
+msgstr ""
+"Language-Team: Turkmen (https://www.transifex.com/ckeditor/teams/11143/tk/)\n"
+"Language: tk\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgctxt "Toolbar button tooltip for the Block quote feature."
+msgid "Block quote"
+msgstr "Sitata blokirläň"

+ 1 - 1
packages/ckeditor5-block-quote/lang/translations/ug.po

@@ -18,4 +18,4 @@ msgstr ""
 
 msgctxt "Toolbar button tooltip for the Block quote feature."
 msgid "Block quote"
-msgstr "قىسمەن قوللىنىش"
+msgstr "نەقىل"

+ 7 - 4
packages/ckeditor5-block-quote/src/blockquoteediting.js

@@ -62,12 +62,12 @@ export default class BlockQuoteEditing extends Plugin {
 						continue;
 					}
 
-					if ( element.is( 'blockQuote' ) && element.isEmpty ) {
+					if ( element.is( 'element', 'blockQuote' ) && element.isEmpty ) {
 						// Added an empty blockQuote - remove it.
 						writer.remove( element );
 
 						return true;
-					} else if ( element.is( 'blockQuote' ) && !schema.checkChild( entry.position, element ) ) {
+					} else if ( element.is( 'element', 'blockQuote' ) && !schema.checkChild( entry.position, element ) ) {
 						// Added a blockQuote in incorrect place - most likely inside another blockQuote. Unwrap it
 						// so the content inside is not lost.
 						writer.unwrap( element );
@@ -78,7 +78,10 @@ export default class BlockQuoteEditing extends Plugin {
 						const range = writer.createRangeIn( element );
 
 						for ( const child of range.getItems() ) {
-							if ( child.is( 'blockQuote' ) && !schema.checkChild( writer.createPositionBefore( child ), child ) ) {
+							if (
+								child.is( 'element', 'blockQuote' ) &&
+								!schema.checkChild( writer.createPositionBefore( child ), child )
+							) {
 								writer.unwrap( child );
 
 								return true;
@@ -88,7 +91,7 @@ export default class BlockQuoteEditing extends Plugin {
 				} else if ( entry.type == 'remove' ) {
 					const parent = entry.position.parent;
 
-					if ( parent.is( 'blockQuote' ) && parent.isEmpty ) {
+					if ( parent.is( 'element', 'blockQuote' ) && parent.isEmpty ) {
 						// Something got removed and now blockQuote is empty. Remove the blockQuote as well.
 						writer.remove( parent );
 

File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/ckeditor.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/ckeditor.js.map


+ 1 - 1
packages/ckeditor5-build-balloon-block/build/translations/af.js

@@ -1 +1 @@
-(function(d){	const l = d['af'] = d['af'] || {};	l.dictionary=Object.assign(		l.dictionary||{},		{"Block quote":"Blok-aanhaling",Bold:"Vetgedruk",Cancel:"Kanselleer","Cannot upload file:":"Lêer nie opgelaai nie:","Could not insert image at the current position.":"Beeld kan nie in die posisie toegevoeg word nie.","Could not obtain resized image URL.":"","Insert image or file":"Voeg beeld of lêer in","Inserting image failed":"",Italic:"Skuinsgedruk",Save:"Berg","Selecting resized image failed":""}	);l.getPluralForm=function(n){return (n != 1);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
+!function(e){const i=e.af=e.af||{};i.dictionary=Object.assign(i.dictionary||{},{"Block quote":"Blok-aanhaling",Bold:"Vetgedruk",Cancel:"Kanselleer","Cannot upload file:":"Lêer nie opgelaai nie:","Could not insert image at the current position.":"Beeld kan nie in die posisie toegevoeg word nie.","Could not obtain resized image URL.":"","Insert image or file":"Voeg beeld of lêer in","Inserting image failed":"",Italic:"Skuinsgedruk",Save:"Berg","Selecting resized image failed":""}),i.getPluralForm=function(e){return 1!=e}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));

File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/ar.js


+ 1 - 1
packages/ckeditor5-build-balloon-block/build/translations/ast.js

@@ -1 +1 @@
-(function(d){	const l = d['ast'] = d['ast'] || {};	l.dictionary=Object.assign(		l.dictionary||{},		{"%0 of %1":"",Bold:"Negrina","Bulleted List":"Llista con viñetes",Cancel:"Encaboxar","Centered image":"","Change image text alternative":"",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor toolbar":"","Enter image caption":"","Full size image":"Imaxen a tamañu completu","Image toolbar":"","image widget":"complementu d'imaxen","Insert image":"",Italic:"Cursiva","Left aligned image":"",Link:"Enllazar","Link URL":"URL del enllaz",Next:"","Numbered List":"Llista numberada","Open in a new tab":"","Open link in new tab":"",Previous:"",Redo:"Refacer","Rich Text Editor, %0":"Editor de testu arriquecíu, %0","Right aligned image":"",Save:"Guardar","Show more items":"","Side image":"Imaxen llateral","Text alternative":"","This link has no URL":"",Undo:"Desfacer",Unlink:"Desenllazar","Upload failed":""}	);l.getPluralForm=function(n){return (n != 1);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
+!function(e){const a=e.ast=e.ast||{};a.dictionary=Object.assign(a.dictionary||{},{"%0 of %1":"",Bold:"Negrina","Bulleted List":"Llista con viñetes",Cancel:"Encaboxar","Centered image":"","Change image text alternative":"",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor toolbar":"","Enter image caption":"","Full size image":"Imaxen a tamañu completu","Image toolbar":"","image widget":"complementu d'imaxen","Insert image":"",Italic:"Cursiva","Left aligned image":"",Link:"Enllazar","Link URL":"URL del enllaz",Next:"","Numbered List":"Llista numberada","Open in a new tab":"","Open link in new tab":"",Previous:"",Redo:"Refacer","Rich Text Editor, %0":"Editor de testu arriquecíu, %0","Right aligned image":"",Save:"Guardar","Show more items":"","Side image":"Imaxen llateral","Text alternative":"","This link has no URL":"",Undo:"Desfacer",Unlink:"Desenllazar","Upload failed":""}),a.getPluralForm=function(e){return 1!=e}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));

File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/az.js


File diff ditekan karena terlalu besar
+ 0 - 1
packages/ckeditor5-build-balloon-block/build/translations/bg.js


+ 1 - 1
packages/ckeditor5-build-balloon-block/build/translations/ca.js

@@ -1 +1 @@
-(function(d){	const l = d['ca'] = d['ca'] || {};	l.dictionary=Object.assign(		l.dictionary||{},		{"Block quote":"Cita de bloc",Bold:"Negreta",Cancel:"Cancel·lar","Cannot upload file:":"No es pot pujar l'arxiu:","Choose heading":"Escull capçalera",Heading:"Capçalera","Heading 1":"Capçalera 1","Heading 2":"Capçalera 2","Heading 3":"Capçalera 3","Heading 4":"","Heading 5":"","Heading 6":"",Italic:"Cursiva",Paragraph:"Pàrraf",Save:"Desar"}	);l.getPluralForm=function(n){return (n != 1);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
+!function(a){const e=a.ca=a.ca||{};e.dictionary=Object.assign(e.dictionary||{},{"Block quote":"Cita de bloc",Bold:"Negreta",Cancel:"Cancel·lar","Cannot upload file:":"No es pot pujar l'arxiu:","Choose heading":"Escull capçalera",Heading:"Capçalera","Heading 1":"Capçalera 1","Heading 2":"Capçalera 2","Heading 3":"Capçalera 3","Heading 4":"","Heading 5":"","Heading 6":"",Italic:"Cursiva",Paragraph:"Pàrraf",Save:"Desar"}),e.getPluralForm=function(a){return 1!=a}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));

File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/cs.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/da.js


+ 1 - 1
packages/ckeditor5-build-balloon-block/build/translations/de-ch.js

@@ -1 +1 @@
-(function(d){	const l = d['de-ch'] = d['de-ch'] || {};	l.dictionary=Object.assign(		l.dictionary||{},		{"%0 of %1":"","Block quote":"Blockzitat","Cannot upload file:":"Datei kann nicht hochgeladen werden:",Column:"Spalte","Delete column":"Spalte löschen","Delete row":"Zeile löschen","Dropdown toolbar":"","Edit block":"","Editor toolbar":"","Header column":"Kopfspalte","Header row":"Kopfspalte","Insert column left":"","Insert column right":"","Insert row above":"Zeile oben einfügen","Insert row below":"Zeile unten einfügen","Insert table":"Tabelle einfügen","Merge cell down":"Zelle unten verbinden","Merge cell left":"Zelle links verbinden","Merge cell right":"Zele rechts verbinden","Merge cell up":"Zelle oben verbinden","Merge cells":"Zellen verbinden",Next:"",Previous:"",Redo:"Wiederherstellen","Rich Text Editor, %0":"Rich-Text-Editor, %0",Row:"Zeile","Select column":"","Select row":"","Show more items":"","Split cell horizontally":"Zelle horizontal teilen","Split cell vertically":"Zelle vertikal teilen","Table toolbar":"",Undo:"Rückgängig","Upload in progress":"Upload läuft"}	);l.getPluralForm=function(n){return (n != 1);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
+!function(e){const l=e["de-ch"]=e["de-ch"]||{};l.dictionary=Object.assign(l.dictionary||{},{"%0 of %1":"","Block quote":"Blockzitat","Cannot upload file:":"Datei kann nicht hochgeladen werden:",Column:"Spalte","Delete column":"Spalte löschen","Delete row":"Zeile löschen","Dropdown toolbar":"","Edit block":"","Editor toolbar":"","Header column":"Kopfspalte","Header row":"Kopfspalte","Insert column left":"","Insert column right":"","Insert row above":"Zeile oben einfügen","Insert row below":"Zeile unten einfügen","Insert table":"Tabelle einfügen","Merge cell down":"Zelle unten verbinden","Merge cell left":"Zelle links verbinden","Merge cell right":"Zele rechts verbinden","Merge cell up":"Zelle oben verbinden","Merge cells":"Zellen verbinden",Next:"",Previous:"",Redo:"Wiederherstellen","Rich Text Editor, %0":"Rich-Text-Editor, %0",Row:"Zeile","Select column":"","Select row":"","Show more items":"","Split cell horizontally":"Zelle horizontal teilen","Split cell vertically":"Zelle vertikal teilen","Table toolbar":"",Undo:"Rückgängig","Upload in progress":"Upload läuft"}),l.getPluralForm=function(e){return 1!=e}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));

File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/de.js


+ 1 - 1
packages/ckeditor5-build-balloon-block/build/translations/el.js

@@ -1 +1 @@
-(function(d){	const l = d['el'] = d['el'] || {};	l.dictionary=Object.assign(		l.dictionary||{},		{"%0 of %1":"","Block quote":"Περιοχή παράθεσης",Bold:"Έντονη","Bulleted List":"Λίστα κουκκίδων",Cancel:"Ακύρωση","Centered image":"","Change image text alternative":"Αλλαγή εναλλακτικού κείμενου","Choose heading":"Επιλέξτε κεφαλίδα",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor toolbar":"","Enter image caption":"Λεζάντα","Full size image":"Εικόνα πλήρης μεγέθους",Heading:"Κεφαλίδα","Heading 1":"Κεφαλίδα 1","Heading 2":"Κεφαλίδα 2","Heading 3":"Κεφαλίδα 3","Heading 4":"","Heading 5":"","Heading 6":"","Image toolbar":"","image widget":"","Insert image":"Εισαγωγή εικόνας",Italic:"Πλάγια","Left aligned image":"",Link:"Σύνδεσμος","Link URL":"Διεύθυνση συνδέσμου",Next:"","Numbered List":"Αριθμημένη λίστα","Open in a new tab":"","Open link in new tab":"",Paragraph:"Παράγραφος",Previous:"",Redo:"Επανάληψη","Rich Text Editor, %0":"Επεξεργαστής Πλούσιου Κειμένου, 0%","Right aligned image":"",Save:"Αποθήκευση","Show more items":"","Side image":"","Text alternative":"Εναλλακτικό κείμενο","This link has no URL":"",Undo:"Αναίρεση",Unlink:"Αφαίρεση συνδέσμου","Upload failed":""}	);l.getPluralForm=function(n){return (n != 1);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
+!function(e){const i=e.el=e.el||{};i.dictionary=Object.assign(i.dictionary||{},{"%0 of %1":"","Block quote":"Περιοχή παράθεσης",Bold:"Έντονη","Bulleted List":"Λίστα κουκκίδων",Cancel:"Ακύρωση","Centered image":"","Change image text alternative":"Αλλαγή εναλλακτικού κείμενου","Choose heading":"Επιλέξτε κεφαλίδα",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor toolbar":"","Enter image caption":"Λεζάντα","Full size image":"Εικόνα πλήρης μεγέθους",Heading:"Κεφαλίδα","Heading 1":"Κεφαλίδα 1","Heading 2":"Κεφαλίδα 2","Heading 3":"Κεφαλίδα 3","Heading 4":"","Heading 5":"","Heading 6":"","Image toolbar":"","image widget":"","Insert image":"Εισαγωγή εικόνας",Italic:"Πλάγια","Left aligned image":"",Link:"Σύνδεσμος","Link URL":"Διεύθυνση συνδέσμου",Next:"","Numbered List":"Αριθμημένη λίστα","Open in a new tab":"","Open link in new tab":"",Paragraph:"Παράγραφος",Previous:"",Redo:"Επανάληψη","Rich Text Editor, %0":"Επεξεργαστής Πλούσιου Κειμένου, 0%","Right aligned image":"",Save:"Αποθήκευση","Show more items":"","Side image":"","Text alternative":"Εναλλακτικό κείμενο","This link has no URL":"",Undo:"Αναίρεση",Unlink:"Αφαίρεση συνδέσμου","Upload failed":""}),i.getPluralForm=function(e){return 1!=e}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));

File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/en-au.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/en-gb.js


+ 1 - 1
packages/ckeditor5-build-balloon-block/build/translations/eo.js

@@ -1 +1 @@
-(function(d){	const l = d['eo'] = d['eo'] || {};	l.dictionary=Object.assign(		l.dictionary||{},		{"%0 of %1":"",Bold:"grasa","Bulleted List":"Bula Listo",Cancel:"Nuligi","Centered image":"","Change image text alternative":"Ŝanĝu la alternativan tekston de la bildo","Choose heading":"Elektu ĉapon",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor toolbar":"","Enter image caption":"Skribu klarigon pri la bildo","Full size image":"Bildo kun reala dimensio",Heading:"Ĉapo","Heading 1":"Ĉapo 1","Heading 2":"Ĉapo 2","Heading 3":"Ĉapo 3","Heading 4":"","Heading 5":"","Heading 6":"","Image toolbar":"","image widget":"bilda fenestraĵo","Insert image":"Enmetu bildon",Italic:"kursiva","Left aligned image":"",Link:"Ligilo","Link URL":"URL de la ligilo",Next:"","Numbered List":"Numerita Listo","Open in a new tab":"","Open link in new tab":"",Paragraph:"Paragrafo",Previous:"",Redo:"Refari","Rich Text Editor, %0":"Redaktilo de Riĉa Teksto, %0","Right aligned image":"",Save:"Konservi","Show more items":"","Side image":"Flanka biildo","Text alternative":"Alternativa teksto","This link has no URL":"",Undo:"Malfari",Unlink:"Malligi","Upload failed":""}	);l.getPluralForm=function(n){return (n != 1);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
+!function(i){const a=i.eo=i.eo||{};a.dictionary=Object.assign(a.dictionary||{},{"%0 of %1":"",Bold:"grasa","Bulleted List":"Bula Listo",Cancel:"Nuligi","Centered image":"","Change image text alternative":"Ŝanĝu la alternativan tekston de la bildo","Choose heading":"Elektu ĉapon",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor toolbar":"","Enter image caption":"Skribu klarigon pri la bildo","Full size image":"Bildo kun reala dimensio",Heading:"Ĉapo","Heading 1":"Ĉapo 1","Heading 2":"Ĉapo 2","Heading 3":"Ĉapo 3","Heading 4":"","Heading 5":"","Heading 6":"","Image toolbar":"","image widget":"bilda fenestraĵo","Insert image":"Enmetu bildon",Italic:"kursiva","Left aligned image":"",Link:"Ligilo","Link URL":"URL de la ligilo",Next:"","Numbered List":"Numerita Listo","Open in a new tab":"","Open link in new tab":"",Paragraph:"Paragrafo",Previous:"",Redo:"Refari","Rich Text Editor, %0":"Redaktilo de Riĉa Teksto, %0","Right aligned image":"",Save:"Konservi","Show more items":"","Side image":"Flanka biildo","Text alternative":"Alternativa teksto","This link has no URL":"",Undo:"Malfari",Unlink:"Malligi","Upload failed":""}),a.getPluralForm=function(i){return 1!=i}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));

File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/es.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/et.js


+ 1 - 1
packages/ckeditor5-build-balloon-block/build/translations/eu.js

@@ -1 +1 @@
-(function(d){	const l = d['eu'] = d['eu'] || {};	l.dictionary=Object.assign(		l.dictionary||{},		{"%0 of %1":"","Block quote":"Aipua",Bold:"Lodia","Bulleted List":"Buletdun zerrenda",Cancel:"Utzi","Cannot upload file:":"Ezin da fitxategia kargatu:","Centered image":"Zentratutako irudia","Change image text alternative":"Aldatu irudiaren ordezko testua","Choose heading":"Aukeratu izenburua",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor toolbar":"","Enter image caption":"Sartu irudiaren epigrafea","Full size image":"Tamaina osoko irudia",Heading:"Izenburua","Heading 1":"Izenburua 1","Heading 2":"Izenburua 2","Heading 3":"Izenburua 3","Heading 4":"","Heading 5":"","Heading 6":"","Image toolbar":"","image widget":"irudi widgeta","Insert image":"Txertatu irudia",Italic:"Etzana","Left aligned image":"Ezkerrean lerrokatutako irudia",Link:"Esteka","Link URL":"Estekaren URLa",Next:"","Numbered List":"Zenbakidun zerrenda","Open in a new tab":"","Open link in new tab":"",Paragraph:"Paragrafoa",Previous:"",Redo:"Berregin","Rich Text Editor, %0":"Testu aberastuaren editorea, %0","Right aligned image":"Eskuinean lerrokatutako irudia",Save:"Gorde","Show more items":"","Side image":"Alboko irudia","Text alternative":"Ordezko testua","This link has no URL":"",Undo:"Desegin",Unlink:"Desestekatu","Upload failed":"Kargatzeak huts egin du"}	);l.getPluralForm=function(n){return (n != 1);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
+!function(a){const e=a.eu=a.eu||{};e.dictionary=Object.assign(e.dictionary||{},{"%0 of %1":"","Block quote":"Aipua",Bold:"Lodia","Bulleted List":"Buletdun zerrenda",Cancel:"Utzi","Cannot upload file:":"Ezin da fitxategia kargatu:","Centered image":"Zentratutako irudia","Change image text alternative":"Aldatu irudiaren ordezko testua","Choose heading":"Aukeratu izenburua",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor toolbar":"","Enter image caption":"Sartu irudiaren epigrafea","Full size image":"Tamaina osoko irudia",Heading:"Izenburua","Heading 1":"Izenburua 1","Heading 2":"Izenburua 2","Heading 3":"Izenburua 3","Heading 4":"","Heading 5":"","Heading 6":"","Image toolbar":"","image widget":"irudi widgeta","Insert image":"Txertatu irudia",Italic:"Etzana","Left aligned image":"Ezkerrean lerrokatutako irudia",Link:"Esteka","Link URL":"Estekaren URLa",Next:"","Numbered List":"Zenbakidun zerrenda","Open in a new tab":"","Open link in new tab":"",Paragraph:"Paragrafoa",Previous:"",Redo:"Berregin","Rich Text Editor, %0":"Testu aberastuaren editorea, %0","Right aligned image":"Eskuinean lerrokatutako irudia",Save:"Gorde","Show more items":"","Side image":"Alboko irudia","Text alternative":"Ordezko testua","This link has no URL":"",Undo:"Desegin",Unlink:"Desestekatu","Upload failed":"Kargatzeak huts egin du"}),e.getPluralForm=function(a){return 1!=a}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));

File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/fa.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/fi.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/fr.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/gl.js


+ 1 - 1
packages/ckeditor5-build-balloon-block/build/translations/gu.js

@@ -1 +1 @@
-(function(d){	const l = d['gu'] = d['gu'] || {};	l.dictionary=Object.assign(		l.dictionary||{},		{"Block quote":" વિચાર ટાંકો",Bold:"ઘાટુ - બોલ્ડ્","Cannot upload file:":"ફાઇલ અપલોડ ન થઇ શકી",Italic:"ત્રાંસુ - ઇટલિક્"}	);l.getPluralForm=function(n){return (n != 1);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
+!function(n){const o=n.gu=n.gu||{};o.dictionary=Object.assign(o.dictionary||{},{"Block quote":" વિચાર ટાંકો",Bold:"ઘાટુ - બોલ્ડ્","Cannot upload file:":"ફાઇલ અપલોડ ન થઇ શકી",Italic:"ત્રાંસુ - ઇટલિક્"}),o.getPluralForm=function(n){return 1!=n}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));

File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/he.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/hr.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/hu.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/id.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/it.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/ja.js


+ 1 - 1
packages/ckeditor5-build-balloon-block/build/translations/km.js

@@ -1 +1 @@
-(function(d){	const l = d['km'] = d['km'] || {};	l.dictionary=Object.assign(		l.dictionary||{},		{"%0 of %1":"","Block quote":"ប្លុក​ពាក្យ​សម្រង់",Bold:"ដិត","Bulleted List":"បញ្ជី​ជា​ចំណុច",Cancel:"បោះបង់","Cannot upload file:":"មិនអាច​អាប់ឡូត​ឯកសារ៖","Centered image":"","Change image text alternative":"","Choose heading":"ជ្រើសរើស​ក្បាលអត្ថបទ",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor toolbar":"","Enter image caption":"បញ្ចូល​ពាក្យ​ពណ៌នា​រូបភាព","Full size image":"រូបភាព​ពេញ​ទំហំ",Heading:"ក្បាលអត្ថបទ","Heading 1":"ក្បាលអត្ថបទ 1","Heading 2":"ក្បាលអត្ថបទ 2","Heading 3":"ក្បាលអត្ថបទ 3","Heading 4":"","Heading 5":"","Heading 6":"","Image toolbar":"","image widget":"វិដជិត​រូបភាព","Insert image":"បញ្ចូល​រូបភាព",Italic:"ទ្រេត","Left aligned image":"",Link:"តំណ","Link URL":"URL តំណ",Next:"","Numbered List":"បញ្ជី​ជា​លេខ","Open in a new tab":"","Open link in new tab":"",Paragraph:"កថាខណ្ឌ",Previous:"",Redo:"ធ្វើ​វិញ","Rich Text Editor, %0":"កម្មវិធី​កែសម្រួល​អត្ថបទ​សម្បូរបែប, %0","Right aligned image":"",Save:"រក្សាទុ","Show more items":"","Side image":"រូបភាព​នៅ​ខាង","Text alternative":"","This link has no URL":"",Undo:"លែង​ធ្វើ​វិញ",Unlink:"ផ្ដាច់​តំណ","Upload failed":"អាប់ឡូត​មិនបាន"}	);l.getPluralForm=function(n){return 0;;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
+!function(e){const i=e.km=e.km||{};i.dictionary=Object.assign(i.dictionary||{},{"%0 of %1":"","Block quote":"ប្លុក​ពាក្យ​សម្រង់",Bold:"ដិត","Bulleted List":"បញ្ជី​ជា​ចំណុច",Cancel:"បោះបង់","Cannot upload file:":"មិនអាច​អាប់ឡូត​ឯកសារ៖","Centered image":"","Change image text alternative":"","Choose heading":"ជ្រើសរើស​ក្បាលអត្ថបទ",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor toolbar":"","Enter image caption":"បញ្ចូល​ពាក្យ​ពណ៌នា​រូបភាព","Full size image":"រូបភាព​ពេញ​ទំហំ",Heading:"ក្បាលអត្ថបទ","Heading 1":"ក្បាលអត្ថបទ 1","Heading 2":"ក្បាលអត្ថបទ 2","Heading 3":"ក្បាលអត្ថបទ 3","Heading 4":"","Heading 5":"","Heading 6":"","Image toolbar":"","image widget":"វិដជិត​រូបភាព","Insert image":"បញ្ចូល​រូបភាព",Italic:"ទ្រេត","Left aligned image":"",Link:"តំណ","Link URL":"URL តំណ",Next:"","Numbered List":"បញ្ជី​ជា​លេខ","Open in a new tab":"","Open link in new tab":"",Paragraph:"កថាខណ្ឌ",Previous:"",Redo:"ធ្វើ​វិញ","Rich Text Editor, %0":"កម្មវិធី​កែសម្រួល​អត្ថបទ​សម្បូរបែប, %0","Right aligned image":"",Save:"រក្សាទុ","Show more items":"","Side image":"រូបភាព​នៅ​ខាង","Text alternative":"","This link has no URL":"",Undo:"លែង​ធ្វើ​វិញ",Unlink:"ផ្ដាច់​តំណ","Upload failed":"អាប់ឡូត​មិនបាន"}),i.getPluralForm=function(e){return 0}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));

+ 1 - 1
packages/ckeditor5-build-balloon-block/build/translations/kn.js

@@ -1 +1 @@
-(function(d){	const l = d['kn'] = d['kn'] || {};	l.dictionary=Object.assign(		l.dictionary||{},		{"%0 of %1":"","Block quote":"‍‍‍‍ಗುರುತಿಸಲಾದ ‍‍ಉಲ್ಲೇಖ",Bold:"‍‍ದಪ್ಪ","Bulleted List":"‍‍ಬುಲೆಟ್ ಪಟ್ಟಿ",Cancel:"ರದ್ದುಮಾಡು","Centered image":"","Change image text alternative":"‍ಚಿತ್ರದ ಬದಲಿ ಪಠ್ಯ ಬದಲಾಯಿಸು","Choose heading":"ಶೀರ್ಷಿಕೆ ಆಯ್ಕೆಮಾಡು",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor toolbar":"","Enter image caption":"‍ಚಿತ್ರದ ಶೀರ್ಷಿಕೆ ಸೇರಿಸು","Full size image":"‍ಪೂರ್ಣ ‍‍ಅಳತೆಯ ಚಿತ್ರ",Heading:"ಶೀರ್ಷಿಕೆ","Heading 1":"ಶೀರ್ಷಿಕೆ 1","Heading 2":"ಶೀರ್ಷಿಕೆ 2","Heading 3":"ಶೀರ್ಷಿಕೆ 3","Heading 4":"","Heading 5":"","Heading 6":"","Image toolbar":"","image widget":"‍ಚಿತ್ರ ವಿಜೆಟ್","Insert image":"",Italic:"‍ಇಟಾಲಿಕ್","Left aligned image":"",Link:"‍ಕೊಂಡಿ","Link URL":"‍ಕೊಂಡಿ ಸಂಪರ್ಕಿಸು",Next:"","Numbered List":"‍ಸಂಖ್ಯೆಯ ಪಟ್ಟಿ‍","Open in a new tab":"","Open link in new tab":"",Paragraph:"ಪ್ಯಾರಾಗ್ರಾಫ್",Previous:"",Redo:"‍ಮತ್ತೆ ಮಾಡು","Rich Text Editor, %0":"‍ಸಮೃದ್ಧ ಪಠ್ಯ ಸಂಪಾದಕ‍, %0","Right aligned image":"",Save:"ಉಳಿಸು","Show more items":"","Side image":"‍ಪಕ್ಕದ ಚಿತ್ರ","Text alternative":"‍ಪಠ್ಯದ ಬದಲಿ","This link has no URL":"",Undo:"‍‍ರದ್ದು",Unlink:"‍ಕೊಂಡಿ ತೆಗೆ","Upload failed":""}	);l.getPluralForm=function(n){return (n > 1);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
+!function(e){const i=e.kn=e.kn||{};i.dictionary=Object.assign(i.dictionary||{},{"%0 of %1":"","Block quote":"‍‍‍‍ಗುರುತಿಸಲಾದ ‍‍ಉಲ್ಲೇಖ",Bold:"‍‍ದಪ್ಪ","Bulleted List":"‍‍ಬುಲೆಟ್ ಪಟ್ಟಿ",Cancel:"ರದ್ದುಮಾಡು","Centered image":"","Change image text alternative":"‍ಚಿತ್ರದ ಬದಲಿ ಪಠ್ಯ ಬದಲಾಯಿಸು","Choose heading":"ಶೀರ್ಷಿಕೆ ಆಯ್ಕೆಮಾಡು",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor toolbar":"","Enter image caption":"‍ಚಿತ್ರದ ಶೀರ್ಷಿಕೆ ಸೇರಿಸು","Full size image":"‍ಪೂರ್ಣ ‍‍ಅಳತೆಯ ಚಿತ್ರ",Heading:"ಶೀರ್ಷಿಕೆ","Heading 1":"ಶೀರ್ಷಿಕೆ 1","Heading 2":"ಶೀರ್ಷಿಕೆ 2","Heading 3":"ಶೀರ್ಷಿಕೆ 3","Heading 4":"","Heading 5":"","Heading 6":"","Image toolbar":"","image widget":"‍ಚಿತ್ರ ವಿಜೆಟ್","Insert image":"",Italic:"‍ಇಟಾಲಿಕ್","Left aligned image":"",Link:"‍ಕೊಂಡಿ","Link URL":"‍ಕೊಂಡಿ ಸಂಪರ್ಕಿಸು",Next:"","Numbered List":"‍ಸಂಖ್ಯೆಯ ಪಟ್ಟಿ‍","Open in a new tab":"","Open link in new tab":"",Paragraph:"ಪ್ಯಾರಾಗ್ರಾಫ್",Previous:"",Redo:"‍ಮತ್ತೆ ಮಾಡು","Rich Text Editor, %0":"‍ಸಮೃದ್ಧ ಪಠ್ಯ ಸಂಪಾದಕ‍, %0","Right aligned image":"",Save:"ಉಳಿಸು","Show more items":"","Side image":"‍ಪಕ್ಕದ ಚಿತ್ರ","Text alternative":"‍ಪಠ್ಯದ ಬದಲಿ","This link has no URL":"",Undo:"‍‍ರದ್ದು",Unlink:"‍ಕೊಂಡಿ ತೆಗೆ","Upload failed":""}),i.getPluralForm=function(e){return e>1}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));

File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/ko.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/ku.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/lt.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/lv.js


+ 1 - 1
packages/ckeditor5-build-balloon-block/build/translations/ms.js

@@ -1 +1 @@
-(function(d){	const l = d['ms'] = d['ms'] || {};	l.dictionary=Object.assign(		l.dictionary||{},		{"Cannot upload file:":"Gagal memuat naik fail"}	);l.getPluralForm=function(n){return 0;;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
+!function(n){const i=n.ms=n.ms||{};i.dictionary=Object.assign(i.dictionary||{},{"Cannot upload file:":"Gagal memuat naik fail"}),i.getPluralForm=function(n){return 0}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));

File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/nb.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/ne.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/nl.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/no.js


+ 1 - 1
packages/ckeditor5-build-balloon-block/build/translations/oc.js

@@ -1 +1 @@
-(function(d){	const l = d['oc'] = d['oc'] || {};	l.dictionary=Object.assign(		l.dictionary||{},		{Bold:"Gras",Cancel:"Anullar",Italic:"Italica",Save:"Enregistrar"}	);l.getPluralForm=function(n){return (n > 1);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
+!function(n){const a=n.oc=n.oc||{};a.dictionary=Object.assign(a.dictionary||{},{Bold:"Gras",Cancel:"Anullar",Italic:"Italica",Save:"Enregistrar"}),a.getPluralForm=function(n){return n>1}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));

File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/pl.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/pt-br.js


+ 1 - 1
packages/ckeditor5-build-balloon-block/build/translations/pt.js

@@ -1 +1 @@
-(function(d){	const l = d['pt'] = d['pt'] || {};	l.dictionary=Object.assign(		l.dictionary||{},		{"%0 of %1":"",Bold:"Negrito","Bulleted List":"Lista não ordenada",Cancel:"Cancelar","Cannot upload file:":"Não foi possível carregar o ficheiro:","Centered image":"Imagem centrada","Change image text alternative":"","Choose heading":"",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor toolbar":"","Enter image caption":"Indicar legenda da imagem","Full size image":"Imagem em tamanho completo",Heading:"Cabeçalho","Heading 1":"Cabeçalho 1","Heading 2":"Cabeçalho 2","Heading 3":"Cabeçalho 3","Heading 4":"","Heading 5":"","Heading 6":"","Image toolbar":"","image widget":"módulo de imagem","Insert image":"Inserir imagem",Italic:"Itálico","Left aligned image":"",Link:"Hiperligação","Link URL":"URL da ligação",Next:"","Numbered List":"Lista ordenada","Open in a new tab":"","Open link in new tab":"",Paragraph:"Parágrafo",Previous:"",Redo:"Refazer","Rich Text Editor, %0":"Editor de texto avançado, %0","Right aligned image":"",Save:"Guardar","Show more items":"","Side image":"Imagem lateral","Text alternative":"Texto alternativo","This link has no URL":"",Undo:"Desfazer",Unlink:"Desligar","Upload failed":"Falha ao carregar"}	);l.getPluralForm=function(n){return (n != 1);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
+!function(a){const e=a.pt=a.pt||{};e.dictionary=Object.assign(e.dictionary||{},{"%0 of %1":"",Bold:"Negrito","Bulleted List":"Lista não ordenada",Cancel:"Cancelar","Cannot upload file:":"Não foi possível carregar o ficheiro:","Centered image":"Imagem centrada","Change image text alternative":"","Choose heading":"",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor toolbar":"","Enter image caption":"Indicar legenda da imagem","Full size image":"Imagem em tamanho completo",Heading:"Cabeçalho","Heading 1":"Cabeçalho 1","Heading 2":"Cabeçalho 2","Heading 3":"Cabeçalho 3","Heading 4":"","Heading 5":"","Heading 6":"","Image toolbar":"","image widget":"módulo de imagem","Insert image":"Inserir imagem",Italic:"Itálico","Left aligned image":"",Link:"Hiperligação","Link URL":"URL da ligação",Next:"","Numbered List":"Lista ordenada","Open in a new tab":"","Open link in new tab":"",Paragraph:"Parágrafo",Previous:"",Redo:"Refazer","Rich Text Editor, %0":"Editor de texto avançado, %0","Right aligned image":"",Save:"Guardar","Show more items":"","Side image":"Imagem lateral","Text alternative":"Texto alternativo","This link has no URL":"",Undo:"Desfazer",Unlink:"Desligar","Upload failed":"Falha ao carregar"}),e.getPluralForm=function(a){return 1!=a}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));

File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/ro.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/ru.js


+ 1 - 1
packages/ckeditor5-build-balloon-block/build/translations/si.js

@@ -1 +1 @@
-(function(d){	const l = d['si'] = d['si'] || {};	l.dictionary=Object.assign(		l.dictionary||{},		{Bold:"තදකුරු","Bulleted List":"බුලටිත ලැයිස්තුව","Cannot upload file:":"ගොනුව යාවත්කාලීන කළ නොහැක:","Centered image":"","Change image text alternative":"","Enter image caption":"","Full size image":"","Image toolbar":"","image widget":"","Insert image":"පින්තූරය ඇතුල් කරන්න",Italic:"ඇලකුරු","Left aligned image":"","Numbered List":"අංකිත ලැයිස්තුව",Redo:"නැවත කරන්න","Right aligned image":"","Side image":"","Text alternative":"",Undo:"අහෝසි කරන්න","Upload failed":"උඩුගත කිරීම අසාර්ථක විය"}	);l.getPluralForm=function(n){return (n != 1);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
+!function(e){const i=e.si=e.si||{};i.dictionary=Object.assign(i.dictionary||{},{Bold:"තදකුරු","Bulleted List":"බුලටිත ලැයිස්තුව","Cannot upload file:":"ගොනුව යාවත්කාලීන කළ නොහැක:","Centered image":"","Change image text alternative":"","Enter image caption":"","Full size image":"","Image toolbar":"","image widget":"","Insert image":"පින්තූරය ඇතුල් කරන්න",Italic:"ඇලකුරු","Left aligned image":"","Numbered List":"අංකිත ලැයිස්තුව",Redo:"නැවත කරන්න","Right aligned image":"","Side image":"","Text alternative":"",Undo:"අහෝසි කරන්න","Upload failed":"උඩුගත කිරීම අසාර්ථක විය"}),i.getPluralForm=function(e){return 1!=e}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));

File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/sk.js


+ 1 - 1
packages/ckeditor5-build-balloon-block/build/translations/sl.js

@@ -1 +1 @@
-(function(d){	const l = d['sl'] = d['sl'] || {};	l.dictionary=Object.assign(		l.dictionary||{},		{"%0 of %1":"","Block quote":"Blokiraj citat",Bold:"Krepko",Cancel:"Prekliči","Cannot upload file:":"Ni možno naložiti datoteke:","Choose heading":"Izberi naslov","Could not insert image at the current position.":"Slike ni mogoče vstaviti na trenutni položaj.","Could not obtain resized image URL.":"Ne morem pridobiti spremenjenega URL-ja slike.","Dropdown toolbar":"","Edit block":"","Editor toolbar":"",Heading:"Naslov","Heading 1":"Naslov 1","Heading 2":"Naslov 2","Heading 3":"","Heading 4":"","Heading 5":"","Heading 6":"","Insert image or file":"Vstavi sliko ali datoteko","Inserting image failed":"Vstavljanje slike ni uspelo",Italic:"Poševno",Next:"",Paragraph:"Odstavek",Previous:"","Rich Text Editor, %0":"",Save:"Shrani","Selecting resized image failed":"Izbira spremenjene slike ni uspela","Show more items":""}	);l.getPluralForm=function(n){return (n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
+!function(e){const i=e.sl=e.sl||{};i.dictionary=Object.assign(i.dictionary||{},{"%0 of %1":"","Block quote":"Blokiraj citat",Bold:"Krepko",Cancel:"Prekliči","Cannot upload file:":"Ni možno naložiti datoteke:","Choose heading":"Izberi naslov","Could not insert image at the current position.":"Slike ni mogoče vstaviti na trenutni položaj.","Could not obtain resized image URL.":"Ne morem pridobiti spremenjenega URL-ja slike.","Dropdown toolbar":"","Edit block":"","Editor toolbar":"",Heading:"Naslov","Heading 1":"Naslov 1","Heading 2":"Naslov 2","Heading 3":"","Heading 4":"","Heading 5":"","Heading 6":"","Insert image or file":"Vstavi sliko ali datoteko","Inserting image failed":"Vstavljanje slike ni uspelo",Italic:"Poševno",Next:"",Paragraph:"Odstavek",Previous:"","Rich Text Editor, %0":"",Save:"Shrani","Selecting resized image failed":"Izbira spremenjene slike ni uspela","Show more items":""}),i.getPluralForm=function(e){return e%100==1?0:e%100==2?1:e%100==3||e%100==4?2:3}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));

File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/sq.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/sr-latn.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/sr.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/sv.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/th.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/tr.js


+ 1 - 1
packages/ckeditor5-build-balloon-block/build/translations/tt.js

@@ -1 +1 @@
-(function(d){	const l = d['tt'] = d['tt'] || {};	l.dictionary=Object.assign(		l.dictionary||{},		{Bold:"Калын",Cancel:"",Italic:"",Redo:"Кабатла",Save:"Сакла",Undo:""}	);l.getPluralForm=function(n){return 0;;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
+!function(n){const t=n.tt=n.tt||{};t.dictionary=Object.assign(t.dictionary||{},{Bold:"Калын",Cancel:"",Italic:"",Redo:"Кабатла",Save:"Сакла",Undo:""}),t.getPluralForm=function(n){return 0}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));

File diff ditekan karena terlalu besar
+ 0 - 1
packages/ckeditor5-build-balloon-block/build/translations/ug.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/uk.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/vi.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/zh-cn.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon-block/build/translations/zh.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon/build/ckeditor.js


File diff ditekan karena terlalu besar
+ 0 - 0
packages/ckeditor5-build-balloon/build/ckeditor.js.map


+ 1 - 1
packages/ckeditor5-build-balloon/build/translations/af.js

@@ -1 +1 @@
-(function(d){	const l = d['af'] = d['af'] || {};	l.dictionary=Object.assign(		l.dictionary||{},		{"Block quote":"Blok-aanhaling",Bold:"Vetgedruk",Cancel:"Kanselleer","Cannot upload file:":"Lêer nie opgelaai nie:","Could not insert image at the current position.":"Beeld kan nie in die posisie toegevoeg word nie.","Could not obtain resized image URL.":"","Insert image or file":"Voeg beeld of lêer in","Inserting image failed":"",Italic:"Skuinsgedruk",Save:"Berg","Selecting resized image failed":""}	);l.getPluralForm=function(n){return (n != 1);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
+!function(e){const i=e.af=e.af||{};i.dictionary=Object.assign(i.dictionary||{},{"Block quote":"Blok-aanhaling",Bold:"Vetgedruk",Cancel:"Kanselleer","Cannot upload file:":"Lêer nie opgelaai nie:","Could not insert image at the current position.":"Beeld kan nie in die posisie toegevoeg word nie.","Could not obtain resized image URL.":"","Insert image or file":"Voeg beeld of lêer in","Inserting image failed":"",Italic:"Skuinsgedruk",Save:"Berg","Selecting resized image failed":""}),i.getPluralForm=function(e){return 1!=e}}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini