├── tests ├── __init__.py ├── testapp │ ├── __init__.py │ ├── migrations │ │ ├── __init__.py │ │ ├── 0002_testmodel.py │ │ └── 0001_initial.py │ ├── templates │ │ └── flatpages │ │ │ └── default.html │ ├── models.py │ └── admin.py ├── urls.py ├── test_models.py ├── manage.py ├── test_static_files.py ├── test_views.py ├── test_compressor.py └── settings.py ├── docs ├── history.rst ├── index.rst └── Makefile ├── tinymce ├── __init__.py ├── static │ ├── tinymce │ │ ├── langs │ │ │ └── README.md │ │ ├── license.md │ │ ├── skins │ │ │ ├── ui │ │ │ │ ├── oxide │ │ │ │ │ ├── skin.shadowdom.min.css │ │ │ │ │ └── skin.shadowdom.js │ │ │ │ ├── oxide-dark │ │ │ │ │ ├── skin.shadowdom.min.css │ │ │ │ │ └── skin.shadowdom.js │ │ │ │ ├── tinymce-5 │ │ │ │ │ ├── skin.shadowdom.min.css │ │ │ │ │ └── skin.shadowdom.js │ │ │ │ └── tinymce-5-dark │ │ │ │ │ ├── skin.shadowdom.min.css │ │ │ │ │ └── skin.shadowdom.js │ │ │ └── content │ │ │ │ ├── default │ │ │ │ ├── content.min.css │ │ │ │ └── content.js │ │ │ │ ├── tinymce-5 │ │ │ │ ├── content.min.css │ │ │ │ └── content.js │ │ │ │ ├── writer │ │ │ │ ├── content.min.css │ │ │ │ └── content.js │ │ │ │ ├── dark │ │ │ │ ├── content.min.css │ │ │ │ └── content.js │ │ │ │ ├── tinymce-5-dark │ │ │ │ ├── content.min.css │ │ │ │ └── content.js │ │ │ │ └── document │ │ │ │ ├── content.min.css │ │ │ │ └── content.js │ │ └── plugins │ │ │ ├── code │ │ │ └── plugin.min.js │ │ │ ├── visualblocks │ │ │ └── plugin.min.js │ │ │ ├── nonbreaking │ │ │ └── plugin.min.js │ │ │ ├── save │ │ │ └── plugin.min.js │ │ │ ├── pagebreak │ │ │ └── plugin.min.js │ │ │ ├── autoresize │ │ │ └── plugin.min.js │ │ │ ├── anchor │ │ │ └── plugin.min.js │ │ │ ├── insertdatetime │ │ │ └── plugin.min.js │ │ │ ├── help │ │ │ └── js │ │ │ │ └── i18n │ │ │ │ └── keynav │ │ │ │ ├── zh_CN.js │ │ │ │ ├── zh_TW.js │ │ │ │ ├── ja.js │ │ │ │ ├── ko_KR.js │ │ │ │ ├── he_IL.js │ │ │ │ ├── th_TH.js │ │ │ │ ├── hi.js │ │ │ │ ├── en.js │ │ │ │ ├── fa.js │ │ │ │ ├── ms.js │ │ │ │ ├── sv_SE.js │ │ │ │ ├── id.js │ │ │ │ ├── da.js │ │ │ │ ├── ar.js │ │ │ │ ├── pt_BR.js │ │ │ │ ├── eu.js │ │ │ │ ├── tr.js │ │ │ │ ├── vi.js │ │ │ │ ├── pt_PT.js │ │ │ │ ├── nl.js │ │ │ │ ├── nb_NO.js │ │ │ │ ├── hu_HU.js │ │ │ │ ├── cs.js │ │ │ │ ├── kk.js │ │ │ │ ├── sl_SI.js │ │ │ │ └── ru.js │ │ │ ├── autolink │ │ │ └── plugin.min.js │ │ │ ├── autosave │ │ │ └── plugin.min.js │ │ │ ├── importcss │ │ │ └── plugin.min.js │ │ │ ├── advlist │ │ │ └── plugin.min.js │ │ │ └── directionality │ │ │ └── plugin.min.js │ └── django_tinymce │ │ ├── admin_tinymce.css │ │ └── init_tinymce.js ├── urls.py ├── templates │ └── tinymce │ │ ├── filebrowser.js │ │ └── tiny_mce_gzip.js ├── models.py ├── settings.py └── views.py ├── MANIFEST.in ├── .gitignore ├── CONTRIBUTING.rst ├── check_encoding.sh ├── tox.ini ├── LICENSE.txt ├── .pre-commit-config.yaml ├── .github └── workflows │ ├── release.yml │ └── test.yml ├── CONTRIBUTORS.rst ├── runtests.py ├── CODE_OF_CONDUCT.md ├── README.rst └── pyproject.toml /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/testapp/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/testapp/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/history.rst: -------------------------------------------------------------------------------- 1 | .. include:: ../CHANGELOG.rst 2 | -------------------------------------------------------------------------------- /tinymce/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2008 Joost Cassee 2 | # Licensed under the terms of the MIT License (see LICENSE.txt) 3 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include *.py *.rst 2 | include docs/*.rst 3 | exclude *.pyc 4 | recursive-include tests * 5 | recursive-include tinymce * 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.egg-info 2 | *.pyc 3 | .DS_Store 4 | *.sqlite 5 | .coverage 6 | .venv/ 7 | __pycache__/ 8 | .tox/ 9 | coverage.xml 10 | -------------------------------------------------------------------------------- /tinymce/static/tinymce/langs/README.md: -------------------------------------------------------------------------------- 1 | This is where language files should be placed. 2 | 3 | Please DO NOT translate these directly, use this service instead: https://crowdin.com/project/tinymce 4 | -------------------------------------------------------------------------------- /tests/testapp/templates/flatpages/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |${t}
`:t},c=e=>a=>{const t=()=>{a.setEnabled(e.selection.isEditable())};return e.on("NodeChange",t),t(),()=>{e.off("NodeChange",t)}};e.add("pagebreak",(e=>{(e=>{const a=e.options.register;a("pagebreak_separator",{processor:"string",default:"\x3c!-- pagebreak --\x3e"}),a("pagebreak_split_block",{processor:"boolean",default:!1})})(e),(e=>{e.addCommand("mcePageBreak",(()=>{e.insertContent(s(o(e)))}))})(e),(e=>{const a=()=>e.execCommand("mcePageBreak");e.ui.registry.addButton("pagebreak",{icon:"page-break",tooltip:"Page break",onAction:a,onSetup:c(e)}),e.ui.registry.addMenuItem("pagebreak",{text:"Page break",icon:"page-break",onAction:a,onSetup:c(e)})})(e),(e=>{const a=n(e),t=()=>o(e),c=new RegExp(a.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,(e=>"\\"+e)),"gi");e.on("BeforeSetContent",(e=>{e.content=e.content.replace(c,s(t()))})),e.on("PreInit",(()=>{e.serializer.addNodeFilter("img",(n=>{let o,s,c=n.length;for(;c--;)if(o=n[c],s=o.attr("class"),s&&-1!==s.indexOf(r)){const n=o.parent;if(n&&e.schema.getBlockElements()[n.name]&&t()){n.type=3,n.value=a,n.raw=!0,o.remove();continue}o.type=3,o.value=a,o.raw=!0}}))}))})(e),(e=>{e.on("ResolveName",(a=>{"IMG"===a.target.nodeName&&e.dom.hasClass(a.target,r)&&(a.name="pagebreak")}))})(e)}))}(); -------------------------------------------------------------------------------- /runtests.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import os 3 | import sys 4 | 5 | # Force this to happen before loading django 6 | try: 7 | os.environ["DJANGO_SETTINGS_MODULE"] = "testtinymce.settings" 8 | test_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 9 | sys.path.insert(0, test_dir) 10 | except ImportError: 11 | pass 12 | else: 13 | import django 14 | from django.conf import settings 15 | from django.test.utils import get_runner 16 | 17 | 18 | def runtests(modules=["tinymce"], verbosity=1, failfast=False): 19 | django.setup() 20 | TestRunner = get_runner(settings) 21 | test_runner = TestRunner(interactive=True, verbosity=verbosity, failfast=failfast) 22 | failures = test_runner.run_tests(modules) 23 | sys.exit(bool(failures)) 24 | 25 | 26 | if __name__ == "__main__": 27 | parser = argparse.ArgumentParser(description="Run the django-tinymce test suite.") 28 | parser.add_argument( 29 | "modules", 30 | nargs="*", 31 | metavar="module", 32 | help='Optional path(s) to test modules; e.g. "tinymce" or ' 33 | '"tinymce.tests.test_widgets".', 34 | ) 35 | parser.add_argument( 36 | "-v", 37 | "--verbosity", 38 | default=1, 39 | type=int, 40 | choices=[0, 1, 2, 3], 41 | help="Verbosity level; 0=minimal output, 1=normal output, 2=all output", 42 | ) 43 | parser.add_argument( 44 | "--failfast", 45 | action="store_true", 46 | help="Stop running the test suite after first failed test.", 47 | ) 48 | options = parser.parse_args() 49 | runtests(modules=options.modules, verbosity=options.verbosity, failfast=options.failfast) 50 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: Test 2 | 3 | on: [push, pull_request] 4 | 5 | jobs: 6 | build: 7 | name: build (Python ${{ matrix.python-version }}, Django ${{ matrix.django-version }}) 8 | runs-on: ubuntu-latest 9 | strategy: 10 | fail-fast: false 11 | max-parallel: 5 12 | matrix: 13 | python-version: ['3.9', '3.12', '3.13'] 14 | django-version: ['4.2', '5.0', '5.1', '5.2', 'main'] 15 | exclude: 16 | - python-version: 3.9 17 | django-version: 5.0 18 | - python-version: 3.9 19 | django-version: 5.1 20 | - python-version: 3.9 21 | django-version: 5.2 22 | - python-version: 3.9 23 | django-version: main 24 | - python-version: 3.13 25 | django-version: 4.2 26 | 27 | steps: 28 | - uses: actions/checkout@v4 29 | 30 | - name: Set up Python ${{ matrix.python-version }} 31 | uses: actions/setup-python@v4 32 | with: 33 | python-version: ${{ matrix.python-version }} 34 | 35 | - name: Get pip cache dir 36 | id: pip-cache 37 | run: | 38 | echo "::set-output name=dir::$(pip cache dir)" 39 | 40 | - name: Cache 41 | uses: actions/cache@v3 42 | with: 43 | path: ${{ steps.pip-cache.outputs.dir }} 44 | key: 45 | ${{ matrix.python-version }}-v1-${{ hashFiles('**/pyproject.toml') }}-${{ hashFiles('**/tox.ini') }} 46 | restore-keys: | 47 | ${{ matrix.python-version }}-v1- 48 | 49 | - name: Install dependencies 50 | run: | 51 | python -m pip install --upgrade pip 52 | python -m pip install --upgrade coverage[toml] tox tox-gh-actions 53 | 54 | - name: Tox tests 55 | run: | 56 | tox -v 57 | env: 58 | DJANGO: ${{ matrix.django-version }} 59 | 60 | - name: Upload coverage 61 | uses: codecov/codecov-action@v3 62 | with: 63 | name: Python ${{ matrix.python-version }} 64 | -------------------------------------------------------------------------------- /tests/testapp/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from django.contrib.flatpages.admin import FlatPageAdmin 3 | from django.contrib.flatpages.models import FlatPage 4 | from django.urls import reverse 5 | 6 | from tests.testapp.models import TestInline, TestModel, TestPage 7 | from tinymce.widgets import AdminTinyMCE 8 | 9 | 10 | class TinyMCETestInlineAdmin(admin.StackedInline): 11 | model = TestInline 12 | extra = 1 13 | 14 | def formfield_for_dbfield(self, db_field, **kwargs): 15 | if db_field.name in ("content1", "content2"): 16 | return db_field.formfield( 17 | widget=AdminTinyMCE( 18 | attrs={"cols": 80, "rows": 30}, 19 | mce_attrs={"external_link_list_url": reverse("tinymce-linklist")}, 20 | ) 21 | ) 22 | return super().formfield_for_dbfield(db_field, **kwargs) 23 | 24 | 25 | class TinyMCEFlatPageAdmin(FlatPageAdmin): 26 | def formfield_for_dbfield(self, db_field, **kwargs): 27 | if db_field.name == "content": 28 | return db_field.formfield( 29 | widget=AdminTinyMCE( 30 | attrs={"cols": 80, "rows": 30}, 31 | mce_attrs={"external_link_list_url": reverse("tinymce-linklist")}, 32 | ) 33 | ) 34 | return super().formfield_for_dbfield(db_field, **kwargs) 35 | 36 | 37 | class TinyMCETestPageAdmin(admin.ModelAdmin): 38 | inlines = [TinyMCETestInlineAdmin] 39 | 40 | def formfield_for_dbfield(self, db_field, **kwargs): 41 | if db_field.name in ("content1", "content2"): 42 | return db_field.formfield( 43 | widget=AdminTinyMCE( 44 | attrs={"cols": 80, "rows": 30}, 45 | mce_attrs={"external_link_list_url": reverse("tinymce-linklist")}, 46 | ) 47 | ) 48 | return super().formfield_for_dbfield(db_field, **kwargs) 49 | 50 | 51 | admin.site.unregister(FlatPage) 52 | admin.site.register(FlatPage, TinyMCEFlatPageAdmin) 53 | admin.site.register(TestPage, TinyMCETestPageAdmin) 54 | admin.site.register(TestModel) 55 | -------------------------------------------------------------------------------- /tinymce/views.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2008 Joost Cassee 2 | # Licensed under the terms of the MIT License (see LICENSE.txt) 3 | 4 | import json 5 | 6 | from django.http import HttpResponse 7 | from django.shortcuts import render 8 | from django.urls import reverse 9 | 10 | from tinymce.compressor import gzip_compressor 11 | 12 | 13 | def flatpages_link_list(request): 14 | """ 15 | Returns a HttpResponse whose content is a Javascript file representing a 16 | list of links to flatpages. 17 | """ 18 | from django.contrib.flatpages.models import FlatPage 19 | 20 | link_list = [(page.title, page.url) for page in FlatPage.objects.all()] 21 | return render_to_link_list(link_list) 22 | 23 | 24 | def compressor(request): 25 | """ 26 | Returns a GZip-compressed response. 27 | """ 28 | return gzip_compressor(request) 29 | 30 | 31 | def render_to_link_list(link_list): 32 | """ 33 | Returns a HttpResponse whose content is a Javascript file representing a 34 | list of links suitable for use wit the TinyMCE external_link_list_url 35 | configuration option. The link_list parameter must be a list of 2-tuples. 36 | """ 37 | return render_to_js_vardef("tinyMCELinkList", link_list) 38 | 39 | 40 | def render_to_image_list(image_list): 41 | """ 42 | Returns a HttpResponse whose content is a Javascript file representing a 43 | list of images suitable for use wit the TinyMCE external_image_list_url 44 | configuration option. The image_list parameter must be a list of 2-tuples. 45 | """ 46 | return render_to_js_vardef("tinyMCEImageList", image_list) 47 | 48 | 49 | def render_to_js_vardef(var_name, var_value): 50 | output = f"var {var_name} = {json.dumps(var_value)};" 51 | return HttpResponse(output, content_type="application/x-javascript") 52 | 53 | 54 | def filebrowser(request): 55 | try: 56 | fb_url = request.build_absolute_uri(reverse("fb_browse")) 57 | except Exception: 58 | fb_url = request.build_absolute_uri(reverse("filebrowser:fb_browse")) 59 | 60 | return render( 61 | request, 62 | "tinymce/filebrowser.js", 63 | {"fb_url": fb_url}, 64 | content_type="application/javascript", 65 | ) 66 | -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/autoresize/plugin.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * TinyMCE version 7.8.0 (TBD) 3 | */ 4 | !function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.Env");const o=e=>t=>t.options.get(e),n=o("min_height"),s=o("max_height"),i=o("autoresize_overflow_padding"),r=o("autoresize_bottom_margin"),g=(e,t)=>{const o=e.getBody();o&&(o.style.overflowY=t?"":"hidden",t||(o.scrollTop=0))},l=(e,t,o,n)=>{var s;const i=parseInt(null!==(s=e.getStyle(t,o,n))&&void 0!==s?s:"",10);return isNaN(i)?0:i},a=(e,o,r,c)=>{var d;const u=e.dom,h=e.getDoc();if(!h)return;if((e=>e.plugins.fullscreen&&e.plugins.fullscreen.isFullscreen())(e))return void g(e,!0);const m=h.documentElement,f=c?c():i(e),p=null!==(d=n(e))&&void 0!==d?d:e.getElement().offsetHeight;let y=p;const S=l(u,m,"margin-top",!0),v=l(u,m,"margin-bottom",!0);let C=m.offsetHeight+S+v+f;C<0&&(C=0);const H=e.getContainer().offsetHeight-e.getContentAreaContainer().offsetHeight;C+H>p&&(y=C+H);const b=s(e);b&&y>b?(y=b,g(e,!0)):g(e,!1);const w=o.get();if(w.set&&(e.dom.setStyles(e.getDoc().documentElement,{"min-height":0}),e.dom.setStyles(e.getBody(),{"min-height":"inherit"})),y!==w.totalHeight&&(C-f!==w.contentHeight||!w.set)){const n=y-w.totalHeight;if(u.setStyle(e.getContainer(),"height",y+"px"),o.set({totalHeight:y,contentHeight:C,set:!0}),(e=>{e.dispatch("ResizeEditor")})(e),t.browser.isSafari()&&(t.os.isMacOS()||t.os.isiOS())){const t=e.getWin();t.scrollTo(t.pageXOffset,t.pageYOffset)}e.hasFocus()&&(e=>{if("setcontent"===(null==e?void 0:e.type.toLowerCase())){const t=e;return!0===t.selection||!0===t.paste}return!1})(r)&&e.selection.scrollIntoView(),(t.browser.isSafari()||t.browser.isChromium())&&n<0&&a(e,o,r,c)}};e.add("autoresize",(e=>{if((e=>{const t=e.options.register;t("autoresize_overflow_padding",{processor:"number",default:1}),t("autoresize_bottom_margin",{processor:"number",default:50})})(e),e.options.isSet("resize")||e.options.set("resize",!1),!e.inline){const o=(()=>{let e={totalHeight:0,contentHeight:0,set:!1};return{get:()=>e,set:t=>{e=t}}})();((e,t)=>{e.addCommand("mceAutoResize",(()=>{a(e,t)}))})(e,o),((e,o)=>{const n=()=>r(e);e.on("init",(s=>{const r=i(e),g=e.dom;g.setStyles(e.getDoc().documentElement,{height:"auto"}),t.browser.isEdge()||t.browser.isIE()?g.setStyles(e.getBody(),{paddingLeft:r,paddingRight:r,"min-height":0}):g.setStyles(e.getBody(),{paddingLeft:r,paddingRight:r}),a(e,o,s,n)})),e.on("NodeChange SetContent keyup FullscreenStateChanged ResizeContent",(t=>{a(e,o,t,n)}))})(e,o)}}))}(); -------------------------------------------------------------------------------- /tests/test_views.py: -------------------------------------------------------------------------------- 1 | import os 2 | from unittest.mock import patch 3 | 4 | from django.contrib.flatpages.models import FlatPage 5 | from django.http import HttpResponse 6 | from django.test import TestCase 7 | 8 | from tinymce.views import render_to_image_list 9 | 10 | devnull = open(os.devnull, "w") 11 | 12 | 13 | def compress_whitespace(s): 14 | # replace whitespace runs with a single space 15 | return " ".join(s.split()) 16 | 17 | 18 | class TestViews(TestCase): 19 | def test_flatpages_link_list(self): 20 | FlatPage.objects.create( 21 | url="/test/url", 22 | title="Test Title", 23 | ) 24 | response = self.client.get("/tinymce/flatpages_link_list/") 25 | result_ok = b'var tinyMCELinkList = [["Test Title", "/test/url"]];' 26 | self.assertEqual(200, response.status_code) 27 | self.assertEqual("application/x-javascript", response["Content-Type"]) 28 | self.assertEqual(result_ok, response.content) 29 | 30 | @patch("tinymce.views.gzip_compressor") 31 | def test_compressor(self, gzip_mock): 32 | response_ok = HttpResponse("test", content_type="text/javascript") 33 | gzip_mock.return_value = response_ok 34 | 35 | response = self.client.get("/tinymce/compressor/") 36 | 37 | self.assertEqual(200, response.status_code) 38 | self.assertEqual("text/javascript", response["Content-Type"]) 39 | self.assertEqual(response_ok.content, response.content) 40 | gzip_mock.assert_called_once() 41 | 42 | def test_render_to_image_list(self): 43 | response = render_to_image_list([("test", "test.jpg")]) 44 | result_ok = b'var tinyMCEImageList = [["test", "test.jpg"]];' 45 | self.assertEqual(200, response.status_code) 46 | self.assertEqual("application/x-javascript", response["Content-Type"]) 47 | self.assertEqual(result_ok, response.content) 48 | 49 | @patch("tinymce.views.reverse", return_value="/filebrowser") 50 | def test_filebrowser(self, reverse_mock): 51 | response = self.client.get("/tinymce/filebrowser/") 52 | with open("tinymce/templates/tinymce/filebrowser.js") as f: 53 | response_ok = f.read() 54 | response_ok = response_ok.replace("{{ fb_url }}", "http://testserver/filebrowser") 55 | self.assertEqual(200, response.status_code) 56 | self.assertEqual( 57 | compress_whitespace(response_ok), 58 | compress_whitespace(response.content.decode()), 59 | ) 60 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Code of Conduct 2 | 3 | As contributors and maintainers of the Jazzband projects, and in the interest of 4 | fostering an open and welcoming community, we pledge to respect all people who 5 | contribute through reporting issues, posting feature requests, updating documentation, 6 | submitting pull requests or patches, and other activities. 7 | 8 | We are committed to making participation in the Jazzband a harassment-free experience 9 | for everyone, regardless of the level of experience, gender, gender identity and 10 | expression, sexual orientation, disability, personal appearance, body size, race, 11 | ethnicity, age, religion, or nationality. 12 | 13 | Examples of unacceptable behavior by participants include: 14 | 15 | - The use of sexualized language or imagery 16 | - Personal attacks 17 | - Trolling or insulting/derogatory comments 18 | - Public or private harassment 19 | - Publishing other's private information, such as physical or electronic addresses, 20 | without explicit permission 21 | - Other unethical or unprofessional conduct 22 | 23 | The Jazzband roadies have the right and responsibility to remove, edit, or reject 24 | comments, commits, code, wiki edits, issues, and other contributions that are not 25 | aligned to this Code of Conduct, or to ban temporarily or permanently any contributor 26 | for other behaviors that they deem inappropriate, threatening, offensive, or harmful. 27 | 28 | By adopting this Code of Conduct, the roadies commit themselves to fairly and 29 | consistently applying these principles to every aspect of managing the jazzband 30 | projects. Roadies who do not follow or enforce the Code of Conduct may be permanently 31 | removed from the Jazzband roadies. 32 | 33 | This code of conduct applies both within project spaces and in public spaces when an 34 | individual is representing the project or its community. 35 | 36 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by 37 | contacting the roadies at `roadies@jazzband.co`. All complaints will be reviewed and 38 | investigated and will result in a response that is deemed necessary and appropriate to 39 | the circumstances. Roadies are obligated to maintain confidentiality with regard to the 40 | reporter of an incident. 41 | 42 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 43 | 1.3.0, available at [https://contributor-covenant.org/version/1/3/0/][version] 44 | 45 | [homepage]: https://contributor-covenant.org 46 | [version]: https://contributor-covenant.org/version/1/3/0/ 47 | -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | PAPER = 8 | 9 | # Internal variables. 10 | PAPEROPT_a4 = -D latex_paper_size=a4 11 | PAPEROPT_letter = -D latex_paper_size=letter 12 | ALLSPHINXOPTS = -d .build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . 13 | 14 | .PHONY: help clean html web pickle htmlhelp latex changes linkcheck 15 | 16 | help: 17 | @echo "Please use \`make导航将在第一个 UI 项上开始,其中突出显示该项,或者对于页脚元素路径中的第一项,将为其添加下划线。
\n' + 22 | '\n' + 23 | '要从一个 UI 部分移至下一个,请按 Tab。
\n' + 26 | '\n' + 27 | '要从一个 UI 部分移至上一个,请按 Shift+Tab。
\n' + 28 | '\n' + 29 | '这些 UI 部分的 Tab 顺序为:
\n' + 30 | '\n' + 31 | '如果不存在某个 UI 部分,则跳过它。
\n' + 42 | '\n' + 43 | '如果键盘导航焦点在页脚,并且没有可见的边栏,则按 Shift+Tab 将焦点移至第一个工具栏组而非最后一个。
\n' + 44 | '\n' + 45 | '要从一个 UI 元素移至下一个,请按相应的箭头键。
\n' + 48 | '\n' + 49 | '左和右箭头键
\n' + 50 | '\n' + 51 | '下和上箭头键
\n' + 59 | '\n' + 60 | '箭头键在具有焦点的 UI 部分内循环。
\n' + 66 | '\n' + 67 | '要关闭打开的菜单、打开的子菜单或打开的弹出菜单,请按 Esc 键。
\n' + 68 | '\n' + 69 | '如果当前的焦点在特定 UI 部分的“顶部”,则按 Esc 键还将完全退出键盘导航。
\n' + 70 | '\n' + 71 | '当突出显示所需的菜单项或工具栏按钮时,按 Return、Enter 或空格以执行该项。
\n' + 74 | '\n' + 75 | '在非标签页式对话框中,当对话框打开时,第一个交互组件获得焦点。
\n' + 78 | '\n' + 79 | '通过按 Tab 或 Shift+Tab,在交互对话框组件之间导航。
\n' + 80 | '\n' + 81 | '在标签页式对话框中,当对话框打开时,标签页菜单中的第一个按钮获得焦点。
\n' + 84 | '\n' + 85 | '通过按 Tab 或 Shift+Tab,在此对话框的交互组件之间导航。
\n' + 86 | '\n' + 87 | '通过将焦点移至另一对话框标签页的菜单,然后按相应的箭头键以在可用的标签页间循环,从而切换到该对话框标签页。
\n'); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/help/js/i18n/keynav/zh_TW.js: -------------------------------------------------------------------------------- 1 | tinymce.Resource.add('tinymce.html-i18n.help-keynav.zh_TW', 2 | '瀏覽會從第一個 UI 項目開始,該項目會反白顯示,但如果是「頁尾」元素路徑的第一項,\n' + 22 | ' 則加底線。
\n' + 23 | '\n' + 24 | '從 UI 區段移至下一個,請按 Tab。
\n' + 27 | '\n' + 28 | '從 UI 區段移回上一個,請按 Shift+Tab。
\n' + 29 | '\n' + 30 | '這些 UI 區段的 Tab 順序如下:
\n' + 31 | '\n' + 32 | '如果 UI 區段未顯示,表示已略過該區段。
\n' + 43 | '\n' + 44 | '如果鍵盤瀏覽跳至頁尾,但沒有顯示側邊欄,則按下 Shift+Tab\n' + 45 | ' 會跳至第一個工具列群組,而不是最後一個。
\n' + 46 | '\n' + 47 | '在兩個 UI 元素之間移動,請按適當的方向鍵。
\n' + 50 | '\n' + 51 | '向左和向右方向鍵
\n' + 52 | '\n' + 53 | '向下和向上方向鍵
\n' + 61 | '\n' + 62 | '方向鍵會在所跳至 UI 區段之內循環。
\n' + 68 | '\n' + 69 | '若要關閉已開啟的功能表、已開啟的子功能表,或已開啟的快顯功能表,請按 Esc 鍵。
\n' + 70 | '\n' + 71 | '如果目前已跳至特定 UI 區段的「頂端」,則按 Esc 鍵也會結束\n' + 72 | ' 整個鍵盤瀏覽。
\n' + 73 | '\n' + 74 | '當想要的功能表項目或工具列按鈕已反白顯示時,按 Return、Enter、\n' + 77 | ' 或空白鍵即可執行該項目。
\n' + 78 | '\n' + 79 | '在非索引標籤式對話方塊中,開啟對話方塊時會跳至第一個互動元件。
\n' + 82 | '\n' + 83 | '按 Tab 或 Shift+Tab 即可在互動式對話方塊元件之間瀏覽。
\n' + 84 | '\n' + 85 | '在索引標籤式對話方塊中,開啟對話方塊時會跳至索引標籤式功能表中的第一個按鈕。
\n' + 88 | '\n' + 89 | '若要在此對話方塊的互動式元件之間瀏覽,請按 Tab 或\n' + 90 | ' Shift+Tab。
\n' + 91 | '\n' + 92 | '先跳至索引標籤式功能表,然後按適當的方向鍵,即可切換至另一個對話方塊索引標籤,\n' + 93 | ' 以循環瀏覽可用的索引標籤。
\n'); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/autolink/plugin.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * TinyMCE version 7.8.0 (TBD) 3 | */ 4 | !function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>t.options.get(e),n=t("autolink_pattern"),o=t("link_default_target"),r=t("link_default_protocol"),a=t("allow_unsafe_link_target"),s=e=>"string"===(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(n=o=e,(r=String).prototype.isPrototypeOf(n)||(null===(a=o.constructor)||void 0===a?void 0:a.name)===r.name)?"string":t;var n,o,r,a})(e);const l=e=>undefined===e;const i=e=>!(e=>null==e)(e),c=Object.hasOwnProperty,d=e=>"\ufeff"===e;var u=tinymce.util.Tools.resolve("tinymce.dom.TextSeeker");const f=e=>/^[(\[{ \u00a0]$/.test(e),g=(e,t,n)=>{for(let o=t-1;o>=0;o--){const t=e.charAt(o);if(!d(t)&&n(t))return o}return-1},m=(e,t)=>{var o;const a=e.schema.getVoidElements(),s=n(e),{dom:i,selection:d}=e;if(null!==i.getParent(d.getNode(),"a[href]")||e.mode.isReadOnly())return null;const m=d.getRng(),k=u(i,(e=>{return i.isBlock(e)||(t=a,n=e.nodeName.toLowerCase(),c.call(t,n))||"false"===i.getContentEditable(e);var t,n})),{container:p,offset:y}=((e,t)=>{let n=e,o=t;for(;1===n.nodeType&&n.childNodes[o];)n=n.childNodes[o],o=3===n.nodeType?n.data.length:n.childNodes.length;return{container:n,offset:o}})(m.endContainer,m.endOffset),w=null!==(o=i.getParent(p,i.isBlock))&&void 0!==o?o:i.getRoot(),h=k.backwards(p,y+t,((e,t)=>{const n=e.data,o=g(n,t,(r=f,e=>!r(e)));var r,a;return-1===o||(a=n[o],/[?!,.;:]/.test(a))?o:o+1}),w);if(!h)return null;let v=h.container;const _=k.backwards(h.container,h.offset,((e,t)=>{v=e;const n=g(e.data,t,f);return-1===n?n:n+1}),w),A=i.createRng();_?A.setStart(_.container,_.offset):A.setStart(v,0),A.setEnd(h.container,h.offset);const C=A.toString().replace(/\uFEFF/g,"").match(s);if(C){let t=C[0];return $="www.",(b=t).length>=4&&b.substr(0,4)===$?t=r(e)+"://"+t:((e,t,n=0,o)=>{const r=e.indexOf(t,n);return-1!==r&&(!!l(o)||r+t.length<=o)})(t,"@")&&!(e=>/^([A-Za-z][A-Za-z\d.+-]*:\/\/)|mailto:/.test(e))(t)&&(t="mailto:"+t),{rng:A,url:t}}var b,$;return null},k=(e,t)=>{const{dom:n,selection:r}=e,{rng:l,url:i}=t,c=r.getBookmark();r.setRng(l);const d="createlink",u={command:d,ui:!1,value:i};if(!e.dispatch("BeforeExecCommand",u).isDefaultPrevented()){e.getDoc().execCommand(d,!1,i),e.dispatch("ExecCommand",u);const t=o(e);if(s(t)){const o=r.getNode();n.setAttrib(o,"target",t),"_blank"!==t||a(e)||n.setAttrib(o,"rel","noopener")}}r.moveToBookmark(c),e.nodeChanged()},p=e=>{const t=m(e,-1);i(t)&&k(e,t)},y=p;e.add("autolink",(e=>{(e=>{const t=e.options.register;t("autolink_pattern",{processor:"regexp",default:new RegExp("^"+/(?:[A-Za-z][A-Za-z\d.+-]{0,14}:\/\/(?:[-.~*+=!&;:'%@?^${}(),\w]+@)?|www\.|[-;:&=+$,.\w]+@)[A-Za-z\d-]+(?:\.[A-Za-z\d-]+)*(?::\d+)?(?:\/(?:[-.~*+=!;:'%@$(),\/\w]*[-~*+=%@$()\/\w])?)?(?:\?(?:[-.~*+=!&;:'%@?^${}(),\/\w]+))?(?:#(?:[-.~*+=!&;:'%@?^${}(),\/\w]+))?/g.source+"$","i")}),t("link_default_target",{processor:"string"}),t("link_default_protocol",{processor:"string",default:"https"})})(e),(e=>{e.on("keydown",(t=>{13!==t.keyCode||t.isDefaultPrevented()||(e=>{const t=m(e,0);i(t)&&k(e,t)})(e)})),e.on("keyup",(t=>{32===t.keyCode?p(e):(48===t.keyCode&&t.shiftKey||221===t.keyCode)&&y(e)}))})(e)}))}(); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/autosave/plugin.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * TinyMCE version 7.8.0 (TBD) 3 | */ 4 | !function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager");const e=t=>"string"===(t=>{const e=typeof t;return null===t?"null":"object"===e&&Array.isArray(t)?"array":"object"===e&&(r=o=t,(a=String).prototype.isPrototypeOf(r)||(null===(s=o.constructor)||void 0===s?void 0:s.name)===a.name)?"string":e;var r,o,a,s})(t);const r=t=>undefined===t;var o=tinymce.util.Tools.resolve("tinymce.util.Delay"),a=tinymce.util.Tools.resolve("tinymce.util.LocalStorage"),s=tinymce.util.Tools.resolve("tinymce.util.Tools");const n=t=>{const e=/^(\d+)([ms]?)$/.exec(t);return(e&&e[2]?{s:1e3,m:6e4}[e[2]]:1)*parseInt(t,10)},i=t=>e=>e.options.get(t),u=i("autosave_ask_before_unload"),l=i("autosave_restore_when_empty"),c=i("autosave_interval"),d=i("autosave_retention"),m=t=>{const e=document.location;return t.options.get("autosave_prefix").replace(/{path}/g,e.pathname).replace(/{query}/g,e.search).replace(/{hash}/g,e.hash).replace(/{id}/g,t.id)},v=(t,e)=>{if(r(e))return t.dom.isEmpty(t.getBody());{const r=s.trim(e);if(""===r)return!0;{const e=(new DOMParser).parseFromString(r,"text/html");return t.dom.isEmpty(e)}}},f=t=>{var e;const r=parseInt(null!==(e=a.getItem(m(t)+"time"))&&void 0!==e?e:"0",10)||0;return!((new Date).getTime()-r>d(t)&&(p(t,!1),1))},p=(t,e)=>{const r=m(t);a.removeItem(r+"draft"),a.removeItem(r+"time"),!1!==e&&(t=>{t.dispatch("RemoveDraft")})(t)},y=t=>{const e=m(t);!v(t)&&t.isDirty()&&(a.setItem(e+"draft",t.getContent({format:"raw",no_events:!0})),a.setItem(e+"time",(new Date).getTime().toString()),(t=>{t.dispatch("StoreDraft")})(t))},g=t=>{var e;const r=m(t);f(t)&&(t.setContent(null!==(e=a.getItem(r+"draft"))&&void 0!==e?e:"",{format:"raw"}),(t=>{t.dispatch("RestoreDraft")})(t))};var D=tinymce.util.Tools.resolve("tinymce.EditorManager");const h=t=>e=>{const r=()=>f(t)&&!t.mode.isReadOnly();e.setEnabled(r());const o=()=>e.setEnabled(r());return t.on("StoreDraft RestoreDraft RemoveDraft",o),()=>t.off("StoreDraft RestoreDraft RemoveDraft",o)};t.add("autosave",(t=>((t=>{const r=t.options.register,o=t=>{const r=e(t);return r?{value:n(t),valid:r}:{valid:!1,message:"Must be a string."}};r("autosave_ask_before_unload",{processor:"boolean",default:!0}),r("autosave_prefix",{processor:"string",default:"tinymce-autosave-{path}{query}{hash}-{id}-"}),r("autosave_restore_when_empty",{processor:"boolean",default:!1}),r("autosave_interval",{processor:o,default:"30s"}),r("autosave_retention",{processor:o,default:"20m"})})(t),(t=>{t.editorManager.on("BeforeUnload",(t=>{let e;s.each(D.get(),(t=>{t.plugins.autosave&&t.plugins.autosave.storeDraft(),!e&&t.isDirty()&&u(t)&&(e=t.translate("You have unsaved changes are you sure you want to navigate away?"))})),e&&(t.preventDefault(),t.returnValue=e)}))})(t),(t=>{(t=>{const e=c(t);o.setEditorInterval(t,(()=>{y(t)}),e)})(t);const e=()=>{(t=>{t.undoManager.transact((()=>{g(t),p(t)})),t.focus()})(t)};t.ui.registry.addButton("restoredraft",{tooltip:"Restore last draft",icon:"restore-draft",onAction:e,onSetup:h(t)}),t.ui.registry.addMenuItem("restoredraft",{text:"Restore last draft",icon:"restore-draft",onAction:e,onSetup:h(t)})})(t),t.on("init",(()=>{l(t)&&t.dom.isEmpty(t.getBody())&&g(t)})),(t=>({hasDraft:()=>f(t),storeDraft:()=>y(t),restoreDraft:()=>g(t),removeDraft:e=>p(t,e),isEmpty:e=>v(t,e)}))(t))))}(); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/help/js/i18n/keynav/ja.js: -------------------------------------------------------------------------------- 1 | tinymce.Resource.add('tinymce.html-i18n.help-keynav.ja', 2 | 'ナビゲーションは最初の UI 項目から開始され、強調表示されるか、フッターの要素パスにある最初の項目の場合は\n' + 22 | ' 下線が引かれます。
\n' + 23 | '\n' + 24 | '次の UI セクションに移動するには、Tab を押します。
\n' + 27 | '\n' + 28 | '前の UI セクションに移動するには、Shift+Tab を押します。
\n' + 29 | '\n' + 30 | 'これらの UI セクションの Tab の順序:
\n' + 31 | '\n' + 32 | 'UI セクションが存在しない場合は、スキップされます。
\n' + 43 | '\n' + 44 | 'フッターにキーボード ナビゲーション フォーカスがあり、表示可能なサイド バーがない場合、Shift+Tab を押すと、\n' + 45 | ' フォーカスが最後ではなく最初のツール バー グループに移動します。
\n' + 46 | '\n' + 47 | '次の UI 要素に移動するには、適切な矢印キーを押します。
\n' + 50 | '\n' + 51 | '左矢印と右矢印のキー
\n' + 52 | '\n' + 53 | '下矢印と上矢印のキー
\n' + 61 | '\n' + 62 | '矢印キーで、フォーカスされた UI セクション内で循環します。
\n' + 68 | '\n' + 69 | '開いたメニュー、開いたサブメニュー、開いたポップアップ メニューを閉じるには、Esc キーを押します。
\n' + 70 | '\n' + 71 | '現在のフォーカスが特定の UI セクションの「一番上」にある場合、Esc キーを押すと\n' + 72 | ' キーボード ナビゲーションも完全に閉じられます。
\n' + 73 | '\n' + 74 | '目的のメニュー項目やツール バー ボタンが強調表示されている場合、リターン、Enter、\n' + 77 | ' またはスペース キーを押して項目を実行します。
\n' + 78 | '\n' + 79 | 'タブのないダイアログでは、ダイアログが開くと最初の対話型コンポーネントがフォーカスされます。
\n' + 82 | '\n' + 83 | 'Tab または Shift+Tab を押して、対話型ダイアログ コンポーネント間で移動します。
\n' + 84 | '\n' + 85 | 'タブ付きダイアログでは、ダイアログが開くとタブ メニューの最初のボタンがフォーカスされます。
\n' + 88 | '\n' + 89 | 'Tab または\n' + 90 | ' Shift+Tab を押して、このダイアログ タブの対話型コンポーネント間で移動します。
\n' + 91 | '\n' + 92 | 'タブ メニューをフォーカスしてから適切な矢印キーを押して表示可能なタブを循環して、\n' + 93 | ' 別のダイアログに切り替えます。
\n'); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/help/js/i18n/keynav/ko_KR.js: -------------------------------------------------------------------------------- 1 | tinymce.Resource.add('tinymce.html-i18n.help-keynav.ko_KR', 2 | '첫 번째 UI 항목에서 탐색이 시작되며, 이때 첫 번째 항목이 강조 표시되거나 푸터 요소 경로에 있는\n' + 22 | ' 경우 밑줄 표시됩니다.
\n' + 23 | '\n' + 24 | '한 UI 섹션에서 다음 UI 섹션으로 이동하려면 Tab(탭)을 누릅니다.
\n' + 27 | '\n' + 28 | '한 UI 섹션에서 이전 UI 섹션으로 돌아가려면 Shift+Tab(시프트+탭)을 누릅니다.
\n' + 29 | '\n' + 30 | '이 UI 섹션의 Tab(탭) 순서는 다음과 같습니다.
\n' + 31 | '\n' + 32 | 'UI 섹션이 없는 경우 건너뛰기합니다.
\n' + 43 | '\n' + 44 | '푸터에 키보드 탐색 포커스가 있고 사이드바는 보이지 않는 경우 Shift+Tab(시프트+탭)을 누르면\n' + 45 | ' 포커스 표시가 마지막이 아닌 첫 번째 도구 모음 그룹으로 이동합니다.
\n' + 46 | '\n' + 47 | '한 UI 요소에서 다음 UI 요소로 이동하려면 적절한 화살표 키를 누릅니다.
\n' + 50 | '\n' + 51 | '왼쪽과 오른쪽 화살표 키의 용도:
\n' + 52 | '\n' + 53 | '아래와 위 화살표 키의 용도:
\n' + 61 | '\n' + 62 | '화살표 키는 포커스 표시 UI 섹션 내에서 순환됩니다.
\n' + 68 | '\n' + 69 | '열려 있는 메뉴, 열려 있는 하위 메뉴 또는 열려 있는 팝업 메뉴를 닫으려면 Esc 키를 누릅니다.
\n' + 70 | '\n' + 71 | "현재 포커스 표시가 특정 UI 섹션 '상단'에 있는 경우 이때도 Esc 키를 누르면\n" + 72 | ' 키보드 탐색이 완전히 종료됩니다.
\n' + 73 | '\n' + 74 | '원하는 메뉴 항목 또는 도구 모음 버튼이 강조 표시되어 있을 때 Return(리턴), Enter(엔터),\n' + 77 | ' 또는 Space bar(스페이스바)를 눌러 해당 항목을 실행합니다.
\n' + 78 | '\n' + 79 | '탭이 없는 대화의 경우, 첫 번째 대화형 요소가 포커스 표시된 상태로 대화가 열립니다.
\n' + 82 | '\n' + 83 | '대화형 요소들 사이를 이동할 때는 Tab(탭) 또는 Shift+Tab(시프트+탭)을 누릅니다.
\n' + 84 | '\n' + 85 | '탭이 있는 대화의 경우, 탭 메뉴에서 첫 번째 버튼이 포커스 표시된 상태로 대화가 열립니다.
\n' + 88 | '\n' + 89 | '이 대화 탭의 대화형 요소들 사이를 이동할 때는 Tab(탭) 또는\n' + 90 | ' Shift+Tab(시프트+탭)을 누릅니다.
\n' + 91 | '\n' + 92 | '다른 대화 탭으로 이동하려면 탭 메뉴를 포커스 표시한 다음 적절한 화살표\n' + 93 | ' 키를 눌러 사용 가능한 탭들을 지나 원하는 탭으로 이동합니다.
\n'); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/importcss/plugin.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * TinyMCE version 7.8.0 (TBD) 3 | */ 4 | !function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(s=r=e,(o=String).prototype.isPrototypeOf(s)||(null===(n=r.constructor)||void 0===n?void 0:n.name)===o.name)?"string":t;var s,r,o,n})(t)===e,s=t("string"),r=t("object"),o=t("array"),n=e=>"function"==typeof e;var c=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),i=tinymce.util.Tools.resolve("tinymce.EditorManager"),l=tinymce.util.Tools.resolve("tinymce.Env"),a=tinymce.util.Tools.resolve("tinymce.util.Tools");const p=e=>t=>t.options.get(e),u=p("importcss_merge_classes"),m=p("importcss_exclusive"),f=p("importcss_selector_converter"),y=p("importcss_selector_filter"),d=p("importcss_groups"),h=p("importcss_append"),g=p("importcss_file_filter"),_=p("skin"),v=p("skin_url"),b=Array.prototype.push,x=/^\.(?:ephox|tiny-pageembed|mce)(?:[.-]+\w+)+$/,T=e=>s(e)?t=>-1!==t.indexOf(e):e instanceof RegExp?t=>e.test(t):e,S=(e,t)=>{let s={};const r=/^(?:([a-z0-9\-_]+))?(\.[a-z0-9_\-\.]+)$/i.exec(t);if(!r)return;const o=r[1],n=r[2].substr(1).split(".").join(" "),c=a.makeMap("a,img");return r[1]?(s={title:t},e.schema.getTextBlockElements()[o]?s.block=o:e.schema.getBlockElements()[o]||c[o.toLowerCase()]?s.selector=o:s.inline=o):r[2]&&(s={inline:"span",title:t.substr(1),classes:n}),u(e)?s.classes=n:s.attributes={class:n},s},k=(e,t)=>null===t||m(e),M=e=>{e.on("init",(()=>{const t=(()=>{const e=[],t=[],s={};return{addItemToGroup:(e,r)=>{s[e]?s[e].push(r):(t.push(e),s[e]=[r])},addItem:t=>{e.push(t)},toFormats:()=>{return(r=t,n=e=>{const t=s[e];return 0===t.length?[]:[{title:e,items:t}]},(e=>{const t=[];for(let s=0,r=e.length;sהניווט יתחיל ברכיב הראשון במשך, שיודגש או שיהיה מתחתיו קו תחתון במקרה של הפריט הראשון\n' + 22 | ' הנתיב של רכיב הכותרת התחתונה.
\n' + 23 | '\n' + 24 | 'כדי לעבור בין המקטעים במסך, הקש Tab.
\n' + 27 | '\n' + 28 | 'כדי לעבור למקטע הקודם במסך, הקש Shift+Tab.
\n' + 29 | '\n' + 30 | 'הסדר מבחינת מקש Tab של הרכיבים במסך:
\n' + 31 | '\n' + 32 | 'אם רכיב כלשהו במסך לא מופיע, המערכת תדלג עליו.
\n' + 43 | '\n' + 44 | 'אם בכותרת התחתונה יש מיקוד של ניווט במקלדת, ולא מופיע סרגל בצד, יש להקיש Shift+Tab\n' + 45 | ' מעביר את המיקוד לקבוצה הראשונה בסרגל הכלים, לא האחרונה.
\n' + 46 | '\n' + 47 | 'כדי לעבור מרכיב אחד לרכיב אחר במסך, הקש על מקש החץ המתאים.
\n' + 50 | '\n' + 51 | 'מקשי החיצים שמאלה וימינה
\n' + 52 | '\n' + 53 | 'מקשי החיצים למטה ולמעלה
\n' + 61 | '\n' + 62 | 'מקשי החצים משתנים בתוך המקטע במסך שעליו נמצא המיקוד.
\n' + 68 | '\n' + 69 | 'כדי לסגור תפריט פתוח, תפריט משני פתוח או חלון קופץ, הקש על Esc.
\n' + 70 | '\n' + 71 | "אם המיקוד הוא על החלק 'העליון' של מקטע מסוים במסך, הקשה על Esc מביאה גם ליציאה\n" + 72 | ' מהניווט במקלדת לחלוטין.
\n' + 73 | '\n' + 74 | 'כאשר הפריט הרצוי בתפריט או הלחצן בסרגל הכלים מודגשים, הקש על Return, Enter,\n' + 77 | ' או על מקש הרווח כדי להפעיל את הפריט.
\n' + 78 | '\n' + 79 | 'בחלונות דו-שיח בלי כרטיסיות, הרכיב האינטראקטיבי הראשון מקבל את המיקוד כאשר החלון נפתח.
\n' + 82 | '\n' + 83 | 'עבור בין רכיבים אינטראקטיביים בחלון על ידי הקשה על Tab או Shift+Tab.
\n' + 84 | '\n' + 85 | 'בחלונות דו-שיח עם כרטיסיות, הלחצן הראשון בתפריט מקבל את המיקוד כאשר החלון נפתח.
\n' + 88 | '\n' + 89 | 'עבור בין רכיבים אינטראקטיביים בחלון על ידי הקשה על Tab או\n' + 90 | ' Shift+Tab.
\n' + 91 | '\n' + 92 | 'עבור לכרטיסיה אחרת בחלון על ידי העברת המיקוד לתפריט הכרטיסיות והקשה על החץהמתאים\n' + 93 | ' כדי לעבור בין הכרטיסיות הזמינות.
\n'); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/help/js/i18n/keynav/th_TH.js: -------------------------------------------------------------------------------- 1 | tinymce.Resource.add('tinymce.html-i18n.help-keynav.th_TH', 2 | 'การนำทางจะเริ่มที่รายการ UI แรก ซึ่งจะมีการไฮไลต์หรือขีดเส้นใต้ไว้ในกรณีที่รายการแรกอยู่ใน\n' + 22 | ' พาธองค์ประกอบส่วนท้าย
\n' + 23 | '\n' + 24 | 'ในการย้ายจากส่วน UI หนึ่งไปยังส่วนถัดไป ให้กด Tab
\n' + 27 | '\n' + 28 | 'ในการย้ายจากส่วน UI หนึ่งไปยังส่วนก่อนหน้า ให้กด Shift+Tab
\n' + 29 | '\n' + 30 | 'ลำดับแท็บของส่วนต่างๆ ของ UI คือ:
\n' + 31 | '\n' + 32 | 'หากส่วน UI ไม่ปรากฏ แสดงว่าถูกข้ามไป
\n' + 43 | '\n' + 44 | 'หากส่วนท้ายมีการโฟกัสการนำทางแป้นพิมพ์และไม่มีแถบข้างปรากฏ การกด Shift+Tab\n' + 45 | ' จะย้ายการโฟกัสไปที่กลุ่มแถบเครื่องมือแรก ไม่ใช่สุดท้าย
\n' + 46 | '\n' + 47 | 'ในการย้ายจากองค์ประกอบ UI หนึ่งไปยังองค์ประกอบส่วนถัดไป ให้กดปุ่มลูกศรที่เหมาะสม
\n' + 50 | '\n' + 51 | 'ปุ่มลูกศรซ้ายและขวา
\n' + 52 | '\n' + 53 | 'ปุ่มลูกศรลงและขึ้น
\n' + 61 | '\n' + 62 | 'ปุ่มลูกศรจะเลื่อนไปมาภายในส่วน UI ที่โฟกัส
\n' + 68 | '\n' + 69 | 'ในการปิดเมนูที่เปิดอยู่ เมนูย่อยที่เปิดอยู่ หรือเมนูป๊อบอัพที่เปิดอยู่ ให้กดปุ่ม Esc
\n' + 70 | '\n' + 71 | 'หากโฟกัสปัจจุบันอยู่ที่ ‘ด้านบนสุด’ ของส่วน UI เฉพาะ การกดปุ่ม Esc จะทำให้ออกจาก\n' + 72 | ' การนำทางด้วยแป้นพิมพ์ทั้งหมดเช่นกัน
\n' + 73 | '\n' + 74 | 'เมื่อไฮไลต์รายการเมนูหรือปุ่มในแถบเครื่องมือที่ต้องการ ให้กด Return, Enter\n' + 77 | ' หรือ Space bar เพื่อดำเนินการรายการดังกล่าว
\n' + 78 | '\n' + 79 | 'ในกล่องโต้ตอบที่ไม่อยู่ในแท็บ จะโฟกัสที่ส่วนประกอบเชิงโต้ตอบแรกเมื่อกล่องโต้ตอบเปิด
\n' + 82 | '\n' + 83 | 'นำทางระหว่างส่วนประกอบเชิงโต้ตอบต่างๆ ของกล่องโต้ตอบ โดยการกด Tab หรือ Shift+Tab
\n' + 84 | '\n' + 85 | 'ในกล่องโต้ตอบที่อยู่ในแท็บ จะโฟกัสที่ปุ่มแรกในเมนูแท็บเมื่อกล่องโต้ตอบเปิด
\n' + 88 | '\n' + 89 | 'นำทางระหว่างส่วนประกอบเชิงโต้ตอบต่างๆ ของแท็บกล่องโต้ตอบนี้โดยการกด Tab หรือ\n' + 90 | ' Shift+Tab
\n' + 91 | '\n' + 92 | 'สลับไปยังแท็บกล่องโต้ตอบอื่นโดยการเลือกโฟกัสที่เมนูแท็บ แล้วกดปุ่มลูกศรที่เหมาะสม\n' + 93 | ' เพื่อเลือกแท็บที่ใช้ได้
\n'); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/directionality/plugin.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * TinyMCE version 7.8.0 (TBD) 3 | */ 4 | !function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager");const e=t=>e=>typeof e===t,o=t=>"string"===(t=>{const e=typeof t;return null===t?"null":"object"===e&&Array.isArray(t)?"array":"object"===e&&(o=r=t,(n=String).prototype.isPrototypeOf(o)||(null===(i=r.constructor)||void 0===i?void 0:i.name)===n.name)?"string":e;var o,r,n,i})(t),r=e("boolean"),n=t=>!(t=>null==t)(t),i=e("function"),s=e("number"),l=()=>false;class a{constructor(t,e){this.tag=t,this.value=e}static some(t){return new a(!0,t)}static none(){return a.singletonNone}fold(t,e){return this.tag?e(this.value):t()}isSome(){return this.tag}isNone(){return!this.tag}map(t){return this.tag?a.some(t(this.value)):a.none()}bind(t){return this.tag?t(this.value):a.none()}exists(t){return this.tag&&t(this.value)}forall(t){return!this.tag||t(this.value)}filter(t){return!this.tag||t(this.value)?this:a.none()}getOr(t){return this.tag?this.value:t}or(t){return this.tag?this:t}getOrThunk(t){return this.tag?this.value:t()}orThunk(t){return this.tag?this:t()}getOrDie(t){if(this.tag)return this.value;throw new Error(null!=t?t:"Called getOrDie on None")}static from(t){return n(t)?a.some(t):a.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(t){this.tag&&t(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}a.singletonNone=new a(!1);const u=(t,e)=>{for(let o=0,r=t.length;oनेविगेशन पहले UI आइटम पर शुरू होगा, जिसे हाइलाइट किया जाएगा या पहले आइटम के मामले में फ़ुटर तत्व पथ में\n' + 22 | ' रेखांकित किया जाएगा।
\n' + 23 | '\n' + 24 | 'एक UI सेक्शन से दूसरे सेक्शन में जाने के लिए, Tab दबाएं।
\n' + 27 | '\n' + 28 | 'एक UI सेक्शन से पिछले सेक्शन में जाने के लिए, Shift+Tab दबाएं।
\n' + 29 | '\n' + 30 | 'इन UI सेक्शन का Tab क्रम नीचे दिया गया है:
\n' + 31 | '\n' + 32 | 'अगर कोई UI सेक्शन मौजूद नहीं है, तो उसे छोड़ दिया जाता है।
\n' + 43 | '\n' + 44 | 'अगर फ़ुटर में कीबोर्ड नेविगेशन फ़ोकस है, और कोई दिखा देने वाला साइडबार नहीं है, तो Shift+Tab दबाने से\n' + 45 | ' फ़ोकस पहले टूलबार समूह पर चला जाता है, पिछले पर नहीं।
\n' + 46 | '\n' + 47 | 'एक UI तत्व से दूसरे में जाने के लिए उपयुक्त ऐरो कुंजी दबाएं।
\n' + 50 | '\n' + 51 | 'बाएं और दाएं ऐरो कुंजियां
\n' + 52 | '\n' + 53 | 'नीचे और ऊपर ऐरो कुंजियां
\n' + 61 | '\n' + 62 | 'फ़ोकस वाले UI सेक्शन के भीतर ऐरो कुंजियां चलाती रहती हैं।
\n' + 68 | '\n' + 69 | 'कोई खुला मेन्यू, कोई खुला सब-मेन्यू या कोई खुला पॉप-अप मेन्यू बंद करने के लिए Esc कुंजी दबाएं।
\n' + 70 | '\n' + 71 | "अगर मौजूदा फ़ोकस किसी विशेष UI सेक्शन के 'शीर्ष' पर है, तो Esc कुंजी दबाने से भी\n" + 72 | ' कीबोर्ड नेविगेशन पूरी तरह से बाहर हो जाता है।
\n' + 73 | '\n' + 74 | 'जब वांछित मेन्यू आइटम या टूलबार बटन हाइलाइट किया जाता है, तो आइटम को निष्पादित करने के लिए Return, Enter,\n' + 77 | ' या Space bar दबाएं।
\n' + 78 | '\n' + 79 | 'गैर-टैब वाले डायलॉग में, डायलॉग खुलने पर पहला इंटरैक्टिव घटक फ़ोकस लेता है।
\n' + 82 | '\n' + 83 | 'Tab or Shift+Tab दबाकर इंटरैक्टिव डायलॉग घटकों के बीच नेविगेट करें।
\n' + 84 | '\n' + 85 | 'टैब किए गए डायलॉग में, डायलॉग खुलने पर टैब मेन्यू में पहला बटन फ़ोकस लेता है।
\n' + 88 | '\n' + 89 | 'इस डायलॉग टैब के इंटरैक्टिव घटकों के बीच नेविगेट करने के लिए Tab या\n' + 90 | ' Shift+Tab दबाएं।
\n' + 91 | '\n' + 92 | 'टैब मेन्यू को फ़ोकस देकर और फिर उपलब्ध टैब में के बीच जाने के लिए उपयुक्त ऐरो\n' + 93 | ' कुंजी दबाकर दूसरे डायलॉग टैब पर स्विच करें।
\n'); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/help/js/i18n/keynav/en.js: -------------------------------------------------------------------------------- 1 | tinymce.Resource.add('tinymce.html-i18n.help-keynav.en', 2 | 'Navigation will start at the first UI item, which will be highlighted, or underlined in the case of the first item in\n' + 22 | ' the Footer element path.
\n' + 23 | '\n' + 24 | 'To move from one UI section to the next, press Tab.
\n' + 27 | '\n' + 28 | 'To move from one UI section to the previous, press Shift+Tab.
\n' + 29 | '\n' + 30 | 'The Tab order of these UI sections is:
\n' + 31 | '\n' + 32 | 'If a UI section is not present, it is skipped.
\n' + 43 | '\n' + 44 | 'If the footer has keyboard navigation focus, and there is no visible sidebar, pressing Shift+Tab\n' + 45 | ' moves focus to the first toolbar group, not the last.
\n' + 46 | '\n' + 47 | 'To move from one UI element to the next, press the appropriate Arrow key.
\n' + 50 | '\n' + 51 | 'The Left and Right arrow keys
\n' + 52 | '\n' + 53 | 'The Down and Up arrow keys
\n' + 61 | '\n' + 62 | 'Arrow keys cycle within the focused UI section.
\n' + 68 | '\n' + 69 | 'To close an open menu, an open sub-menu, or an open pop-up menu, press the Esc key.
\n' + 70 | '\n' + 71 | 'If the current focus is at the ‘top’ of a particular UI section, pressing the Esc key also exits\n' + 72 | ' keyboard navigation entirely.
\n' + 73 | '\n' + 74 | 'When the desired menu item or toolbar button is highlighted, press Return, Enter,\n' + 77 | ' or the Space bar to execute the item.
\n' + 78 | '\n' + 79 | 'In non-tabbed dialogs, the first interactive component takes focus when the dialog opens.
\n' + 82 | '\n' + 83 | 'Navigate between interactive dialog components by pressing Tab or Shift+Tab.
\n' + 84 | '\n' + 85 | 'In tabbed dialogs, the first button in the tab menu takes focus when the dialog opens.
\n' + 88 | '\n' + 89 | 'Navigate between interactive components of this dialog tab by pressing Tab or\n' + 90 | ' Shift+Tab.
\n' + 91 | '\n' + 92 | 'Switch to another dialog tab by giving the tab menu focus and then pressing the appropriate Arrow\n' + 93 | ' key to cycle through the available tabs.
\n'); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/help/js/i18n/keynav/fa.js: -------------------------------------------------------------------------------- 1 | tinymce.Resource.add('tinymce.html-i18n.help-keynav.fa', 2 | 'پیمایش در اولین مورد رابط کاربری شروع میشود و درخصوص اولین مورد در\n' + 22 | ' مسیر عنصر پانویس، برجسته یا زیرخطدار میشود.
\n' + 23 | '\n' + 24 | 'برای جابجایی از یک بخش رابط کاربری به بخش بعدی، Tab را فشار دهید.
\n' + 27 | '\n' + 28 | 'برای جابجایی از یک بخش رابط کاربری به بخش قبلی، Shift+Tab را فشار دهید.
\n' + 29 | '\n' + 30 | 'ترتیب Tab این بخشهای رابط کاربری عبارتند از:
\n' + 31 | '\n' + 32 | 'اگر بخشی از رابط کاربری موجود نباشد، رد میشود.
\n' + 43 | '\n' + 44 | 'اگر پانویس دارای تمرکز بر پیمایش صفحهکلید باشد، و نوار کناری قابلمشاهده وجود ندارد، فشردن Shift+Tab\n' + 45 | ' تمرکز را به گروه نوار ابزار اول میبرد، نه آخر.
\n' + 46 | '\n' + 47 | 'برای جابجایی از یک عنصر رابط کاربری به بعدی، کلید جهتنمای مناسب را فشار دهید.
\n' + 50 | '\n' + 51 | 'کلیدهای جهتنمای چپ و راست
\n' + 52 | '\n' + 53 | 'کلیدهای جهتنمای پایین و بالا
\n' + 61 | '\n' + 62 | 'کلیدهایجهتنما در بخش رابط کاربری متمرکز میچرخند.
\n' + 68 | '\n' + 69 | 'برای بستن یک منوی باز، یک منوی فرعی باز، یا یک منوی بازشوی باز، کلید Esc را فشار دهید.
\n' + 70 | '\n' + 71 | 'اگر تمرکز فعلی در «بالای» یک بخش رابط کاربری خاص است، فشردن کلید Esc نیز موجب\n' + 72 | ' خروج کامل از پیمایش صفحهکلید میشود.
\n' + 73 | '\n' + 74 | 'وقتی مورد منو یا دکمه نوار ابزار مورد نظر هایلایت شد، دکمه بازگشت، Enter،\n' + 77 | ' یا نوار Space را فشار دهید تا مورد را اجرا کنید.
\n' + 78 | '\n' + 79 | 'در کادرهای گفتگوی بدون زبانه، وقتی کادر گفتگو باز میشود، اولین جزء تعاملی متمرکز میشود.
\n' + 82 | '\n' + 83 | 'با فشردن Tab یا Shift+Tab، بین اجزای کادر گفتگوی تعاملی پیمایش کنید.
\n' + 84 | '\n' + 85 | 'در کادرهای گفتگوی زبانهدار، وقتی کادر گفتگو باز میشود، اولین دکمه در منوی زبانه متمرکز میشود.
\n' + 88 | '\n' + 89 | 'با فشردن Tab یا\n' + 90 | ' Shift+Tab، بین اجزای تعاملی این زبانه کادر گفتگو پیمایش کنید.
\n' + 91 | '\n' + 92 | 'با دادن تمرکز به منوی زبانه و سپس فشار دادن کلید جهتنمای\n' + 93 | ' مناسب برای چرخش میان زبانههای موجود، به زبانه کادر گفتگوی دیگری بروید.
\n'); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/help/js/i18n/keynav/ms.js: -------------------------------------------------------------------------------- 1 | tinymce.Resource.add('tinymce.html-i18n.help-keynav.ms', 2 | 'Navigasi akan bermula pada item UI pertama, yang akan diserlahkan atau digaris bawah dalam saiz item pertama dalam\n' + 22 | ' laluan elemen Pengaki.
\n' + 23 | '\n' + 24 | 'Untuk bergerak dari satu bahagian UI ke yang seterusnya, tekan Tab.
\n' + 27 | '\n' + 28 | 'Untuk bergerak dari satu bahagian UI ke yang sebelumnya, tekan Shift+Tab.
\n' + 29 | '\n' + 30 | 'Tertib Tab bahagian UI ini ialah:
\n' + 31 | '\n' + 32 | 'Jika bahagian UI tidak wujud, ia dilangkau.
\n' + 43 | '\n' + 44 | 'Jika pengaki mempunyai fokus navigasi papan kekunci dan tiada bar sisi kelihatan, menekan Shift+Tab\n' + 45 | ' akan mengalihkan fokus ke kumpulan bar alat pertama, bukannya yang terakhir.
\n' + 46 | '\n' + 47 | 'Untuk bergerak dari satu elemen UI ke yang seterusnya, tekan kekunci Anak Panah yang bersesuaian.
\n' + 50 | '\n' + 51 | 'Kekunci anak panah Kiri dan Kanan
\n' + 52 | '\n' + 53 | 'Kekunci anak panah Bawah dan Atas
\n' + 61 | '\n' + 62 | 'Kekunci Anak Panah berkitar dalam bahagian UI difokuskan.
\n' + 68 | '\n' + 69 | 'Untuk menutup menu buka, submenu terbuka atau menu timbul terbuka, tekan kekunci Esc.
\n' + 70 | '\n' + 71 | "Jika fokus semasa berada di bahagian 'atas' bahagian UI tertentu, menekan kekunci Esc juga akan keluar daripada\n" + 72 | ' navigasi papan kekunci sepenuhnya.
\n' + 73 | '\n' + 74 | 'Apabila item menu atau butang bar alat yang diinginkan diserlahkan, tekan Return, Enter,\n' + 77 | ' atau bar Space untuk melaksanakan item.
\n' + 78 | '\n' + 79 | 'Dalam dialog tidak bertab, komponen interaksi pertama difokuskan apabila dialog dibuka.
\n' + 82 | '\n' + 83 | 'Navigasi antara komponen dialog interaktif dengan menekan Tab atau Shift+Tab.
\n' + 84 | '\n' + 85 | 'Dalam dialog bertab, butang pertama dalam menu tab difokuskan apabila dialog dibuka.
\n' + 88 | '\n' + 89 | 'Navigasi antara komponen interaktif tab dialog ini dengan menekan Tab atau\n' + 90 | ' Shift+Tab.
\n' + 91 | '\n' + 92 | 'Tukar kepada tab dialog lain dengan memfokuskan menu tab, kemudian menekan kekunci Anak Panah yang bersesuaian\n' + 93 | ' untuk berkitar menerusi tab yang tersedia.
\n'); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/help/js/i18n/keynav/sv_SE.js: -------------------------------------------------------------------------------- 1 | tinymce.Resource.add('tinymce.html-i18n.help-keynav.sv_SE', 2 | 'Navigeringen börjar vid det första gränssnittsobjektet, vilket är markerat eller understruket om det gäller det första objektet i\n' + 22 | ' sidfotens elementsökväg.
\n' + 23 | '\n' + 24 | 'Flytta från ett UI-avsnitt till nästa genom att trycka på Tabb.
\n' + 27 | '\n' + 28 | 'Flytta från ett UI-avsnitt till det föregående genom att trycka på Skift+Tabb.
\n' + 29 | '\n' + 30 | 'Tabb-ordningen för dessa UI-avsnitt är:
\n' + 31 | '\n' + 32 | 'Om ett UI-avsnitt inte finns hoppas det över.
\n' + 43 | '\n' + 44 | 'Om sidfoten har fokus på tangentbordsnavigering, och det inte finns någon synlig sidoruta, flyttas fokus till den första verktygsradsgruppen\n' + 45 | ' när du trycker på Skift+Tabb, inte till den sista.
\n' + 46 | '\n' + 47 | 'Flytta från ett UI-element till nästa genom att trycka på motsvarande piltangent.
\n' + 50 | '\n' + 51 | 'Vänsterpil och högerpil
\n' + 52 | '\n' + 53 | 'Nedpil och uppil
\n' + 61 | '\n' + 62 | 'Piltangenterna cirkulerar inom det fokuserade UI-avsnittet.
\n' + 68 | '\n' + 69 | 'Tryck på Esc-tangenten om du vill stänga en öppen meny, undermeny eller popup-meny.
\n' + 70 | '\n' + 71 | 'Om det aktuella fokuset är högst upp i ett UI-avsnitt avlutas även tangentbordsnavigeringen helt när\n' + 72 | ' du trycker på Esc-tangenten.
\n' + 73 | '\n' + 74 | 'När menyalternativet eller verktygsradsknappen är markerad trycker du på Retur, Enter\n' + 77 | ' eller blanksteg för att köra alternativet.
\n' + 78 | '\n' + 79 | 'I dialogrutor utan flikar är den första interaktiva komponenten i fokus när dialogrutan öppnas.
\n' + 82 | '\n' + 83 | 'Navigera mellan interaktiva dialogkomponenter genom att trycka på Tabb eller Skift+Tabb.
\n' + 84 | '\n' + 85 | 'I dialogrutor utan flikar är den första knappen på flikmenyn i fokus när dialogrutan öppnas.
\n' + 88 | '\n' + 89 | 'Navigera mellan interaktiva komponenter på dialogrutefliken genom att trycka på Tabb eller\n' + 90 | ' Skift+Tabb.
\n' + 91 | '\n' + 92 | 'Växla till en annan dialogruta genom att fokusera på flikmenyn och sedan trycka på motsvarande piltangent\n' + 93 | ' för att cirkulera mellan de tillgängliga flikarna.
\n'); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/help/js/i18n/keynav/id.js: -------------------------------------------------------------------------------- 1 | tinymce.Resource.add('tinymce.html-i18n.help-keynav.id', 2 | 'Navigasi akan dimulai dari item pertama UI, yang akan disorot atau digarisbawahi di\n' + 22 | ' alur elemen Footer.
\n' + 23 | '\n' + 24 | 'Untuk berpindah dari satu bagian UI ke bagian berikutnya, tekan Tab.
\n' + 27 | '\n' + 28 | 'Untuk berpindah dari satu bagian UI ke bagian sebelumnya, tekan Shift+Tab.
\n' + 29 | '\n' + 30 | 'Urutan Tab bagian-bagian UI ini adalah:
\n' + 31 | '\n' + 32 | 'Jika suatu bagian UI tidak ada, bagian tersebut dilewati.
\n' + 43 | '\n' + 44 | 'Jika fokus navigasi keyboard ada pada footer, tetapi tidak ada bilah sisi yang terlihat, menekan Shift+Tab\n' + 45 | ' akan memindahkan fokus ke grup bilah alat pertama, bukan yang terakhir.
\n' + 46 | '\n' + 47 | 'Untuk berpindah dari satu elemen UI ke elemen berikutnya, tekan tombol Panah yang sesuai.
\n' + 50 | '\n' + 51 | 'Tombol panah Kiri dan Kanan untuk
\n' + 52 | '\n' + 53 | 'Tombol panah Bawah dan Atas untuk
\n' + 61 | '\n' + 62 | 'Tombol Panah hanya bergerak di dalam bagian UI yang difokuskan.
\n' + 68 | '\n' + 69 | 'Untuk menutup menu, sub-menu, atau menu pop-up yang terbuka, tekan tombol Esc.
\n' + 70 | '\n' + 71 | 'Jika fokus sedang berada di ‘atas’ bagian UI tertentu, menekan tombol Esc juga dapat mengeluarkan fokus\n' + 72 | ' dari seluruh navigasi keyboard.
\n' + 73 | '\n' + 74 | 'Jika item menu atau tombol bilah alat yang diinginkan tersorot, tekan Return, Enter,\n' + 77 | ' atau Spasi untuk menjalankan item.
\n' + 78 | '\n' + 79 | 'Dalam dialog tanpa tab, fokus diarahkan pada komponen interaktif pertama saat dialog terbuka.
\n' + 82 | '\n' + 83 | 'Berpindah di antara komponen dalam dialog interaktif dengan menekan Tab atau Shift+Tab.
\n' + 84 | '\n' + 85 | 'Dalam dialog yang memiliki tab, fokus diarahkan pada tombol pertama di dalam menu saat dialog terbuka.
\n' + 88 | '\n' + 89 | 'Berpindah di antara komponen-komponen interaktif pada tab dialog ini dengan menekan Tab atau\n' + 90 | ' Shift+Tab.
\n' + 91 | '\n' + 92 | 'Beralih ke tab dialog lain dengan mengarahkan fokus pada menu tab lalu tekan tombol Panah\n' + 93 | ' yang sesuai untuk berpindah ke berbagai tab yang tersedia.
\n'); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/help/js/i18n/keynav/da.js: -------------------------------------------------------------------------------- 1 | tinymce.Resource.add('tinymce.html-i18n.help-keynav.da', 2 | 'Navigationen starter ved det første UI-element, som fremhæves eller understreges hvad angår det første element i\n' + 22 | ' sidefodens sti til elementet.
\n' + 23 | '\n' + 24 | 'Gå fra én UI-sektion til den næste ved at trykke på Tab.
\n' + 27 | '\n' + 28 | 'Gå fra én UI-sektion til den forrige ved at trykke på Shift+Tab.
\n' + 29 | '\n' + 30 | 'Tab-rækkefølgen af disse UI-sektioner er:
\n' + 31 | '\n' + 32 | 'Hvis en UI-sektion ikke er til stede, springes den over.
\n' + 43 | '\n' + 44 | 'Hvis sidefoden har fokus til tastaturnavigation, og der ikke er noget synligt sidepanel, kan der trykkes på Shift+Tab\n' + 45 | ' for at flytte fokus til den første værktøjsgruppe, ikke den sidste.
\n' + 46 | '\n' + 47 | 'Gå fra ét UI-element til det næste ved at trykke på den relevante piletast.
\n' + 50 | '\n' + 51 | 'Venstre og højre piletast
\n' + 52 | '\n' + 53 | 'Pil ned og op
\n' + 61 | '\n' + 62 | 'Piletasterne kører rundt inden for UI-sektionen, der fokuseres på.
\n' + 68 | '\n' + 69 | 'For at lukke en åben menu, en åben undermenu eller en åben genvejsmenu trykkes der på Esc-tasten.
\n' + 70 | '\n' + 71 | "Hvis det aktuelle fokus er i 'toppen' af en bestemt UI-sektion, vil tryk på Esc-tasten også afslutte\n" + 72 | ' tastaturnavigationen helt.
\n' + 73 | '\n' + 74 | 'Når det ønskede menupunkt eller den ønskede værktøjslinjeknap er fremhævet, trykkes der på Retur, Enter\n' + 77 | ' eller mellemrumstasten for at udføre elementet.
\n' + 78 | '\n' + 79 | 'I ikke-faneopdelte dialogbokse får den første interaktive komponent fokus, når dialogboksen åbnes.
\n' + 82 | '\n' + 83 | 'Naviger mellem interaktive dialogbokskomponenter ved at trykke på Tab eller Shift+Tab.
\n' + 84 | '\n' + 85 | 'I faneopdelte dialogbokse får den første knap i fanemenuen fokus, når dialogboksen åbnes.
\n' + 88 | '\n' + 89 | 'Naviger mellem interaktive komponenter i denne dialogboksfane ved at trykke på Tab eller\n' + 90 | ' Shift+Tab.
\n' + 91 | '\n' + 92 | 'Skift til en anden dialogboksfane ved at fokusere på fanemenuen og derefter trykke på den relevante piletast\n' + 93 | ' for at køre igennem de tilgængelige faner.
\n'); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/help/js/i18n/keynav/ar.js: -------------------------------------------------------------------------------- 1 | tinymce.Resource.add('tinymce.html-i18n.help-keynav.ar', 2 | 'سيبدأ التنقل عند عنصر واجهة المستخدم الأول، والذي سيتم تمييزه أو تسطيره في حالة العنصر الأول في\n' + 22 | ' مسار عنصر التذييل.
\n' + 23 | '\n' + 24 | 'للانتقال من أحد أقسام واجهة المستخدم إلى القسم التالي، اضغط على Tab.
\n' + 27 | '\n' + 28 | 'للانتقال من أحد أقسام واجهة المستخدم إلى القسم السابق، اضغط على Shift+Tab.
\n' + 29 | '\n' + 30 | 'ترتيب علامات Tab لأقسام واجهة المستخدم هذه هو:
\n' + 31 | '\n' + 32 | 'إذا لم يكن قسم واجهة المستخدم موجودًا، فسيتم تخطيه.
\n' + 43 | '\n' + 44 | 'إذا كان التذييل يحتوي على التركيز على التنقل بواسطة لوحة المفاتيح، ولا يوجد شريط جانبي مرئي، فإن الضغط على Shift+Tab\n' + 45 | ' ينقل التركيز إلى مجموعة شريط الأدوات الأولى، وليس الأخيرة.
\n' + 46 | '\n' + 47 | 'للانتقال من أحد عناصر واجهة المستخدم إلى العنصر التالي، اضغط على مفتاح السهم المناسب.
\n' + 50 | '\n' + 51 | 'مفتاحا السهمين اليسار واليمين
\n' + 52 | '\n' + 53 | 'مفتاحا السهمين لأسفل ولأعلى
\n' + 61 | '\n' + 62 | 'دورة مفاتيح الأسهم داخل قسم واجهة المستخدم التي تم التركيز عليها.
\n' + 68 | '\n' + 69 | 'لإغلاق قائمة مفتوحة أو قائمة فرعية مفتوحة أو قائمة منبثقة مفتوحة، اضغط على مفتاح Esc.
\n' + 70 | '\n' + 71 | 'إذا كان التركيز الحالي على "الجزء العلوي" من قسم معين لواجهة المستخدم، فإن الضغط على مفتاح Esc يؤدي أيضًا إلى الخروج\n' + 72 | ' من التنقل بواسطة لوحة المفاتيح بالكامل.
\n' + 73 | '\n' + 74 | 'عندما يتم تمييز عنصر القائمة المطلوب أو زر شريط الأدوات، اضغط على زر Return، أو Enter،\n' + 77 | ' أو مفتاح المسافة لتنفيذ العنصر.
\n' + 78 | '\n' + 79 | 'في مربعات الحوار غير المبوبة، يتم التركيز على المكون التفاعلي الأول عند فتح مربع الحوار.
\n' + 82 | '\n' + 83 | 'التنقل بين مكونات الحوار التفاعلي بالضغط على زر Tab أو Shift+Tab.
\n' + 84 | '\n' + 85 | 'في مربعات الحوار المبوبة، يتم التركيز على الزر الأول في قائمة علامات التبويب عند فتح مربع الحوار.
\n' + 88 | '\n' + 89 | 'التنقل بين المكونات التفاعلية لعلامة التبويب لمربع الحوار هذه بالضغط على زر Tab أو\n' + 90 | ' Shift+Tab.
\n' + 91 | '\n' + 92 | 'التبديل إلى علامة تبويب أخرى لمربع الحوار من خلال التركيز على قائمة علامة التبويب ثم الضغط على زر السهم المناسب\n' + 93 | ' مفتاح للتنقل بين علامات التبويب المتاحة.
\n'); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/help/js/i18n/keynav/pt_BR.js: -------------------------------------------------------------------------------- 1 | tinymce.Resource.add('tinymce.html-i18n.help-keynav.pt_BR', 2 | 'A navegação inicia no primeiro item da IU, que será destacado ou sublinhado no caso do primeiro item no\n' + 22 | ' caminho do elemento Rodapé.
\n' + 23 | '\n' + 24 | 'Para ir de uma seção da IU para a seguinte, pressione Tab.
\n' + 27 | '\n' + 28 | 'Para ir de uma seção da IU para a anterior, pressione Shift+Tab.
\n' + 29 | '\n' + 30 | 'A ordem de Tab destas seções da IU é:
\n' + 31 | '\n' + 32 | 'Se não houver uma seção da IU, ela será pulada.
\n' + 43 | '\n' + 44 | 'Se o rodapé tiver o foco da navegação pelo teclado e não houver uma barra lateral visível, pressionar Shift+Tab\n' + 45 | ' move o foco para o primeiro grupo da barra de ferramentas, não para o último.
\n' + 46 | '\n' + 47 | 'Para ir de um elemento da IU para o seguinte, pressione a Seta correspondente.
\n' + 50 | '\n' + 51 | 'As teclas de seta Esquerda e Direita
\n' + 52 | '\n' + 53 | 'As teclas de seta Abaixo e Acima
\n' + 61 | '\n' + 62 | 'As teclas de Seta alternam dentre a seção da IU em foco.
\n' + 68 | '\n' + 69 | 'Para fechar um menu aberto, um submenu aberto ou um menu suspenso aberto, pressione Esc.
\n' + 70 | '\n' + 71 | 'Se o foco atual estiver no ‘alto’ de determinada seção da IU, pressionar Esc também sai\n' + 72 | ' totalmente da navegação pelo teclado.
\n' + 73 | '\n' + 74 | 'Com o item de menu ou botão da barra de ferramentas desejado destacado, pressione Return, Enter,\n' + 77 | ' ou a Barra de espaço para executar o item.
\n' + 78 | '\n' + 79 | 'Em caixas de diálogo sem guias, o primeiro componente interativo recebe o foco quando a caixa de diálogo abre.
\n' + 82 | '\n' + 83 | 'Navegue entre componentes interativos de caixa de diálogo pressionando Tab ou Shift+Tab.
\n' + 84 | '\n' + 85 | 'Em caixas de diálogo com guias, o primeiro botão no menu da guia recebe o foco quando a caixa de diálogo abre.
\n' + 88 | '\n' + 89 | 'Navegue entre componentes interativos dessa guia da caixa de diálogo pressionando Tab ou\n' + 90 | ' Shift+Tab.
\n' + 91 | '\n' + 92 | 'Alterne para outra guia da caixa de diálogo colocando o foco no menu da guia e pressionando a Seta\n' + 93 | ' adequada para percorrer as guias disponíveis.
\n'); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/help/js/i18n/keynav/eu.js: -------------------------------------------------------------------------------- 1 | tinymce.Resource.add('tinymce.html-i18n.help-keynav.eu', 2 | 'Nabigazioa EIko lehen elementuan hasiko da: elementu hori nabarmendu egingo da, edo azpimarratu lehen elementua bada\n' + 22 | ' orri-oineko elementuaren bidea.
\n' + 23 | '\n' + 24 | 'EIko atal batetik hurrengora mugitzeko, sakatu Tabuladorea.
\n' + 27 | '\n' + 28 | 'EIko atal batetik aurrekora mugitzeko, sakatu Maius+Tabuladorea.
\n' + 29 | '\n' + 30 | 'EIko atal hauen Tabuladorea da:
\n' + 31 | '\n' + 32 | 'EIko atal bat ez badago, saltatu egin da.
\n' + 43 | '\n' + 44 | 'Orri-oinak teklatuaren nabigazioa fokuratuta badago, eta alboko barra ikusgai ez badago, Maius+Tabuladorea sakatuz gero,\n' + 45 | ' fokua tresna-barrako lehen taldera eramaten da, ez azkenera.
\n' + 46 | '\n' + 47 | 'EIko elementu batetik hurrengora mugitzeko, sakatu dagokion Gezia tekla.
\n' + 50 | '\n' + 51 | 'Ezkerrera eta Eskuinera gezi-teklak
\n' + 52 | '\n' + 53 | 'Gora eta Behera gezi-teklak
\n' + 61 | '\n' + 62 | 'Gezia teklen zikloa nabarmendutako EI atalen barruan.
\n' + 68 | '\n' + 69 | 'Irekitako menu bat ixteko, ireki azpimenua, edo ireki menu gainerakorra, sakatu Ihes tekla.
\n' + 70 | '\n' + 71 | 'Une horretan fokuratzea EIko atal jakin baten "goialdean" badago, Ihes tekla sakatuz gero\n' + 72 | ' teklatuaren nabigaziotik irtengo zara.
\n' + 73 | '\n' + 74 | 'Nahi den menuaren elementua edo tresna-barraren botoia nabarmenduta dagoenean, sakatu Itzuli, Sartu\n' + 77 | ' edo Zuriune-barra elementua exekutatzeko.
\n' + 78 | '\n' + 79 | 'Fitxarik gabeko elkarrizketetan, lehen osagai interaktiboa fokuratzen da elkarrizketa irekitzen denean.
\n' + 82 | '\n' + 83 | 'Nabigatu elkarrizketa interaktiboko osagai batetik bestera Tabuladorea edo Maius+Tabuladorea sakatuta.
\n' + 84 | '\n' + 85 | 'Fitxadun elkarrizketetan, fitxa-menuko lehen botoia fokuratzen da elkarrizketa irekitzen denean.
\n' + 88 | '\n' + 89 | 'Nabigatu elkarrizketa-fitxa honen interaktiboko osagai batetik bestera Tabuladorea edo\n' + 90 | ' Maius+Tabuladorea sakatuta.
\n' + 91 | '\n' + 92 | 'Aldatu beste elkarrizketa-fitxa batera fitxa-menua fokuratu eta dagokion Gezia\n' + 93 | ' tekla sakatzeko, erabilgarri dauden fitxa batetik bestera txandakatzeko.
\n'); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/help/js/i18n/keynav/tr.js: -------------------------------------------------------------------------------- 1 | tinymce.Resource.add('tinymce.html-i18n.help-keynav.tr', 2 | 'Gezinti ilk kullanıcı arabirimi öğesinden başlar, bu öğe vurgulanır ya da ilk öğe, Alt bilgi elemanı\n' + 22 | ' yolundaysa altı çizilir.
\n' + 23 | '\n' + 24 | 'Sonraki kullanıcı arabirimi bölümüne gitmek için Sekme tuşuna basın.
\n' + 27 | '\n' + 28 | 'Önceki kullanıcı arabirimi bölümüne gitmek için Shift+Sekme tuşlarına basın.
\n' + 29 | '\n' + 30 | 'Bu kullanıcı arabirimi bölümlerinin Sekme sırası:
\n' + 31 | '\n' + 32 | 'Kullanıcı arabirimi bölümü yoksa atlanır.
\n' + 43 | '\n' + 44 | 'Alt bilgide klavyeyle gezinti odağı yoksa ve görünür bir kenar çubuğu mevcut değilse Shift+Sekme tuşlarına basıldığında\n' + 45 | ' odak son araç çubuğu yerine ilk araç çubuğu grubuna taşınır.
\n' + 46 | '\n' + 47 | 'Sonraki kullanıcı arabirimi elemanına gitmek için uygun Ok tuşuna basın.
\n' + 50 | '\n' + 51 | 'Sol ve Sağ ok tuşları
\n' + 52 | '\n' + 53 | 'Aşağı ve Yukarı ok tuşları
\n' + 61 | '\n' + 62 | 'Ok tuşları, odaklanılan kullanıcı arabirimi bölümü içinde döngüsel olarak hareket eder.
\n' + 68 | '\n' + 69 | 'Açık bir menüyü, açık bir alt menüyü veya açık bir açılır menüyü kapatmak için Esc tuşuna basın.
\n' + 70 | '\n' + 71 | 'Geçerli odak belirli bir kullanıcı arabirimi bölümünün "üst" kısmındaysa Esc tuşuna basıldığında\n' + 72 | ' klavyeyle gezintiden de tamamen çıkılır.
\n' + 73 | '\n' + 74 | 'İstediğiniz menü öğesi veya araç çubuğu düğmesi vurgulandığında Return, Enter\n' + 77 | ' veya Ara çubuğu tuşuna basın.
\n' + 78 | '\n' + 79 | 'Sekme bulunmayan iletişim kutularında, iletişim kutusu açıldığında ilk etkileşimli bileşene odaklanılır.
\n' + 82 | '\n' + 83 | 'Etkileşimli iletişim kutusu bileşenleri arasında gezinmek için Sekme veya Shift+ Sekme tuşlarına basın.
\n' + 84 | '\n' + 85 | 'Sekmeli iletişim kutularında, iletişim kutusu açıldığında sekme menüsündeki ilk düğmeye odaklanılır.
\n' + 88 | '\n' + 89 | 'Bu iletişim kutusu sekmesinin etkileşimli bileşenleri arasında gezinmek için Sekme veya\n' + 90 | ' Shift+Sekme tuşlarına basın.
\n' + 91 | '\n' + 92 | 'Mevcut sekmeler arasında geçiş yapmak için sekme menüsüne odaklanıp uygun Ok tuşuna basarak\n' + 93 | ' başka bir iletişim kutusu sekmesine geçiş yapın.
\n'); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/help/js/i18n/keynav/vi.js: -------------------------------------------------------------------------------- 1 | tinymce.Resource.add('tinymce.html-i18n.help-keynav.vi', 2 | 'Điều hướng sẽ bắt đầu từ mục UI đầu tiên. Mục này sẽ được tô sáng hoặc có gạch dưới (nếu là mục đầu tiên trong\n' + 22 | ' đường dẫn phần tử Chân trang).
\n' + 23 | '\n' + 24 | 'Để di chuyển từ một phần UI sang phần tiếp theo, ấn Tab.
\n' + 27 | '\n' + 28 | 'Để di chuyển từ một phần UI về phần trước đó, ấn Shift+Tab.
\n' + 29 | '\n' + 30 | 'Thứ tự Tab của các phần UI này như sau:
\n' + 31 | '\n' + 32 | 'Nếu người dùng không thấy một phần UI, thì có nghĩa phần đó bị bỏ qua.
\n' + 43 | '\n' + 44 | 'Nếu ở chân trang có tính năng tập trung điều hướng bàn phím, mà không có thanh bên nào hiện hữu, thao tác ấn Shift+Tab\n' + 45 | ' sẽ chuyển hướng tập trung vào nhóm thanh công cụ đầu tiên, không phải cuối cùng.
\n' + 46 | '\n' + 47 | 'Để di chuyển từ một phần tử UI sang phần tiếp theo, ấn phím Mũi tên tương ứng cho phù hợp.
\n' + 50 | '\n' + 51 | 'Các phím mũi tên Trái và Phải
\n' + 52 | '\n' + 53 | 'Các phím mũi tên Hướng xuống và Hướng lên
\n' + 61 | '\n' + 62 | 'Các phím mũi tên xoay vòng trong một phần UI tập trung.
\n' + 68 | '\n' + 69 | 'Để đóng một menu mở, một menu phụ đang mở, hoặc một menu dạng bật lên đang mở, hãy ấn phím Esc.
\n' + 70 | '\n' + 71 | 'Nếu trọng tâm hiện tại là ở phần “đầu” của một phần UI cụ thể, thao tác ấn phím Esc cũng sẽ thoát\n' + 72 | ' toàn bộ phần điều hướng bàn phím.
\n' + 73 | '\n' + 74 | 'Khi mục menu hoặc nút thanh công cụ muốn dùng được tô sáng, hãy ấn Return, Enter,\n' + 77 | ' hoặc Phím cách để thực hiện chức năng mục đó.
\n' + 78 | '\n' + 79 | 'Trong các hộp thoại không có nhiều tab, khi hộp thoại mở ra, trọng tâm sẽ hướng vào thành phần tương tác đầu tiên.
\n' + 82 | '\n' + 83 | 'Di chuyển giữa các thành phần hộp thoại tương tác bằng cách ấn Tab hoặc Shift+Tab.
\n' + 84 | '\n' + 85 | 'Trong các hộp thoại có nhiều tab, khi hộp thoại mở ra, trọng tâm sẽ hướng vào nút đầu tiên trong menu tab.
\n' + 88 | '\n' + 89 | 'Di chuyển giữa các thành phần tương tác của tab hộp thoại này bằng cách ấn Tab hoặc\n' + 90 | ' Shift+Tab.
\n' + 91 | '\n' + 92 | 'Chuyển sang một tab hộp thoại khác bằng cách chuyển trọng tâm vào menu tab, rồi ấn phím Mũi tên phù hợp\n' + 93 | ' để xoay vòng các tab hiện có.
\n'); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/help/js/i18n/keynav/pt_PT.js: -------------------------------------------------------------------------------- 1 | tinymce.Resource.add('tinymce.html-i18n.help-keynav.pt_PT', 2 | 'A navegação começará no primeiro item de IU, que estará realçado ou sublinhado, no caso do primeiro item no\n' + 22 | ' caminho do elemento do rodapé.
\n' + 23 | '\n' + 24 | 'Para se mover de uma secção de IU para a seguinte, prima Tab.
\n' + 27 | '\n' + 28 | 'Para se mover de uma secção de IU para a anterior, prima Shift+Tab.
\n' + 29 | '\n' + 30 | 'A ordem de tabulação destas secções de IU é:
\n' + 31 | '\n' + 32 | 'Se uma secção de IU não estiver presente, é ignorada.
\n' + 43 | '\n' + 44 | 'Se o rodapé tiver foco de navegação com teclado e não existir uma barra lateral visível, premir Shift+Tab\n' + 45 | ' move o foco para o primeiro grupo da barra de ferramentas e não para o último.
\n' + 46 | '\n' + 47 | 'Para se mover de um elemento de IU para o seguinte, prima a tecla de seta adequada.
\n' + 50 | '\n' + 51 | 'As teclas de seta Para a esquerda e Para a direita
\n' + 52 | '\n' + 53 | 'As teclas de seta Para cima e Para baixo
\n' + 61 | '\n' + 62 | 'As teclas de seta deslocam-se ciclicamente na secção de IU em foco.
\n' + 68 | '\n' + 69 | 'Para fechar um menu aberto, um submenu aberto ou um menu de pop-up aberto, prima a tecla Esc.
\n' + 70 | '\n' + 71 | 'Se o foco atual estiver no "topo" de determinada secção de IU, premir a tecla Esc também fecha\n' + 72 | ' completamente a navegação com teclado.
\n' + 73 | '\n' + 74 | 'Quando o item de menu ou o botão da barra de ferramentas pretendido estiver realçado, prima Retrocesso, Enter\n' + 77 | ' ou a Barra de espaço para executar o item.
\n' + 78 | '\n' + 79 | 'Nos diálogos sem separadores, o primeiro componente interativo fica em foco quando o diálogo abre.
\n' + 82 | '\n' + 83 | 'Navegue entre componentes interativos do diálogo, premindo Tab ou Shift+Tab.
\n' + 84 | '\n' + 85 | 'Nos diálogos com separadores, o primeiro botão no menu do separador fica em foco quando o diálogo abre.
\n' + 88 | '\n' + 89 | 'Navegue entre os componentes interativos deste separador do diálogo, premindo Tab ou\n' + 90 | ' Shift+Tab.
\n' + 91 | '\n' + 92 | 'Mude para outro separador do diálogo colocando o menu do separador em foco e, em seguida, premindo a tecla de seta\n' + 93 | ' adequada para se deslocar ciclicamente pelos separadores disponíveis.
\n'); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/help/js/i18n/keynav/nl.js: -------------------------------------------------------------------------------- 1 | tinymce.Resource.add('tinymce.html-i18n.help-keynav.nl', 2 | 'De navigatie start bij het eerste UI-item, dat wordt gemarkeerd of onderstreept als het eerste item zich in\n' + 22 | ' in het elementenpad van de voettekst bevindt.
\n' + 23 | '\n' + 24 | 'Druk op Tab om naar de volgende UI-sectie te gaan.
\n' + 27 | '\n' + 28 | 'Druk op Shift+Tab om naar de vorige UI-sectie te gaan.
\n' + 29 | '\n' + 30 | 'De Tab-volgorde van deze UI-secties is:
\n' + 31 | '\n' + 32 | 'Als een UI-sectie niet aanwezig is, wordt deze overgeslagen.
\n' + 43 | '\n' + 44 | 'Als de focus van de toetsenbordnavigatie is ingesteld op de voettekst en er geen zichtbare zijbalk is, kun je op Shift+Tab drukken\n' + 45 | ' om de focus naar de eerste werkbalkgroep in plaats van de laatste te verplaatsen.
\n' + 46 | '\n' + 47 | 'Druk op de pijltjestoets om naar het betreffende UI-element te gaan.
\n' + 50 | '\n' + 51 | 'Met de pijltjestoetsen Links en Rechts
\n' + 52 | '\n' + 53 | 'Met de pijltjestoetsen Omlaag en Omhoog
\n' + 61 | '\n' + 62 | 'Met de pijltjestoetsen wissel je binnen de UI-sectie waarop de focus is ingesteld.
\n' + 68 | '\n' + 69 | 'Druk op de toets Esc om een geopend menu, submenu of pop-upmenu te sluiten.
\n' + 70 | '\n' + 71 | "Als de huidige focus is ingesteld 'bovenaan' een bepaalde UI-sectie, kun je op de toets Esc drukken\n" + 72 | ' om de toetsenbordnavigatie af te sluiten.
\n' + 73 | '\n' + 74 | 'Als het gewenste menu-item of de gewenste werkbalkknop is gemarkeerd, kun je op Return, Enter\n' + 77 | ' of de spatiebalk drukken om het item uit te voeren.
\n' + 78 | '\n' + 79 | 'Als een dialoogvenster zonder tabblad wordt geopend, wordt de focus ingesteld op het eerste interactieve onderdeel.
\n' + 82 | '\n' + 83 | 'Je kunt navigeren tussen interactieve onderdelen van een dialoogvenster door op Tab of Shift+Tab te drukken.
\n' + 84 | '\n' + 85 | 'Als een dialoogvenster met tabblad wordt geopend, wordt de focus ingesteld op de eerste knop in het tabbladmenu.
\n' + 88 | '\n' + 89 | 'Je kunt navigeren tussen interactieve onderdelen van dit tabblad van het dialoogvenster door op Tab of\n' + 90 | ' Shift+Tab te drukken.
\n' + 91 | '\n' + 92 | 'Je kunt overschakelen naar een ander tabblad van het dialoogvenster door de focus in te stellen op het tabbladmenu en vervolgens op de juiste pijltjestoets\n' + 93 | ' te drukken om tussen de beschikbare tabbladen te wisselen.
\n'); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/help/js/i18n/keynav/nb_NO.js: -------------------------------------------------------------------------------- 1 | tinymce.Resource.add('tinymce.html-i18n.help-keynav.nb_NO', 2 | 'Navigeringen starter ved det første grensesnittelementet, som utheves, eller understrekes når det gjelder det første elementet i\n' + 22 | ' elementstien i bunnteksten.
\n' + 23 | '\n' + 24 | 'Du kan bevege deg fra én grensesnittdel til den neste ved å trykke på tabulatortasten.
\n' + 27 | '\n' + 28 | 'Du kan bevege deg fra én grensesnittdel til den forrige ved å trykke på Shift + tabulatortasten.
\n' + 29 | '\n' + 30 | 'Rekkefølgen til tabulatortasten gjennom grensesnittdelene er:
\n' + 31 | '\n' + 32 | 'Hvis en grensesnittdel ikke er til stede, blir den hoppet over.
\n' + 43 | '\n' + 44 | 'Hvis tastaturnavigeringen har uthevet bunnteksten og det ikke finnes en synlig sidestolpe, kan du trykke på Shift + tabulatortasten\n' + 45 | ' for å flytte fokuset til den første gruppen på verktøylinjen i stedet for den siste.
\n' + 46 | '\n' + 47 | 'Du kan bevege deg fra ett grensesnittelement til det neste ved å trykke på den aktuelle piltasten.
\n' + 50 | '\n' + 51 | 'De venstre og høyre piltastene
\n' + 52 | '\n' + 53 | 'Ned- og opp-piltastene
\n' + 61 | '\n' + 62 | 'Med piltastene kan du bevege deg innenfor den uthevede grensesnittdelen.
\n' + 68 | '\n' + 69 | 'Du kan lukke en åpen meny, en åpen undermeny eller en åpen hurtigmeny ved å klikke på Esc-tasten.
\n' + 70 | '\n' + 71 | 'Hvis det øverste nivået i en grensesnittdel er uthevet, kan du ved å trykke på Esc også avslutte\n' + 72 | ' tastaturnavigeringen helt.
\n' + 73 | '\n' + 74 | 'Når det ønskede menyelementet eller verktøylinjeknappen er uthevet, trykker du på Retur, Enter,\n' + 77 | ' eller mellomromstasten for å utføre elementet.
\n' + 78 | '\n' + 79 | 'I dialogbokser uten faner blir den første interaktive komponenten uthevet når dialogboksen åpnes.
\n' + 82 | '\n' + 83 | 'Naviger mellom interaktive komponenter i dialogboksen ved å trykke på tabulatortasten eller Shift + tabulatortasten.
\n' + 84 | '\n' + 85 | 'I fanebaserte dialogbokser blir den første knappen i fanemenyen uthevet når dialogboksen åpnes.
\n' + 88 | '\n' + 89 | 'Naviger mellom interaktive komponenter i fanen ved å trykke på tabulatortasten eller\n' + 90 | ' Shift + tabulatortasten.
\n' + 91 | '\n' + 92 | 'Veksle til en annen fane i dialogboksen ved å utheve fanemenyen, og trykk deretter på den aktuelle piltasten\n' + 93 | ' for å bevege deg mellom de tilgjengelige fanene.
\n'); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/help/js/i18n/keynav/hu_HU.js: -------------------------------------------------------------------------------- 1 | tinymce.Resource.add('tinymce.html-i18n.help-keynav.hu_HU', 2 | 'A navigáció az első felhasználói felületi elemnél kezdődik, amelyet a rendszer kiemel, illetve aláhúz, amennyiben az az első elem\n' + 22 | ' a lábléc elemútvonalán.
\n' + 23 | '\n' + 24 | 'A felhasználói felület következő szakaszára váltáshoz nyomja meg a Tab billentyűt.
\n' + 27 | '\n' + 28 | 'A felhasználói felület előző szakaszára váltáshoz nyomja meg a Shift+Tab billentyűt.
\n' + 29 | '\n' + 30 | 'A Tab billentyűvel a felhasználói felület szakaszai között a következő sorrendben vált:
\n' + 31 | '\n' + 32 | 'Ha a felhasználói felület valamelyik eleme nincs jelen, a rendszer kihagyja.
\n' + 43 | '\n' + 44 | 'Ha a billentyűzetes navigáció fókusza a láblécen van, és nincs látható oldalsáv, a Shift+Tab\n' + 45 | ' billentyűkombináció lenyomásakor az első eszköztárcsoportra ugrik a fókusz, nem az utolsóra.
\n' + 46 | '\n' + 47 | 'A felhasználói felület következő elemére váltáshoz nyomja meg a megfelelő nyílbillentyűt.
\n' + 50 | '\n' + 51 | 'A bal és a jobb nyílgomb
\n' + 52 | '\n' + 53 | 'A le és a fel nyílgomb
\n' + 61 | '\n' + 62 | 'A nyílbillentyűk lenyomásával körkörösen lépkedhet a fókuszban lévő felhasználói felületi szakasz elemei között.
\n' + 68 | '\n' + 69 | 'A megnyitott menüket, almenüket és előugró menüket az Esc billentyűvel zárhatja be.
\n' + 70 | '\n' + 71 | 'Ha a fókusz az aktuális felületi elem „felső” részén van, az Esc billentyűvel az egész\n' + 72 | ' billentyűzetes navigációból kilép.
\n' + 73 | '\n' + 74 | 'Amikor a kívánt menüelem vagy eszköztárgomb van kijelölve, nyomja meg a Return, az Enter\n' + 77 | ' vagy a Szóköz billentyűt az adott elem vagy gomb aktiválásához.
\n' + 78 | '\n' + 79 | 'A lapokkal nem rendelkező párbeszédablakokban az első interaktív összetevő kapja a fókuszt, amikor a párbeszédpanel megnyílik.
\n' + 82 | '\n' + 83 | 'A párbeszédpanelek interaktív összetevői között a Tab vagy a Shift+Tab billentyűvel navigálhat.
\n' + 84 | '\n' + 85 | 'A lapokkal rendelkező párbeszédablakokban a lapmenü első gombja kapja a fókuszt, amikor a párbeszédpanel megnyílik.
\n' + 88 | '\n' + 89 | 'A párbeszédpanel e lapjának interaktív összetevői között a Tab vagy\n' + 90 | ' Shift+Tab billentyűvel navigálhat.
\n' + 91 | '\n' + 92 | 'A párbeszédablak másik lapjára úgy léphet, hogy a fókuszt a lapmenüre állítja, majd lenyomja a megfelelő nyílbillentyűt\n' + 93 | ' a rendelkezésre álló lapok közötti lépkedéshez.
\n'); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/help/js/i18n/keynav/cs.js: -------------------------------------------------------------------------------- 1 | tinymce.Resource.add('tinymce.html-i18n.help-keynav.cs', 2 | 'Navigace začne u první položky uživatelského rozhraní, která bude zvýrazněna nebo v případě první položky\n' + 22 | ' cesty k prvku zápatí podtržena.
\n' + 23 | '\n' + 24 | 'Stisknutím klávesy Tab se posunete z jednoho oddílu uživatelského rozhraní na další.
\n' + 27 | '\n' + 28 | 'Stisknutím kláves Shift+Tab se posunete z jednoho oddílu uživatelského rozhraní na předchozí.
\n' + 29 | '\n' + 30 | 'Pořadí přepínání mezi oddíly uživatelského rozhraní pomocí klávesy Tab:
\n' + 31 | '\n' + 32 | 'Pokud nějaký oddíl uživatelského rozhraní není přítomen, je přeskočen.
\n' + 43 | '\n' + 44 | 'Pokud je zápatí vybrané pro navigaci pomocí klávesnice a není zobrazen žádný boční panel, stisknutím kláves Shift+Tab\n' + 45 | ' přejdete na první skupinu panelu nástrojů, nikoli na poslední.
\n' + 46 | '\n' + 47 | 'Chcete-li se přesunout z jednoho prvku uživatelského rozhraní na další, stiskněte příslušnou klávesu s šipkou.
\n' + 50 | '\n' + 51 | 'Klávesy s šipkou vlevo a vpravo
\n' + 52 | '\n' + 53 | 'Klávesy se šipkou dolů a nahoru
\n' + 61 | '\n' + 62 | 'Šipky provádí přepínání v rámci vybraného oddílu uživatelského rozhraní.
\n' + 68 | '\n' + 69 | 'Chcete-li zavřít otevřenou nabídku, podnabídku nebo místní nabídku, stiskněte klávesu Esc.
\n' + 70 | '\n' + 71 | 'Pokud je aktuálně vybrána horní část oddílu uživatelského rozhraní, stisknutím klávesy Esc zcela ukončíte také\n' + 72 | ' navigaci pomocí klávesnice.
\n' + 73 | '\n' + 74 | 'Pokud je zvýrazněna požadovaná položka nabídky nebo tlačítko panelu nástrojů, stisknutím klávesy Return, Enter\n' + 77 | ' nebo mezerníku provedete příslušný příkaz.
\n' + 78 | '\n' + 79 | 'Při otevření dialogových oken bez záložek přejdete na první interaktivní komponentu.
\n' + 82 | '\n' + 83 | 'Přecházet mezi interaktivními komponentami dialogového okna můžete stisknutím klávesy Tab nebo kombinace Shift+Tab.
\n' + 84 | '\n' + 85 | 'Při otevření dialogových oken se záložkami přejdete na první tlačítko v nabídce záložek.
\n' + 88 | '\n' + 89 | 'Přecházet mezi interaktivními komponentami této záložky dialogového okna můžete stisknutím klávesy Tab nebo\n' + 90 | ' kombinace Shift+Tab.
\n' + 91 | '\n' + 92 | 'Chcete-li přepnout na další záložku dialogového okna, přejděte na nabídku záložek a poté můžete stisknutím požadované šipky\n' + 93 | ' přepínat mezi dostupnými záložkami.
\n'); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/help/js/i18n/keynav/kk.js: -------------------------------------------------------------------------------- 1 | tinymce.Resource.add('tinymce.html-i18n.help-keynav.kk', 2 | 'Навигация бөлектелетін немесе Төменгі деректеме элементінің жолындағы бірінші элемент жағдайында асты сызылатын\n' + 22 | ' бірінші ПИ элементінен басталады.
\n' + 23 | '\n' + 24 | 'Бір ПИ бөлімінен келесісіне өту үшін Tab пернесін басыңыз.
\n' + 27 | '\n' + 28 | 'Бір ПИ бөлімінен алдыңғысына өту үшін Shift+Tab пернесін басыңыз.
\n' + 29 | '\n' + 30 | 'Осы ПИ бөлімдерінің Tab реті:
\n' + 31 | '\n' + 32 | 'ПИ бөлімі көрсетілмесе, ол өткізіп жіберіледі.
\n' + 43 | '\n' + 44 | 'Төменгі деректемеде пернетақта навигациясының фокусы болса және бүйірлік жолақ көрінбесе, Shift+Tab тіркесімін басу әрекеті\n' + 45 | ' фокусты соңғысы емес, бірінші құралдар тақтасы тобына жылжытады.
\n' + 46 | '\n' + 47 | 'Бір ПИ элементінен келесісіне өту үшін Arrow (Көрсеткі) пернесін басыңыз.
\n' + 50 | '\n' + 51 | 'Left (Сол жақ) және Right (Оң жақ) көрсеткі пернелері
\n' + 52 | '\n' + 53 | 'Down (Төмен) және Up (Жоғары) көрсеткі пернелері
\n' + 61 | '\n' + 62 | 'Фокусталған ПИ бөліміндегі Arrow (Көрсеткі) пернелерінің циклі.
\n' + 68 | '\n' + 69 | 'Ашық мәзірді жабу үшін ішкі мәзірді ашып немесе ашылмалы мәзірді ашып, Esc пернесін басыңыз.
\n' + 70 | '\n' + 71 | 'Ағымдағы фокус белгілі бір ПИ бөлімінің «үстінде» болса, Esc пернесін басу әрекеті пернетақта\n' + 72 | ' навигациясын толығымен жабады.
\n' + 73 | '\n' + 74 | 'Қажетті мәзір элементі немесе құралдар тақтасы түймесі бөлектелген кезде, элементті орындау үшін Return (Қайтару), Enter (Енгізу)\n' + 77 | ' немесе Space bar (Бос орын) пернесін басыңыз.
\n' + 78 | '\n' + 79 | 'Белгіленбеген диалог терезелерінде диалог терезесі ашылған кезде бірінші интерактивті құрамдас фокусталады.
\n' + 82 | '\n' + 83 | 'Tab немесе Shift+Tab пернесін басу арқылы интерактивті диалог терезесінің құрамдастары арасында навигациялаңыз.
\n' + 84 | '\n' + 85 | 'Белгіленген диалог терезелерінде диалог терезесі ашылған кезде қойынды мәзіріндегі бірінші түйме фокусталады.
\n' + 88 | '\n' + 89 | 'Tab немесе\n' + 90 | ' Shift+Tab пернесін басу арқылы осы диалог терезесі қойындысының интерактивті құрамдастары арасында навигациялаңыз.
\n' + 91 | '\n' + 92 | 'Қойынды мәзірінің фокусын беру арқылы басқа диалог терезесінің қойындысына ауысып, тиісті Arrow (Көрсеткі)\n' + 93 | ' пернесін басу арқылы қолжетімді қойындылар арасында айналдыруға болады.
\n'); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/help/js/i18n/keynav/sl_SI.js: -------------------------------------------------------------------------------- 1 | tinymce.Resource.add('tinymce.html-i18n.help-keynav.sl_SI', 2 | 'Krmarjenje se bo začelo s prvim elementom uporabniškega vmesnika, ki bo izpostavljena ali podčrtan, če gre za prvi element na\n' + 22 | ' poti do elementa noge.
\n' + 23 | '\n' + 24 | 'Če se želite pomakniti z enega dela uporabniškega vmesnika na naslednjega, pritisnite tabulatorko.
\n' + 27 | '\n' + 28 | 'Če se želite pomakniti z enega dela uporabniškega vmesnika na prejšnjega, pritisnite shift + tabulatorko.
\n' + 29 | '\n' + 30 | 'Zaporedje teh razdelkov uporabniškega vmesnika, ko pritiskate tabulatorko, je:
\n' + 31 | '\n' + 32 | 'Če razdelek uporabniškega vmesnika ni prisoten, je preskočen.
\n' + 43 | '\n' + 44 | 'Če ima noga fokus za krmarjenje s tipkovnico in ni vidne stranske vrstice, s pritiskom na shift + tabulatorko\n' + 45 | ' fokus premaknete na prvo skupino orodne vrstice, ne zadnjo.
\n' + 46 | '\n' + 47 | 'Če se želite premakniti z enega elementa uporabniškega vmesnika na naslednjega, pritisnite ustrezno puščično tipko.
\n' + 50 | '\n' + 51 | 'Leva in desna puščična tipka
\n' + 52 | '\n' + 53 | 'Spodnja in zgornja puščična tipka
\n' + 61 | '\n' + 62 | 'Puščične tipke omogočajo kroženje znotraj razdelka uporabniškega vmesnika, na katerem je fokus.
\n' + 68 | '\n' + 69 | 'Če želite zapreti odprt meni, podmeni ali pojavni meni, pritisnite tipko Esc.
\n' + 70 | '\n' + 71 | 'Če je trenutni fokus na »vrhu« določenega razdelka uporabniškega vmesnika, s pritiskom tipke Esc zaprete\n' + 72 | ' tudi celotno krmarjenje s tipkovnico.
\n' + 73 | '\n' + 74 | 'Ko je označen želeni menijski element ali orodja vrstica, pritisnite vračalko, Enter\n' + 77 | ' ali preslednico, da izvedete element.
\n' + 78 | '\n' + 79 | 'Ko odprete pogovorno okno brez zavihkov, ima fokus prva interaktivna komponenta.
\n' + 82 | '\n' + 83 | 'Med interaktivnimi komponentami pogovornega okna se premikate s pritiskom tabulatorke ali kombinacije tipke shift + tabulatorke.
\n' + 84 | '\n' + 85 | 'Ko odprete pogovorno okno z zavihki, ima fokus prvi gumb v meniju zavihka.
\n' + 88 | '\n' + 89 | 'Med interaktivnimi komponentami tega zavihka pogovornega okna se premikate s pritiskom tabulatorke ali\n' + 90 | ' kombinacije tipke shift + tabulatorke.
\n' + 91 | '\n' + 92 | 'Na drug zavihek pogovornega okna preklopite tako, da fokus prestavite na meni zavihka in nato pritisnete ustrezno puščično\n' + 93 | ' tipko, da se pomaknete med razpoložljivimi zavihki.
\n'); -------------------------------------------------------------------------------- /tinymce/static/tinymce/plugins/help/js/i18n/keynav/ru.js: -------------------------------------------------------------------------------- 1 | tinymce.Resource.add('tinymce.html-i18n.help-keynav.ru', 2 | 'Первый доступный для управления элемент интерфейса будет выделен цветом или подчеркнут (если он находится\n' + 22 | ' в пути элементов нижнего колонтитула).
\n' + 23 | '\n' + 24 | 'Чтобы перейти из текущего раздела интерфейса в следующий, нажмите Tab.
\n' + 27 | '\n' + 28 | 'Чтобы перейти из текущего раздела интерфейса в предыдущий, нажмите Shift+Tab.
\n' + 29 | '\n' + 30 | 'Вкладки разделов интерфейса расположены в следующем порядке:
\n' + 31 | '\n' + 32 | 'Если раздел интерфейса отсутствует, он пропускается.
\n' + 43 | '\n' + 44 | 'Если при управлении с клавиатуры фокус находится на нижнем колонтитуле, а видимая боковая панель отсутствует, то при нажатии сочетания клавиш Shift+Tab\n' + 45 | ' фокус переносится на первую группу панели инструментов, а не на последнюю.
\n' + 46 | '\n' + 47 | 'Чтобы перейти от текущего элемента интерфейса к следующему, нажмите соответствующую клавишу со стрелкой.
\n' + 50 | '\n' + 51 | 'Клавиши со стрелками влево и вправо позволяют
\n' + 52 | '\n' + 53 | 'Клавиши со стрелками вниз и вверх позволяют
\n' + 61 | '\n' + 62 | 'При использовании клавиш со стрелками вы будете циклически перемещаться по элементам в пределах выбранного раздела интерфейса.
\n' + 68 | '\n' + 69 | 'Чтобы закрыть открытое меню, его раздел или всплывающее меню, нажмите клавишу Esc.
\n' + 70 | '\n' + 71 | 'Если фокус находится наверху какого-либо раздела интерфейса, нажатие клавиши Esc также приведет\n' + 72 | ' к выходу из режима управления с помощью клавиатуры.
\n' + 73 | '\n' + 74 | 'Когда элемент меню или кнопка панели инструментов будут выделены, нажмите Return, Enter\n' + 77 | ' или Space, чтобы их активировать.
\n' + 78 | '\n' + 79 | 'При открытии диалогового окна без вкладок фокус переносится на первый интерактивный компонент.
\n' + 82 | '\n' + 83 | 'Для перехода между интерактивными компонентами диалогового окна нажимайте Tab или Shift+Tab.
\n' + 84 | '\n' + 85 | 'При открытии диалогового окна с вкладками фокус переносится на первую кнопку в меню вкладок.
\n' + 88 | '\n' + 89 | 'Для перехода между интерактивными компонентами этой вкладки диалогового окна нажимайте Tab или\n' + 90 | ' Shift+Tab.
\n' + 91 | '\n' + 92 | 'Для перехода на другую вкладку диалогового окна переместите фокус на меню вкладок, а затем используйте клавиши со стрелками\n' + 93 | ' для циклического переключения между доступными вкладками.
\n'); --------------------------------------------------------------------------------