├── docs ├── _data │ ├── .gitkeep │ ├── langlist.json │ ├── lang.json │ ├── wordCount.json │ └── latestTranslations.json ├── matrix-legend.png ├── _includes │ ├── spec-listing.html │ └── translation-details.html ├── show-details.js ├── translations.html ├── authorized.html ├── filter.js ├── _config.yml ├── feed.xml ├── matrix.html ├── _layouts │ └── template.html └── contribute.html ├── w3c.json ├── src ├── package.json ├── .gitignore └── fetch-translation-data.js ├── .github └── workflows │ └── update.yml └── design ├── rec-workflow-mvp.txt ├── README.md └── rec-workflow.txt /docs/_data/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /w3c.json: -------------------------------------------------------------------------------- 1 | { 2 | "contacts": "dontcallmedom", 3 | "repo-type": "tool" 4 | } 5 | -------------------------------------------------------------------------------- /src/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "node-w3capi": "^2.1.0" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /docs/matrix-legend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/translation-management/HEAD/docs/matrix-legend.png -------------------------------------------------------------------------------- /src/.gitignore: -------------------------------------------------------------------------------- 1 | www/_data/*.json 2 | config.json 3 | Gemfile.lock 4 | node_modules 5 | package-lock.json 6 | .sass-cache/ 7 | -------------------------------------------------------------------------------- /docs/_includes/spec-listing.html: -------------------------------------------------------------------------------- 1 |
2 |

{{cft.title}}

3 | 10 |
11 | -------------------------------------------------------------------------------- /docs/_data/langlist.json: -------------------------------------------------------------------------------- 1 | [ 2 | "ar", 3 | "be", 4 | "bg", 5 | "ca", 6 | "zh-hans", 7 | "zh-hant", 8 | "hr", 9 | "cs", 10 | "da", 11 | "nl", 12 | "en", 13 | "et", 14 | "fi", 15 | "fr", 16 | "de", 17 | "el", 18 | "he", 19 | "hi", 20 | "hu", 21 | "it", 22 | "ja", 23 | "ko", 24 | "lt", 25 | "no", 26 | "fa", 27 | "pl", 28 | "pt", 29 | "pt-br", 30 | "pt-pt", 31 | "ro", 32 | "ru", 33 | "sk", 34 | "es", 35 | "sv", 36 | "tl", 37 | "th", 38 | "tr", 39 | "uk", 40 | "vi" 41 | ] -------------------------------------------------------------------------------- /docs/_includes/translation-details.html: -------------------------------------------------------------------------------- 1 | {{site.data.lang[translation.language].nativeName}} ({{site.data.lang[translation.language].name}}){% if translation.authorized %} Authorized{% endif %}: {{translation.title}} 2 | {% if translation.authorized %} 3 | — Lead Translation Organization: {{ translation['lto_name'] }} 4 | {% else %} 5 | {% if translation.translators.size > 0 %} 6 | — Translators: {% for translator in translation.translators %}{{translator.name}}{% endfor %} 7 | {% else %} 8 | — {{ translation.comments | replace: "Translation author", "Translator"}} 9 | {% endif %} 10 | {% endif %} 11 | 12 | -------------------------------------------------------------------------------- /docs/show-details.js: -------------------------------------------------------------------------------- 1 | var targetId = location.hash.slice(1); 2 | var match; 3 | if (!targetId && (match = location.search.match(/^\?technology=(.*)/))) { 4 | targetId = "s-" + match[1]; 5 | } 6 | var target = document.getElementById(targetId); 7 | if (target) { 8 | var childDetails = target.querySelectorAll("details"); 9 | for (var i = 0 ; i < childDetails.length ; i++) { 10 | childDetails[i].open = true; 11 | } 12 | var cursor = target; 13 | while (cursor.parentElement && cursor.parentElement.tagName !== "DETAILS") { 14 | cursor = cursor.parentElement; 15 | } 16 | if (cursor && cursor.parentElement) { 17 | cursor.parentElement.open = true; 18 | } 19 | target.scrollIntoView(); 20 | } 21 | 22 | if (match = location.search.match(/^\?filter=(.*)/)) { 23 | var filter = match[1]; 24 | if (filter) { 25 | document.querySelector("h1").appendChild(document.createTextNode(" matching “" + filter + "”")); 26 | [...document.querySelectorAll("section section")].forEach(s => { 27 | if (s.querySelector("h2").textContent.match(new RegExp(filter, "i"))) { 28 | s.classList.remove("hidden"); 29 | } else { 30 | s.classList.add("hidden"); 31 | } 32 | }); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /.github/workflows/update.yml: -------------------------------------------------------------------------------- 1 | name: Update translation data 2 | 3 | on: 4 | # schedule: 5 | # - cron: '0 * * * *' 6 | workflow_dispatch: 7 | 8 | jobs: 9 | build: 10 | 11 | runs-on: ubuntu-latest 12 | 13 | steps: 14 | - uses: actions/checkout@v4 15 | - name: Use Node.js 16 | uses: actions/setup-node@v4 17 | with: 18 | node-version: '20.x' 19 | - run: npm install 20 | working-directory: ./src 21 | - name: Run update script 22 | run: node fetch-translation-data.js 23 | working-directory: ./src 24 | - name: Commit changes 25 | run: | 26 | git config user.name "w3c-translation-bot" 27 | git config user.email "<>" 28 | git add docs/_data/langlist.json docs/_data/recs.json docs/_data/translations.json docs/_data/latestTranslations.json docs/_data/byLanguage.json 29 | git commit -m "Update data" 30 | git show 31 | - name: Push changes 32 | if: github.ref == 'refs/heads/main' && github.event.commits[0].author.name != 'w3c-translation-bot' 33 | run: | 34 | git remote set-url --push origin https://x-access-token:${{ secrets.GH_TOKEN }}@github.com/$GITHUB_REPOSITORY 35 | git push origin HEAD:main 36 | -------------------------------------------------------------------------------- /docs/translations.html: -------------------------------------------------------------------------------- 1 | --- 2 | title: Translations of W3C standards and drafts 3 | layout: template 4 | description: List of translated W3C Recommendations (authorized and volunteer translations) 5 | feed: https://www.w3.org/Translations/feed.xml 6 | --- 7 |

Translations of Current W3C standards and drafts

8 | 9 |

See also how to contribute to W3C translation efforts.

10 |

RSS feed

11 | {% assign cfts = site.data.translations %} 12 | {%- for cft in cfts -%} 13 | {%- if cft.isLatest -%} 14 | {% include spec-listing.html %} 15 | {%- endif -%} 16 | {%- endfor -%} 17 | 18 |

Translations of Historical Technical Reports

19 |
20 | For reference or inspiration, translations of historical Technical Reports are listed below. 21 |

Historical technical reports are ones that have been superseded or marked as obsolete.

22 | {%- for cft in site.data.translations -%} 23 | {%- if cft.isLatest -%} 24 | {%- else -%} 25 | {% include spec-listing.html %} 26 | {%- endif -%} 27 | {%- endfor -%} 28 |
29 | 30 | -------------------------------------------------------------------------------- /docs/authorized.html: -------------------------------------------------------------------------------- 1 | --- 2 | title: Authorized W3C Translations of W3C Recommendations 3 | layout: template 4 | --- 5 |

Authorized Translations of W3C Recommendations

6 |

Authorized W3C Translations are developed through a process designed to achieve quality translations through transparency and community accountability. They can be used for official purposes in languages other than English.

7 |

See also the broader list of translations of W3C Recommendations (including volunteer translations).

8 | 9 | {% assign cfts = site.data.translations | sort: "date"|reverse %} 10 | {% assign uncollapsed = true %} 11 | {%- for cft in cfts -%} 12 | {% if cft.hasAuthorizedTranslations %} 13 |
14 |

{{cft.title}}

15 | 24 |
25 | 26 | {%- endif -%} 27 | {%- endfor -%} 28 | -------------------------------------------------------------------------------- /docs/filter.js: -------------------------------------------------------------------------------- 1 | const debounce = (fn, time) => { 2 | let timeout; 3 | 4 | return function() { 5 | const functionCall = () => fn.apply(this, arguments); 6 | clearTimeout(timeout); 7 | timeout = setTimeout(functionCall, time); 8 | } 9 | } 10 | 11 | const specs = document.getElementById("specs"); 12 | const tbodies = [...document.querySelector("table").querySelectorAll("tbody")]; 13 | const rows = [...document.querySelector("table").querySelectorAll("tr")]; 14 | 15 | const filterInput = document.createElement("input"); 16 | filterInput.setAttribute("aria-label", "Filter list of specifications by title or URL"); 17 | filterInput.setAttribute("aria-controls", tbodies.map(x => x.id).join(" ")); 18 | 19 | filterInput.addEventListener("input", debounce(function(ev) { 20 | const match = new RegExp(ev.target.value, "i"); 21 | rows.forEach(tr => { 22 | const th = tr.querySelector("th"); 23 | if (!th || !th.querySelector("a")) return; 24 | if (!th.textContent.match(match) && !th.querySelector("a").href.match(match)) { 25 | tr.classList.add("hidden"); 26 | } else { 27 | tr.classList.remove("hidden"); 28 | } 29 | }); 30 | tbodies.forEach(tb => { 31 | if (tb.querySelectorAll("tr:not(.hidden)").length <= 1) { 32 | tb.querySelector("tr").classList.add("hidden"); 33 | } else { 34 | tb.querySelector("tr").classList.remove("hidden"); 35 | } 36 | }); 37 | }, 300)); 38 | specs.appendChild(document.createElement("br")); 39 | specs.appendChild(filterInput); 40 | -------------------------------------------------------------------------------- /docs/_config.yml: -------------------------------------------------------------------------------- 1 | # Welcome to Jekyll! 2 | # 3 | # This config file is meant for settings that affect your whole blog, values 4 | # which you are expected to set up once and rarely edit after that. If you find 5 | # yourself editing this file very often, consider using Jekyll's data files 6 | # feature for the data you need to update frequently. 7 | # 8 | # For technical reasons, this file is *NOT* reloaded automatically when you use 9 | # 'bundle exec jekyll serve'. If you change this file, please restart the server process. 10 | 11 | # Site settings 12 | # These are used to personalize your new site. If you look in the HTML files, 13 | # you will see them accessed via {{ site.title }}, {{ site.email }}, and so on. 14 | # You can create any custom variable you would like, and they will be accessible 15 | # in the templates via {{ site.myvariable }}. 16 | title: "W3C Specification Translations" 17 | email: dom@w3.org 18 | description: Translations of W3C Specifications 19 | baseurl: "/Translations/" # the subpath of your site, e.g. /blog 20 | url: "https://www.w3.org" # the base hostname & protocol for your site, e.g. http://example.com 21 | twitter_username: w3cdevs 22 | github_username: w3c 23 | 24 | # Build settings 25 | markdown: kramdown 26 | theme: minima 27 | #plugins: 28 | # - jekyll-feed 29 | 30 | # Exclude from processing. 31 | # The following items will not be processed, by default. Create a custom list 32 | # to override the default setting. 33 | exclude: 34 | - Gemfile 35 | - Gemfile.lock 36 | - node_modules 37 | - package.json 38 | - package-lock.json 39 | - config.json 40 | - config.json.dist 41 | - fetch-translation-data.js 42 | # - vendor/bundle/ 43 | # - vendor/cache/ 44 | # - vendor/gems/ 45 | # - vendor/ruby/ 46 | -------------------------------------------------------------------------------- /docs/feed.xml: -------------------------------------------------------------------------------- 1 | --- 2 | layout: null 3 | --- 4 | 5 | 6 | 7 | 8 | W3C Translations 9 | Recent translations of W3C specifications 10 | https://www.w3.org/Translations/ 11 | {{site.data.latestTranslations[0].published}} 12 | {% assign translations = site.data.latestTranslations %} 13 | 14 | 15 | {%- for translation in translations -%} 16 | {%- if translation.states contains 'published' -%} 17 | 18 | {%- endif -%} 19 | {%- endfor -%} 20 | 21 | 22 | 23 | {%- for translation in translations -%} 24 | {%- if translation.states contains 'published' -%} 25 | 26 | {% if translation.authorized %}Authorized {% endif %}Translation of “{{translation['call-for-translation'].title}}” in {{site.data.lang[translation.language].name}}: “{{translation.title}}” 27 | {% if translation.authorized %}Authorized{% endif %} Translation of “{{translation['call-for-translation'].title}}” in {{site.data.lang[translation.language].name}}: “{{translation.title}}” by 28 | {% if translation.authorized %} 29 | Lead Translation Organization: {{ translation['lto_name'] }} 30 | {% else %} 31 | {% if translation.translators.size > 0 %} 32 | Translators: {% for translator in translation.translators %}{{translator.name}}{% endfor %} 33 | {% else %} 34 | {{ translation.comments | replace: "Translation author", "Translator"}} 35 | {% endif %} 36 | {% endif %} 37 | 38 | {{translation.uri}} 39 | {{translation.published}} 40 | 41 | {% endif %} 42 | {%- endfor -%} 43 | 44 | -------------------------------------------------------------------------------- /design/rec-workflow-mvp.txt: -------------------------------------------------------------------------------- 1 | // to be visualized with https://swimlanes.io/ 2 | 3 | title: W3C Recommendation Translation Workflow - Initial release 4 | order: Transl X, Repo, Other Transl, reviewer, Transl Page, Transl Manager, Admin Repo, W3C Sys 5 | 6 | 7 | 8 | W3C Sys -> Transl Page: Lists specs translated & to be translated 9 | 10 | Transl X -> Transl X: gets github account 11 | Transl X -> W3C Sys: gets W3C account 12 | Transl X -> W3C Sys: connects W3C and github accounts 13 | _: ** Intent to translate ** 14 | Transl X -> Transl Page: Visits 15 | Transl Page -> Transl X: Shows specs to be translated with links to repo declare intent 16 | Transl X -> Admin Repo: raises an issue as intent to translate 17 | note: using pre-populated github issue creation form with target language, target spec (*which URL to use as basis?*) 18 | Admin Repo -> Repo: creates and prepopulates with template 19 | note: one repo per spec & language; not clear how much the template should cover initially 20 | Transl Manager -> W3C Sys: notifies of ongoing translation 21 | W3C Sys -> Transl Page: updates to signal ongoing translation 22 | Admin Repo -> Other Transl: sends notification 23 | note: general notif to w3c-translators 24 | 25 | _: ** Translation development ** 26 | Transl X -> Repo: Forks 27 | note: Fork is needed later for submission as pull request; encouragement but no requirement to use the fork for the collaborative development of the translation 28 | Other Transl --> Transl X: offers to collaborate 29 | Transl X -> Transl X: Develops translation 30 | ...: translating 31 | 32 | _: ** Translation submission ** 33 | Transl X -> Repo: Submit pull request with proposed translation 34 | Repo -> reviewer: requests review 35 | Repo -> Repo: runs automatic QA checks 36 | if: Translation matches criteria 37 | Repo -> Repo: validates automated checks 38 | reviewer -> Repo: Approves 39 | Repo -> Transl Manager: notifies 40 | Transl Manager -> W3C Sys: notifies 41 | Transl Manager -> Admin Repo: Closes intent to translate 42 | W3C Sys -> W3C Sys: publishes translation 43 | W3C Sys -> Transl Page: Adds link to published translation 44 | else: Translation does not match quality criteria 45 | Transl Manager -> Transl X: discusses next step 46 | if: no path to publishing translation 47 | Transl Manager -> Admin Repo: Closes intent to translate 48 | Transl Manager -> W3C Sys: notifies no longer ongoing translation 49 | W3C Sys -> Transl Page: Removes "on-going" flag for translation 50 | end 51 | end 52 | -------------------------------------------------------------------------------- /design/README.md: -------------------------------------------------------------------------------- 1 | In January 2017, W3C [announced](http://lists.w3.org/Archives/Public/w3c-translators/2017JanMar/0000.html) it had to stop the maintenance our translation database where volunteer translations of W3C specifications and documents had been tracked. 2 | 3 | This repository serves as a tracker for the development and deployment of a new approach to the management of volunteer translations, which would offer stronger 4 | support to volunteer translators and an improved ability to W3C to promote their translations. 5 | 6 | The main orientations of the new system would be: 7 | * making it based on github - all W3C groups develop their specifications on github nowadays, and anchoring the translation work on the same platform provides opportunities for better alignment with the specification process, as well as a natural platform for collaborating on the development and maintenance of translations 8 | * setting up some minimal level of quality reviews on translations - the volunteer translation program has in the past been abused by spammers, which among thing meant that the value of the otherwise excellent work done by most of our translators would be diluted by some less reliable work 9 | * having W3C automatically publish a copy of the translated documents under its own control - this is to ensure that the useful work done by translators remain available to the community even after the said translators are no longer interested or in a position to keep it available on their own site 10 | 11 | 12 | In more details, the new workflow would be: 13 | * a translator signals their intent to translate by raising an issue in 14 | a well-defined github repository (see [#1](https://github.com/w3c/translation-management/issues/1)) 15 | * as an opt-in, other translators of that language get notified of that intent (and possibly, signal their intent to help with the effort) (see [#1](https://github.com/w3c/translation-management/issues/1)) 16 | * once the translator(s) finishes the translation, they bring the translated document via a pull request to a well-defined repo 17 | * a team of identified reviewers for that language get notified and are expected to make a high-level review of the document to ensure a minimum level of quality (e.g. avoid spam, low-quality automated translation); optionally, these reviewers can provide more detailed feedback as non-blocking requests for enhancements (see [#2](https://github.com/w3c/translation-management/issues/2)) 18 | * via a github automated check, a number of automatic validation are run on the translation (presence of a disclaimer, HTML validity, ...) (see [#2](https://github.com/w3c/translation-management/issues/2)) 19 | * once these automated checks pass and at least one reviewer validates the translation, the translation is automatically published by W3C and linked from relevant W3C pages (see [#4](https://github.com/w3c/translation-management/issues/4)) 20 | * the same repository where the translation document was brought via a pull request is used to maintain the translations as changes in the original document or mistakes in the translation get reported (see [#3](https://github.com/w3c/translation-management/issues/3)) 21 | -------------------------------------------------------------------------------- /design/rec-workflow.txt: -------------------------------------------------------------------------------- 1 | // to be visualized with https://swimlanes.io/ 2 | 3 | title: W3C Recommendation Translation Workflow 4 | order: Transl X, Repo, Other Transl, reviewer, Transl Page, Transl Manager, Admin Repo, W3C Sys 5 | 6 | 7 | 8 | W3C Sys -> Transl Page: Lists specs translated & to be translated (possibly prioritized) 9 | Transl Manager --> W3C Sys: Prioritize specs to be translated 10 | note: probably not in initial release 11 | 12 | Transl X -> Transl X: gets github account 13 | Transl X -> W3C Sys: gets W3C account 14 | Transl X -> W3C Sys: connects W3C and github accounts 15 | _: ** Intent to translate ** 16 | Transl X -> Transl Page: Visits 17 | Transl Page -> Transl X: Shows specs to be translated with links to repo declare intent 18 | Transl X -> Admin Repo: raises an issue as intent to translate 19 | note: using pre-populated github issue creation form with target language, target spec (*which URL to use as basis?*) 20 | Admin Repo -> Repo: creates and prepopulates with template 21 | note: one repo per spec & language; not clear how much the template should cover initially; overtime, will need pre-defined translations for boilerplates 22 | Admin Repo -> W3C Sys: notifies ongoing translation 23 | W3C Sys -> Transl Page: updates to signal ongoing translation 24 | Admin Repo -> Other Transl: sends notification 25 | note: github notif as opt-in per language (*use issue watcher on admin repo?*), general notif to w3c-translators 26 | Admin Repo -> reviewer: sends github notification 27 | note: not sure that's needed 28 | 29 | _: ** Translation development ** 30 | Transl X -> Repo: Forks 31 | note: Fork is needed later for submission as pull request; encouragement but no requirement to use the fork for the collaborative development of the translation 32 | Other Transl --> Transl X: offers to collaborate 33 | Transl X -> Transl X: Develops translation 34 | ...: translating 35 | 36 | _: ** Translation submission ** 37 | Transl X -> Repo: Submit pull request with proposed translation 38 | Repo -> reviewer: requests review 39 | Repo -> Repo: runs automatic QA checks 40 | if: Translation matches criteria 41 | Repo -> Repo: validates automated checks 42 | reviewer -> Repo: Approves 43 | Repo -> W3C Sys: notifies 44 | Repo -> Admin Repo: Closes intent to translate 45 | W3C Sys -> W3C Sys: publishes translation 46 | W3C Sys -> Transl Page: Adds link to published translation 47 | else: Translation does not match quality criteria 48 | if: Transl X amenable to required changes 49 | Transl X -> Transl X: Makes required changes 50 | Transl X -> Repo: Submit updated pull request 51 | note: goes back to submission process above 52 | else: Transl X disagrees with requested changes 53 | Transl X -> Transl Manager: Requests exception 54 | note: in general, we only expect issues with automated checks - blocking from reviewer is only expected to happen in case of fraudulent-looking translations 55 | Transl Manager --> Transl X: arbitrates dispute (if any) 56 | Transl Manager --> reviewer: arbitrates dispute (if any) 57 | Transl Manager --> Repo: Lifts automated check requirement (if appropriate) 58 | else: Bad faith translation 59 | Transl Manager -> Admin Repo: Closes intent to translate 60 | Admin Repo -> W3C Sys: notifies no longer ongoing translation 61 | W3C Sys -> Transl Page: Removes "on-going" flag for translation 62 | end 63 | end 64 | 65 | _: ** Maintenance ** 66 | Transl Manager --> Repo: file issues when original spec changes 67 | note: *some of this could be automated (e.g. for the Edited Rec process)? Not sure how frequent this is* 68 | reviewer --> Repo: file requests for improvements 69 | Transl X --> Repo: submit improvements 70 | Other Transl --> Repo: submit improvements 71 | reviewer -> Repo: validates changes to published translation 72 | Repo -> Repo: runs automatic QA checks 73 | Repo -> W3C Sys: notifies 74 | W3C Sys -> W3C Sys: publishes updated translation 75 | 76 | -------------------------------------------------------------------------------- /docs/_data/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "ar": { 3 | "name": "Arabic", 4 | "nativeName": "عربي" 5 | }, 6 | "be":{ 7 | "name":"Belarusian", 8 | "nativeName":"Беларуская" 9 | }, 10 | "bg":{ 11 | "name":"Bulgarian", 12 | "nativeName":"български" 13 | }, 14 | "ca":{ 15 | "name":"Catalan", 16 | "nativeName":"Català" 17 | }, 18 | "zh-hans":{ 19 | "name": "Simplified Chinese", 20 | "nativeName": "简体中文", 21 | "sortName": "Chinese (simplified)" 22 | }, 23 | "zh-hant":{ 24 | "name": "Traditional Chinese", 25 | "nativeName": "繁體中文", 26 | "sortName": "Chinese (traditional)" 27 | }, 28 | "hr":{ 29 | "name":"Croatian", 30 | "nativeName":"hrvatski" 31 | }, 32 | "cs":{ 33 | "name":"Czech", 34 | "nativeName":"česky" 35 | }, 36 | "da":{ 37 | "name":"Danish", 38 | "nativeName":"dansk" 39 | }, 40 | "nl":{ 41 | "name":"Dutch", 42 | "nativeName":"Nederlands" 43 | }, 44 | "en":{ 45 | "name":"English", 46 | "nativeName":"English" 47 | }, 48 | "es":{ 49 | "name":"Spanish", 50 | "nativeName":"español" 51 | }, 52 | "et":{ 53 | "name":"Estonian", 54 | "nativeName":"eesti" 55 | }, 56 | "fi":{ 57 | "name":"Finnish", 58 | "nativeName":"suomi" 59 | }, 60 | "fr":{ 61 | "name":"French", 62 | "nativeName":"français" 63 | }, 64 | "de":{ 65 | "name":"German", 66 | "nativeName":"Deutsch" 67 | }, 68 | "el":{ 69 | "name":"Greek", 70 | "nativeName":"Ελληνικά" 71 | }, 72 | "hi":{ 73 | "name":"Hindi", 74 | "nativeName":"हिन्दी" 75 | }, 76 | "fa":{ 77 | "name":"Persian", 78 | "nativeName":"فارسی" 79 | }, 80 | "he":{ 81 | "name":"Hebrew", 82 | "nativeName":"עברית" 83 | }, 84 | "hu":{ 85 | "name":"Hungarian", 86 | "nativeName":"Magyar" 87 | }, 88 | "it":{ 89 | "name":"Italian", 90 | "nativeName":"Italiano" 91 | }, 92 | "ja":{ 93 | "name":"Japanese", 94 | "nativeName":"日本語" 95 | }, 96 | "ko":{ 97 | "name":"Korean", 98 | "nativeName":"한국어" 99 | }, 100 | "lt":{ 101 | "name":"Lithuanian", 102 | "nativeName":"lietuvių kalba" 103 | }, 104 | "no":{ 105 | "name":"Norwegian", 106 | "nativeName":"Norsk" 107 | }, 108 | "pl":{ 109 | "name":"Polish", 110 | "nativeName":"polski" 111 | }, 112 | "pt":{ 113 | "name":"Portuguese", 114 | "nativeName":"Português" 115 | }, 116 | "pt-pt":{ 117 | "name":"Portuguese (Portugal)", 118 | "nativeName":"Português (Portugal)" 119 | }, 120 | "pt-br":{ 121 | "name":"Portuguese (Brazil)", 122 | "nativeName":"Português (Brasil)" 123 | }, 124 | "ro":{ 125 | "name":"Romanian", 126 | "nativeName":"Română" 127 | }, 128 | "ru":{ 129 | "name":"Russian", 130 | "nativeName":"русский" 131 | }, 132 | "sk":{ 133 | "name":"Slovak", 134 | "nativeName":"slovenčina" 135 | }, 136 | "sv":{ 137 | "name":"Swedish", 138 | "nativeName":"svenska" 139 | 140 | }, 141 | "th":{ 142 | "name":"Thai", 143 | "nativeName":"ภาษาไทย" 144 | 145 | }, 146 | "tr":{ 147 | "name":"Turkish", 148 | "nativeName":"Türkçe" 149 | }, 150 | "uk":{ 151 | "name":"Ukrainian", 152 | "nativeName":"українська" 153 | }, 154 | "vi":{ 155 | "name":"Vietnamese", 156 | "nativeName":"Tiếng Việt" 157 | }, 158 | "tl": { 159 | "name": "Tagalog (Filipino)", 160 | "nativeName": "Tagalog" 161 | } 162 | 163 | } 164 | -------------------------------------------------------------------------------- /docs/matrix.html: -------------------------------------------------------------------------------- 1 | --- 2 | title: W3C Recommendations - Translation needs 3 | layout: template 4 | description: Status of existing and ongoing translations of W3C Recommendations (authorized and volunteer translations) 5 | image: https://www.w3.org/Consortium/Translation/matrix-legend.png 6 | --- 7 |

See also the list of completed translations of W3C Recommendations.

8 |

This page shows which W3C Recommendations and W3C Statements are being, have been or have not been translated. If a language does not appear in the table, it means no existing or ongoing translation is known.

9 |

See also how to contribute to W3C translation efforts.

10 |

Legend:

11 |
12 |
13 |
A translation of an outdated version of the specification exists; if you're the original translator, consider updating the translation; if you aren't and are willing to help, try contacting the original translator to see if they would accept contributed updates to their work
14 |
15 |
A translator has indicated their intent to translate the specification in the said language
16 |
👍👎
17 |
A draft Authorized Translation is under review
18 |
19 |
A volunteer translation exists
20 |
21 |
W3C has published an Authorized Translation of the specification
22 |
23 | 24 | 25 | 26 | 27 | 28 | {% assign langs = site.data.langlist|sort: "name" %} 29 | {% for lang in langs %} 30 | {% if site.data.byLanguage[lang].latestRecsTotal > 0 %} 31 | 32 | {% endif %} 33 | {% endfor %} 34 | 35 | 36 | {% assign recs = site.data.recs | where: "isLatest", true | sort: "date" | reverse %} 37 | {% assign recsByYears = recs | group_by: "year" %} 38 | {% for year in recsByYears %} 39 | 40 | 41 | {% for rec in year.items %} 42 | 43 | 44 | 45 | {% for lang in langs %} 46 | {% if site.data.byLanguage[lang].latestRecsTotal > 0 %} 47 | 50 | {% if rec.translations[lang].isOutdated %} 51 | ✗ 52 | {% elsif rec.translations[lang].authorized %} 53 | {% if rec.translations[lang].isPublished %} 54 | ✰ 55 | {% elsif rec.translations[lang].isInReview %} 56 | 👍👎 57 | {% elsif rec.translations[lang].isPending %} 58 | … 59 | {% endif %} 60 | {% else %} 61 | {% if rec.translations[lang].isPublished %} 62 | ✓ 63 | {% elsif rec.translations[lang].isPending %} 64 | … 65 | {% endif %} 66 | {% endif %} 67 | {% else %} 68 | > 69 | {% endif %} 70 | {% else %}> 71 | {% endif %} 72 | 73 | {% endif %} 74 | {% endfor %} 75 | 76 | {% endfor %} 77 | 78 | {% endfor %} 79 | 80 | 81 | 82 | {% for lang in langs %} 83 | {% if site.data.byLanguage[lang].latestRecsTotal > 0 %} 84 | 85 | {% endif %} 86 | {% endfor %} 87 | 88 |
DocumentLength (x1,000 words)
{{site.data.lang[lang].name}}
{{ year.name }}
{{rec.title}}{% if site.data.wordCount[rec.shortname] %}{{ site.data.wordCount[rec.shortname] | divided_by: 1000 | round }}{% endif %}
{{ recs.size }} Recommendations{{ site.data.byLanguage[lang].latestRecsTotal }}
89 | 90 | 92 | -------------------------------------------------------------------------------- /src/fetch-translation-data.js: -------------------------------------------------------------------------------- 1 | const fs = require("fs").promises; 2 | const w3c = require("node-w3capi"); 3 | const langs = require('../docs/_data/lang.json'); 4 | 5 | (async function() { 6 | await fs.writeFile("../docs/_data/langlist.json", 7 | JSON.stringify( 8 | Object.keys(langs).sort((l1, l2) => (langs[l1].sortName || langs[l1].name).localeCompare(langs[l2].sortName || langs[l2].name)), 9 | null, 2)); 10 | 11 | let recs; 12 | try { 13 | recs = (await w3c.specificationsByStatus('Recommendation').fetch({embed: true})).concat(await w3c.specificationsByStatus('Statement').fetch({embed: true})); 14 | } catch (err) { 15 | return console.log(err); 16 | } 17 | try { 18 | const data = await w3c.callsfortranslation().fetch({embed: true}); 19 | const trCallForTranslations = data.filter(x => x['spec-version'] && x['spec-version'].uri && x['spec-version'].uri.match(/www\.w3\.org\/TR\//)); 20 | const translations = await w3c.translations().fetch({embed: true}); 21 | const specs = await Promise.all(trCallForTranslations.map(x => w3c.specification(x['spec-version']._links.specification.href.substring('https://api.w3.org/specifications/'.length)).fetch({embed: true}))); 22 | const groupedTranslations = trCallForTranslations.sort((a,b) => a.title.localeCompare(b.title)) 23 | .map(x => { 24 | const latestVersion = specs.find(s => s._links.self.href === x['spec-version']._links.specification.href)._links['latest-version'].href; 25 | x.isLatest = x['spec-version'].status !== "Retired" && x['spec-version']._links.self.href === latestVersion; 26 | x.date = x['spec-version'].date; 27 | x.id = 's-' + x['spec-version'].shortlink.split('/')[4]; 28 | x.translations = translations.filter(t => t['call-for-translation'] && t['call-for-translation']['spec-version'] && t['call-for-translation']['spec-version'].uri && t['call-for-translation']['spec-version'].uri === x['spec-version'].uri).map(t => { t.language = t.language.toLowerCase().replace(/_/, '-'); return t; }); 29 | x.hasAuthorizedTranslations = x.translations.find(t => t.authorized && t.states.includes('published')); 30 | return x; 31 | }); 32 | const translatedRecs = recs.map(r => { 33 | r.isLatest = r._links["latest-version"].title !== "Retired"; 34 | r.date = r._links["latest-version"].href.split('/').pop().replace(/([0-9]{4})([0-9]{2})([0-9]{2})/, '$1-$2-$3'); 35 | r.year = r._links["latest-version"].href.split('/').pop().slice(0,4); 36 | r.translations = {}; 37 | const cfts = groupedTranslations.filter(s => s["spec-version"]._links.specification.href === r._links.self.href); 38 | cfts.forEach(cft => { 39 | r.translations = Object.keys(langs).reduce((obj, lang) => { 40 | obj[lang] = cft.translations.find(t => t.language === lang); 41 | if (obj[lang]) { 42 | obj[lang].origTitle = cft.title; 43 | obj[lang].isOutdated = !cft.isLatest; 44 | if (obj[lang].isOutdated) { 45 | obj[lang].states.push("outdated"); 46 | } 47 | obj[lang].isPublished = obj[lang].states.includes("published"); 48 | obj[lang].isPending = obj[lang].states.includes("draft"); 49 | obj[lang].isInReview = obj[lang].states.includes("review"); 50 | } 51 | return obj; 52 | }, {}); 53 | }) 54 | return r; 55 | }); 56 | 57 | const latestTranslations = translations.filter(t => t['call-for-translation']['spec-version'] && t.published).sort((a,b) => -a.published.localeCompare(b.published)).slice(0,15); 58 | await fs.writeFile("../docs/_data/recs.json", JSON.stringify(translatedRecs, null, 2)); 59 | await fs.writeFile("../docs/_data/translations.json", JSON.stringify(groupedTranslations, null, 2)); 60 | await fs.writeFile("../docs/_data/latestTranslations.json", JSON.stringify(latestTranslations, null, 2)); 61 | const languages = new Set([].concat(...groupedTranslations.map(x => x.translations.map(t => t.language)))); 62 | const byLanguage = [...languages].reduce((acc, l) => { 63 | acc[l] = {}; 64 | acc[l].list = groupedTranslations.filter(x => x.translations.find(t => t.language === l)) 65 | .map(x => { 66 | y = {...x}; 67 | y.translations = x.translations.filter(t => t.language === l) 68 | return y; 69 | }); 70 | acc[l].latestRecsTotal = acc[l].list.filter(x => x.isLatest || x.translations.find(t => t.authorized)).length; 71 | return acc; 72 | }, {}); 73 | await fs.writeFile("../docs/_data/byLanguage.json", JSON.stringify(byLanguage, null, 2)); 74 | } catch (err) { 75 | console.trace(err); 76 | process.exit(2); 77 | } 78 | })(); 79 | -------------------------------------------------------------------------------- /docs/_layouts/template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{page.title}} 6 | 7 | 8 | {% if page.feed %} 9 | 10 | {% endif %} 11 | 12 | 13 | 14 | 15 | {% if page.description %} 16 | 17 | {% endif %} 18 | {% if page.image %} 19 | 20 | {% endif %} 21 | 98 | 99 | 100 |
101 | 112 |
113 |
114 |
115 | {{ content }} 116 |
117 |
118 | 119 | 126 | 127 | 128 | 129 | -------------------------------------------------------------------------------- /docs/contribute.html: -------------------------------------------------------------------------------- 1 | --- 2 | title: Contributing to W3C translations 3 | layout: template 4 | description: Information for volunteers who want to translate W3C resources into their own language. 5 | --- 6 |

Contributing to W3C Translations

7 | 8 |

Overview

9 | 10 |

This page provides information for volunteers who want to translate W3C resources into their own language. See the list of completed translations of W3C Recommendations.

11 | 12 |

The working language of W3C is American English. W3C encourages translations into other languages to help deliverables reach the widest possible audience.

13 | 14 |

W3C is grateful to all the volunteers who translate its deliverables.

15 | 16 |

Authorized Translations

17 | 18 |

This page provide instructions for translations that do not follow a formal review process and are not endorsed by W3C. When standards translations are meant for official purposes, they may be developed as Authorized W3C Translations by following a different process described in the Policy for Authorized W3C Translation.

19 | 20 |

What to translate?

21 |

W3C encourages translations of the following resources:

22 | 34 | 35 |

Instructions for translating W3C Technical Reports

36 |
    37 |
  1. Check that there is not already a completed or ongoing translation for the technical report in the language.
  2. 38 |
  3. Verify you are willing to contribute under the IPR policies for W3C translations.
  4. 39 |
  5. Read the review criteria for volunteer translation below.
  6. 40 |
  7. Get a W3C account if you do not already have one. This will allow us to associate your translations with your W3C profile.
  8. 41 |
  9. Inform others of your interest in translating the technical report: 42 |
  10. 44 |
  11. Once the translation is finished, send email to the W3C translations mailing list using this e-mail template or Completed Translation. (W3C will use this to update the translation database.)
  12. 45 |
46 | 47 |

Review criteria for volunteer translations

48 | 57 | -------------------------------------------------------------------------------- /docs/_data/wordCount.json: -------------------------------------------------------------------------------- 1 | { 2 | "2dcontext": 18475, 3 | "accname-1.1": 5618, 4 | "activitypub": 10212, 5 | "activitystreams-core": 9918, 6 | "activitystreams-vocabulary": 12735, 7 | "annotation-model": 17706, 8 | "annotation-protocol": 6478, 9 | "annotation-vocab": 9452, 10 | "ATAG10": 6500, 11 | "ATAG20": 15444, 12 | "CCPP-struct-vocab": 18017, 13 | "ccxml": 53832, 14 | "charmod": 14887, 15 | "core-aam-1.1": 23634, 16 | "cors": 8247, 17 | "CSP2": 16153, 18 | "CSS1": 23711, 19 | "CSS2": 6643, 20 | "css3-mediaqueries": 4560, 21 | "css-color-3": 6150, 22 | "css-fonts-3": 20734, 23 | "css-namespaces-3": 2126, 24 | "css-style-attr": 1202, 25 | "css-ui-3": 9749, 26 | "csv2json": 11253, 27 | "csv2rdf": 12793, 28 | "DDR-Simple-API": 4678, 29 | "dom": 26480, 30 | "DOM-Level-2-HTML": 27070, 31 | "DOM-Level-3-Core": 53509, 32 | "DOM-Level-3-LS": 15031, 33 | "DOM-Level-3-Val": 8052, 34 | "dpub-aam-1.0": 4691, 35 | "dpub-aria-1.0": 9032, 36 | "dwbp": 25043, 37 | "ElementTraversal": 2964, 38 | "emma": 20231, 39 | "emotionml": 13519, 40 | "encrypted-media": 29928, 41 | "eventsource": 5577, 42 | "exi-c14n": 7176, 43 | "exi": 34711, 44 | "exi-profile": 5539, 45 | "geolocation-API": 5272, 46 | "graphics-aam-1.0": 3014, 47 | "graphics-aria-1.0": 6190, 48 | "grddl": 8841, 49 | "grddl-tests": 6634, 50 | "hr-time": 2646, 51 | "html401": 2463, 52 | "html51": 91467, 53 | "html52": 554369, 54 | "html5": 554369, 55 | "html-longdesc": 2857, 56 | "html-media-capture": 1942, 57 | "html-rdfa": 6769, 58 | "IndexedDB-2": 40360, 59 | "IndexedDB": 24877, 60 | "InkML": 19893, 61 | "its20": 42050, 62 | "its": 42050, 63 | "json-ld-api": 22444, 64 | "json-ld": 16158, 65 | "ldn": 5342, 66 | "ldp": 12569, 67 | "MathML3": 127361, 68 | "mathml-for-css": 7491, 69 | "media-frags": 9697, 70 | "mediaont-10": 26107, 71 | "mediaont-api-1.0": 12845, 72 | "media-source": 18021, 73 | "micropub": 9704, 74 | "mmi-arch": 14591, 75 | "mobile-bp": 14474, 76 | "mobileOK-basic10-tests": 6733, 77 | "mwabp": 9079, 78 | "navigation-timing": 4591, 79 | "notifications": 3018, 80 | "n-quads": 2777, 81 | "n-triples": 3057, 82 | "odrl-model": 12874, 83 | "odrl-vocab": 12374, 84 | "owl2-conformance": 8608, 85 | "owl2-direct-semantics": 5762, 86 | "owl2-mapping-to-rdf": 9019, 87 | "owl2-new-features": 18141, 88 | "owl2-overview": 3479, 89 | "owl2-primer": 18670, 90 | "owl2-profiles": 11094, 91 | "owl2-quick-reference": 3049, 92 | "owl2-rdf-based-semantics": 30210, 93 | "owl2-syntax": 37477, 94 | "owl2-xml-serialization": 5259, 95 | "owl-features": 6847, 96 | "owl-guide": 14100, 97 | "owl-ref": 17189, 98 | "owl-semantics": 20658, 99 | "owl-test": 162833, 100 | "owl-time": 11363, 101 | "P3P": 37420, 102 | "page-visibility": 1725, 103 | "performance-timeline": 3481, 104 | "PNG": 32581, 105 | "pointerevents": 11523, 106 | "pointerlock": 5061, 107 | "powder-dr": 17416, 108 | "powder-formal": 10679, 109 | "powder-grouping": 8750, 110 | "progress-events": 1403, 111 | "pronunciation-lexicon": 11387, 112 | "prov-constraints": 18126, 113 | "prov-dm": 17064, 114 | "prov-n": 9184, 115 | "prov-o": 22219, 116 | "qaframe-spec": 19174, 117 | "r2rml": 13316, 118 | "rdb-direct-mapping": 8269, 119 | "rdf11-concepts": 7163, 120 | "rdf11-mt": 12922, 121 | "rdfa-core": 23679, 122 | "rdfa-lite": 1998, 123 | "rdf-concepts": 6395, 124 | "rdf-mt": 23395, 125 | "rdf-plain-literal": 4225, 126 | "rdf-primer": 38731, 127 | "rdf-schema": 5350, 128 | "rdf-sparql-protocol": 6267, 129 | "rdf-sparql-query": 23475, 130 | "rdf-sparql-XMLres": 2127, 131 | "rdf-syntax-grammar": 12726, 132 | "rdf-testcases": 6128, 133 | "REC-DSig-label": 8742, 134 | "REC-html32": 15630, 135 | "REC-PICS-labels": 10090, 136 | "REC-PICSRules": 8662, 137 | "REC-PICS-services": 5874, 138 | "REC-smil": 11711, 139 | "rif-bld": 18163, 140 | "rif-core": 8113, 141 | "rif-dtb": 21212, 142 | "rif-fld": 29208, 143 | "rif-prd": 26670, 144 | "rif-rdf-owl": 21604, 145 | "role-attribute": 2967, 146 | "ruby": 7243, 147 | "sawsdl": 9057, 148 | "scxml": 30264, 149 | "selectors-3": 12447, 150 | "selectors-api": 2990, 151 | "semantic-interpretation": 11874, 152 | "shacl": 25458, 153 | "skos-reference": 17705, 154 | "SMIL2": 159115, 155 | "SMIL3": 202445, 156 | "smil-animation": 32988, 157 | "sml": 16112, 158 | "sml-if": 10605, 159 | "soap12-mtom": 4675, 160 | "soap12-part0": 21399, 161 | "soap12-part1": 16652, 162 | "soap12-part2": 15605, 163 | "soap12-rep": 3401, 164 | "soap12-testcollection": 25968, 165 | "soapjms": 13135, 166 | "sparql11-entailment": 20546, 167 | "sparql11-federated-query": 3319, 168 | "sparql11-http-rdf-update": 4689, 169 | "sparql11-overview": 2713, 170 | "sparql11-protocol": 5918, 171 | "sparql11-query": 37740, 172 | "sparql11-results-csv-tsv": 2091, 173 | "sparql11-results-json": 2088, 174 | "sparql11-service-description": 3202, 175 | "sparql11-update": 11885, 176 | "speech-grammar": 21961, 177 | "speech-synthesis11": 21748, 178 | "speech-synthesis": 21748, 179 | "SRI": 4126, 180 | "SVG11": 215973, 181 | "SVGMobile": 157622, 182 | "SVGTiny12": 157622, 183 | "tabular-data-model": 19381, 184 | "tabular-metadata": 15948, 185 | "touch-events": 3690, 186 | "trig": 4917, 187 | "ttml1": 54923, 188 | "ttml2": 115463, 189 | "ttml-imsc1.0.1": 13358, 190 | "ttml-imsc1.1": 15382, 191 | "ttml-imsc1": 13358, 192 | "turtle": 7479, 193 | "UAAG10": 35791, 194 | "user-timing-1": 2398, 195 | "user-timing-2": 2015, 196 | "vibration": 1742, 197 | "view-mode": 1393, 198 | "vocab-data-cube": 13658, 199 | "vocab-dcat": 5232, 200 | "vocab-org": 6798, 201 | "vocab-ssn": 22527, 202 | "voicexml20": 60179, 203 | "voicexml21": 10751, 204 | "wai-aria-1.1": 52899, 205 | "wai-aria": 52899, 206 | "wai-aria-implementation": 19179, 207 | "WAI-WEBCONTENT": 11123, 208 | "WCAG20": 14742, 209 | "WCAG21": 20107, 210 | "webarch": 20083, 211 | "webauthn-1": 54991, 212 | "webcgm20": 729, 213 | "webcgm21": 66159, 214 | "WebCryptoAPI": 38009, 215 | "webdriver1": 34176, 216 | "WebIDL-1": 55774, 217 | "webmention": 5433, 218 | "webmessaging": 5994, 219 | "webont-req": 7959, 220 | "webstorage": 4764, 221 | "websub": 6821, 222 | "widgets-access": 2242, 223 | "widgets-apis": 4343, 224 | "widgets-digsig": 3670, 225 | "widgets": 24780, 226 | "WOFF2": 11505, 227 | "WOFF": 8840, 228 | "ws-addr-core": 5690, 229 | "ws-addr-metadata": 7142, 230 | "ws-addr-soap": 6016, 231 | "wsc-ui": 9744, 232 | "wsdl20-adjuncts": 23647, 233 | "wsdl20": 31751, 234 | "wsdl20-primer": 24076, 235 | "ws-enumeration": 9962, 236 | "ws-event-descriptions": 3164, 237 | "ws-eventing": 13284, 238 | "ws-fragment": 6296, 239 | "ws-metadata-exchange": 12425, 240 | "ws-policy-attach": 12676, 241 | "ws-policy": 11783, 242 | "ws-soap-assertions": 1986, 243 | "ws-transfer": 7212, 244 | "xforms11": 67033, 245 | "xhtml11": 622, 246 | "xhtml1": 6975, 247 | "xhtml-basic": 9119, 248 | "xhtml-modularization": 56670, 249 | "xhtml-print": 10350, 250 | "xhtml-rdfa": 8107, 251 | "xinclude": 7837, 252 | "xkms2-bindings": 5326, 253 | "xkms2": 22016, 254 | "xlink11": 12577, 255 | "xlink": 12577, 256 | "xml11": 19300, 257 | "xmlbase": 2379, 258 | "xml-c14n11": 9001, 259 | "xml-c14n": 9001, 260 | "xmldsig-core1": 23043, 261 | "xmldsig-filter2": 3501, 262 | "xmldsig-properties": 2366, 263 | "xmlenc-core1": 18304, 264 | "xmlenc-decrypt": 5268, 265 | "xml-entity-names": 4598, 266 | "xml-exc-c14n": 3868, 267 | "xml": 18929, 268 | "xml-id": 2920, 269 | "xml-infoset": 5710, 270 | "xml-names11": 3936, 271 | "xml-names": 3857, 272 | "xmlschema-0": 21109, 273 | "xmlschema11-1": 114541, 274 | "xmlschema11-2": 73256, 275 | "xmlschema-1": 58674, 276 | "xmlschema-2": 36561, 277 | "xml-stylesheet": 2572, 278 | "xop10": 5492, 279 | "xpath20": 42725, 280 | "xpath-30": 53348, 281 | "xpath-31": 57956, 282 | "xpath-datamodel-30": 27093, 283 | "xpath-datamodel-31": 28207, 284 | "xpath-datamodel": 28207, 285 | "xpath-full-text-10": 42058, 286 | "xpath-full-text-30": 41293, 287 | "xpath-functions-30": 97408, 288 | "xpath-functions-31": 131902, 289 | "xpath-functions": 131902, 290 | "xpath": 11638, 291 | "xproc": 52975, 292 | "xptr-element": 1092, 293 | "xptr-framework": 3972, 294 | "xptr-xmlns": 1164, 295 | "xquery-30": 97807, 296 | "xquery-31": 102443, 297 | "xquery": 73116, 298 | "xquery-semantics": 73946, 299 | "xquery-update-10": 20153, 300 | "xqueryx-30": 15306, 301 | "xqueryx-31": 13345, 302 | "xqueryx": 13345, 303 | "xsl11": 137817, 304 | "xsl": 137817, 305 | "xslt20": 115161, 306 | "xslt-30": 256898, 307 | "xslt": 28150, 308 | "xslt-xquery-serialization-30": 22729, 309 | "xslt-xquery-serialization-31": 26238, 310 | "xslt-xquery-serialization": 26238, 311 | "pointerevents2": 12390 , 312 | "act-rules-format-1.0": 7769 , 313 | "vc-data-model": 30329 , 314 | "hr-time-2": 3566 , 315 | "css-contain-1": 6411 , 316 | "wasm-core-1": 59556 , 317 | "wasm-js-api-1": 13657 , 318 | "wasm-web-api-1": 2895 , 319 | "css-writing-modes-3": 22239 , 320 | "ttml2": 129630 , 321 | "vocab-dcat-2": 28313 , 322 | "trace-context-1": 7351 , 323 | "wot-architecture": 23565 , 324 | "wot-thing-description": 25276 , 325 | "json-ld11": 57620 , 326 | "json-ld11-api": 48127 , 327 | "json-ld11-framing": 18529 , 328 | "ttml-imsc1.2": 19471 329 | } 330 | -------------------------------------------------------------------------------- /docs/_data/latestTranslations.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "states": [ 4 | "published", 5 | "needs_update" 6 | ], 7 | "uri": "https://www.w3.org/Translations/vc-data-model-2.0-zh/", 8 | "title": "可验证凭证数据模型 v2.0", 9 | "language": "zh-hans", 10 | "translators": [], 11 | "published": "2025-11-07T00:00:00+00:00", 12 | "updated": "2025-11-07T00:00:00+00:00", 13 | "authorized": true, 14 | "lto_name": "National Computer Network Emergency Response Technical Team/Coordination Center of China", 15 | "call-for-translation": { 16 | "title": "Verifiable Credentials Data Model v2.0", 17 | "spec-version": { 18 | "status": "Recommendation", 19 | "rec-track": true, 20 | "editor-draft": "https://w3c.github.io/vc-data-model/", 21 | "uri": "https://www.w3.org/TR/2025/REC-vc-data-model-2.0-20250515/", 22 | "date": "2025-05-15", 23 | "informative": false, 24 | "title": "Verifiable Credentials Data Model v2.0", 25 | "shortlink": "https://www.w3.org/TR/vc-data-model-2.0/", 26 | "process-rules": "https://www.w3.org/policies/process/20231103/", 27 | "_links": { 28 | "self": { 29 | "href": "https://api.w3.org/specifications/vc-data-model-2.0/versions/20250515" 30 | }, 31 | "editors": { 32 | "href": "https://api.w3.org/specifications/vc-data-model-2.0/versions/20250515/editors" 33 | }, 34 | "deliverers": { 35 | "href": "https://api.w3.org/specifications/vc-data-model-2.0/versions/20250515/deliverers" 36 | }, 37 | "specification": { 38 | "href": "https://api.w3.org/specifications/vc-data-model-2.0" 39 | }, 40 | "predecessor-version": { 41 | "href": "https://api.w3.org/specifications/vc-data-model-2.0/versions/20250515/predecessors" 42 | }, 43 | "translations": { 44 | "href": "https://api.w3.org/callsfortranslation/321/translations" 45 | } 46 | } 47 | }, 48 | "_links": { 49 | "self": { 50 | "href": "https://api.w3.org/callsfortranslation/321" 51 | }, 52 | "translations": { 53 | "href": "https://api.w3.org/callsfortranslation/321/translations" 54 | } 55 | } 56 | }, 57 | "_links": { 58 | "self": { 59 | "href": "https://api.w3.org/translations/657" 60 | } 61 | }, 62 | "origTitle": "Verifiable Credentials Data Model v2.0", 63 | "isOutdated": false, 64 | "isPublished": true, 65 | "isPending": false, 66 | "isInReview": false 67 | }, 68 | { 69 | "states": [ 70 | "published" 71 | ], 72 | "uri": "https://momdo.github.io/dpub-aria-1.1/", 73 | "title": "Digital Publishing WAI-ARIA Module 1.1 日本語訳", 74 | "language": "ja", 75 | "translators": [ 76 | { 77 | "id": 115881, 78 | "name": "Naoki Nakamura", 79 | "given": "Naoki", 80 | "family": "Nakamura", 81 | "connected-accounts": [ 82 | { 83 | "created": "2023-08-27T08:29:01+00:00", 84 | "service": "github", 85 | "identifier": "8347177", 86 | "nickname": "momdo", 87 | "profile-picture": "https://avatars.githubusercontent.com/u/8347177?v=4", 88 | "href": "https://github.com/momdo", 89 | "_links": { 90 | "user": { 91 | "href": "https://api.w3.org/users/hch144qn83s48sc80owkgs88kw4swkw" 92 | } 93 | } 94 | } 95 | ], 96 | "discr": "user", 97 | "_links": { 98 | "self": { 99 | "href": "https://api.w3.org/users/hch144qn83s48sc80owkgs88kw4swkw" 100 | }, 101 | "affiliations": { 102 | "href": "https://api.w3.org/users/hch144qn83s48sc80owkgs88kw4swkw/affiliations" 103 | }, 104 | "groups": { 105 | "href": "https://api.w3.org/users/hch144qn83s48sc80owkgs88kw4swkw/groups" 106 | }, 107 | "specifications": { 108 | "href": "https://api.w3.org/users/hch144qn83s48sc80owkgs88kw4swkw/specifications" 109 | }, 110 | "participations": { 111 | "href": "https://api.w3.org/users/hch144qn83s48sc80owkgs88kw4swkw/participations" 112 | }, 113 | "chair_of_groups": { 114 | "href": "https://api.w3.org/users/hch144qn83s48sc80owkgs88kw4swkw/chair-of-groups" 115 | }, 116 | "team_contact_of_groups": { 117 | "href": "https://api.w3.org/users/hch144qn83s48sc80owkgs88kw4swkw/team-contact-of-groups" 118 | } 119 | } 120 | } 121 | ], 122 | "published": "2025-06-19T00:00:00+00:00", 123 | "authorized": false, 124 | "call-for-translation": { 125 | "title": "Digital Publishing WAI-ARIA Module 1.1", 126 | "spec-version": { 127 | "status": "Recommendation", 128 | "rec-track": true, 129 | "editor-draft": "https://w3c.github.io/dpub-aria/", 130 | "uri": "https://www.w3.org/TR/2025/REC-dpub-aria-1.1-20250612/", 131 | "date": "2025-06-12", 132 | "informative": false, 133 | "title": "Digital Publishing WAI-ARIA Module 1.1", 134 | "shortlink": "https://www.w3.org/TR/dpub-aria-1.1/", 135 | "translation": "https://www.w3.org/Translations/?technology=dpub-aria-1.1", 136 | "errata": "https://www.w3.org/WAI/ARIA/1.1/errata/dpub", 137 | "process-rules": "https://www.w3.org/policies/process/20231103/", 138 | "_links": { 139 | "self": { 140 | "href": "https://api.w3.org/specifications/dpub-aria-1.1/versions/20250612" 141 | }, 142 | "editors": { 143 | "href": "https://api.w3.org/specifications/dpub-aria-1.1/versions/20250612/editors" 144 | }, 145 | "deliverers": { 146 | "href": "https://api.w3.org/specifications/dpub-aria-1.1/versions/20250612/deliverers" 147 | }, 148 | "specification": { 149 | "href": "https://api.w3.org/specifications/dpub-aria-1.1" 150 | }, 151 | "predecessor-version": { 152 | "href": "https://api.w3.org/specifications/dpub-aria-1.1/versions/20250612/predecessors" 153 | }, 154 | "translations": { 155 | "href": "https://api.w3.org/callsfortranslation/318/translations" 156 | } 157 | } 158 | }, 159 | "_links": { 160 | "self": { 161 | "href": "https://api.w3.org/callsfortranslation/318" 162 | }, 163 | "translations": { 164 | "href": "https://api.w3.org/callsfortranslation/318/translations" 165 | } 166 | } 167 | }, 168 | "_links": { 169 | "self": { 170 | "href": "https://api.w3.org/translations/653" 171 | } 172 | }, 173 | "origTitle": "Digital Publishing WAI-ARIA Module 1.1", 174 | "isOutdated": false, 175 | "isPublished": true, 176 | "isPending": false, 177 | "isInReview": false 178 | }, 179 | { 180 | "states": [ 181 | "published" 182 | ], 183 | "uri": "https://www.w3.org/Translations/ethical-web-principles-zh/Overview.html", 184 | "title": "Web伦理原则", 185 | "language": "zh-hans", 186 | "translators": [], 187 | "published": "2025-04-16T00:00:00+00:00", 188 | "authorized": true, 189 | "lto_name": "Translator: Anqi Li", 190 | "call-for-translation": { 191 | "title": "Ethical Web Principles", 192 | "spec-version": { 193 | "status": "Statement", 194 | "rec-track": false, 195 | "editor-draft": "https://w3ctag.github.io/ethical-web-principles/", 196 | "uri": "https://www.w3.org/TR/2024/STMT-ethical-web-principles-20241212/", 197 | "date": "2024-12-12", 198 | "informative": true, 199 | "title": "Ethical Web Principles", 200 | "shortlink": "https://www.w3.org/TR/ethical-web-principles/", 201 | "process-rules": "https://www.w3.org/policies/process/20231103/", 202 | "_links": { 203 | "self": { 204 | "href": "https://api.w3.org/specifications/ethical-web-principles/versions/20241212" 205 | }, 206 | "editors": { 207 | "href": "https://api.w3.org/specifications/ethical-web-principles/versions/20241212/editors" 208 | }, 209 | "deliverers": { 210 | "href": "https://api.w3.org/specifications/ethical-web-principles/versions/20241212/deliverers" 211 | }, 212 | "specification": { 213 | "href": "https://api.w3.org/specifications/ethical-web-principles" 214 | }, 215 | "predecessor-version": { 216 | "href": "https://api.w3.org/specifications/ethical-web-principles/versions/20241212/predecessors" 217 | }, 218 | "translations": { 219 | "href": "https://api.w3.org/callsfortranslation/317/translations" 220 | } 221 | } 222 | }, 223 | "_links": { 224 | "self": { 225 | "href": "https://api.w3.org/callsfortranslation/317" 226 | }, 227 | "translations": { 228 | "href": "https://api.w3.org/callsfortranslation/317/translations" 229 | } 230 | } 231 | }, 232 | "_links": { 233 | "self": { 234 | "href": "https://api.w3.org/translations/652" 235 | } 236 | }, 237 | "origTitle": "Ethical Web Principles", 238 | "isOutdated": false, 239 | "isPublished": true, 240 | "isPending": false, 241 | "isInReview": false 242 | }, 243 | { 244 | "states": [ 245 | "published", 246 | "outdated" 247 | ], 248 | "uri": "https://www.w3.org/Translations/WCAG22-pt-BR/", 249 | "title": "Diretrizes de Acessibilidade para Conteúdo Web (WCAG) 2.2", 250 | "language": "pt-br", 251 | "translators": [], 252 | "published": "2025-03-27T00:00:00+00:00", 253 | "authorized": true, 254 | "lto_name": "Ceweb.br", 255 | "call-for-translation": { 256 | "title": "Web Content Accessibility Guidelines (WCAG) 2.2 (W3C Recommendation 05 October 2023)", 257 | "spec-version": { 258 | "status": "Recommendation", 259 | "rec-track": true, 260 | "editor-draft": "https://w3c.github.io/wcag/guidelines/22/", 261 | "uri": "https://www.w3.org/TR/2023/REC-WCAG22-20231005/", 262 | "date": "2023-10-05", 263 | "informative": false, 264 | "title": "Web Content Accessibility Guidelines (WCAG) 2.2", 265 | "shortlink": "https://www.w3.org/TR/WCAG22/", 266 | "process-rules": "https://www.w3.org/2023/Process-20230612/", 267 | "_links": { 268 | "self": { 269 | "href": "https://api.w3.org/specifications/WCAG22/versions/20231005" 270 | }, 271 | "editors": { 272 | "href": "https://api.w3.org/specifications/WCAG22/versions/20231005/editors" 273 | }, 274 | "deliverers": { 275 | "href": "https://api.w3.org/specifications/WCAG22/versions/20231005/deliverers" 276 | }, 277 | "specification": { 278 | "href": "https://api.w3.org/specifications/WCAG22" 279 | }, 280 | "predecessor-version": { 281 | "href": "https://api.w3.org/specifications/WCAG22/versions/20231005/predecessors" 282 | }, 283 | "successor-version": { 284 | "href": "https://api.w3.org/specifications/WCAG22/versions/20231005/successors" 285 | }, 286 | "translations": { 287 | "href": "https://api.w3.org/callsfortranslation/301/translations" 288 | } 289 | } 290 | }, 291 | "_links": { 292 | "self": { 293 | "href": "https://api.w3.org/callsfortranslation/301" 294 | }, 295 | "translations": { 296 | "href": "https://api.w3.org/callsfortranslation/301/translations" 297 | } 298 | } 299 | }, 300 | "_links": { 301 | "self": { 302 | "href": "https://api.w3.org/translations/615" 303 | } 304 | }, 305 | "origTitle": "Web Content Accessibility Guidelines (WCAG) 2.2 (W3C Recommendation 05 October 2023)", 306 | "isOutdated": true, 307 | "isPublished": true, 308 | "isPending": false, 309 | "isInReview": false 310 | }, 311 | { 312 | "states": [ 313 | "unpublished", 314 | "published", 315 | "outdated" 316 | ], 317 | "uri": "https://www.w3.org/Translations/WCAG22-fr-20250317/", 318 | "title": "Règles pour l’accessibilité des contenus Web (WCAG) 2.2", 319 | "language": "fr", 320 | "translators": [], 321 | "published": "2025-03-17T00:00:00+00:00", 322 | "updated": "2025-07-23T00:00:00+00:00", 323 | "authorized": true, 324 | "lto_name": "Access42", 325 | "call-for-translation": { 326 | "title": "Web Content Accessibility Guidelines (WCAG) 2.2 (W3C Recommendation 05 October 2023)", 327 | "spec-version": { 328 | "status": "Recommendation", 329 | "rec-track": true, 330 | "editor-draft": "https://w3c.github.io/wcag/guidelines/22/", 331 | "uri": "https://www.w3.org/TR/2023/REC-WCAG22-20231005/", 332 | "date": "2023-10-05", 333 | "informative": false, 334 | "title": "Web Content Accessibility Guidelines (WCAG) 2.2", 335 | "shortlink": "https://www.w3.org/TR/WCAG22/", 336 | "process-rules": "https://www.w3.org/2023/Process-20230612/", 337 | "_links": { 338 | "self": { 339 | "href": "https://api.w3.org/specifications/WCAG22/versions/20231005" 340 | }, 341 | "editors": { 342 | "href": "https://api.w3.org/specifications/WCAG22/versions/20231005/editors" 343 | }, 344 | "deliverers": { 345 | "href": "https://api.w3.org/specifications/WCAG22/versions/20231005/deliverers" 346 | }, 347 | "specification": { 348 | "href": "https://api.w3.org/specifications/WCAG22" 349 | }, 350 | "predecessor-version": { 351 | "href": "https://api.w3.org/specifications/WCAG22/versions/20231005/predecessors" 352 | }, 353 | "successor-version": { 354 | "href": "https://api.w3.org/specifications/WCAG22/versions/20231005/successors" 355 | }, 356 | "translations": { 357 | "href": "https://api.w3.org/callsfortranslation/301/translations" 358 | } 359 | } 360 | }, 361 | "_links": { 362 | "self": { 363 | "href": "https://api.w3.org/callsfortranslation/301" 364 | }, 365 | "translations": { 366 | "href": "https://api.w3.org/callsfortranslation/301/translations" 367 | } 368 | } 369 | }, 370 | "_links": { 371 | "self": { 372 | "href": "https://api.w3.org/translations/613" 373 | } 374 | }, 375 | "origTitle": "Web Content Accessibility Guidelines (WCAG) 2.2 (W3C Recommendation 05 October 2023)", 376 | "isOutdated": true, 377 | "isPublished": true, 378 | "isPending": false, 379 | "isInReview": false 380 | }, 381 | { 382 | "states": [ 383 | "published" 384 | ], 385 | "uri": "https://w3c.wholetrans.org/activitypub/", 386 | "title": "ActivityPub", 387 | "language": "zh-hans", 388 | "translators": [ 389 | { 390 | "id": 161962, 391 | "name": "Moved to cdn0x12", 392 | "given": "Moved to", 393 | "family": "cdn0x12", 394 | "connected-accounts": [], 395 | "discr": "user", 396 | "_links": { 397 | "self": { 398 | "href": "https://api.w3.org/users/b9az7f5m57sok8oc8cso8cgook4ckkg" 399 | }, 400 | "affiliations": { 401 | "href": "https://api.w3.org/users/b9az7f5m57sok8oc8cso8cgook4ckkg/affiliations" 402 | }, 403 | "groups": { 404 | "href": "https://api.w3.org/users/b9az7f5m57sok8oc8cso8cgook4ckkg/groups" 405 | }, 406 | "specifications": { 407 | "href": "https://api.w3.org/users/b9az7f5m57sok8oc8cso8cgook4ckkg/specifications" 408 | }, 409 | "participations": { 410 | "href": "https://api.w3.org/users/b9az7f5m57sok8oc8cso8cgook4ckkg/participations" 411 | }, 412 | "chair_of_groups": { 413 | "href": "https://api.w3.org/users/b9az7f5m57sok8oc8cso8cgook4ckkg/chair-of-groups" 414 | }, 415 | "team_contact_of_groups": { 416 | "href": "https://api.w3.org/users/b9az7f5m57sok8oc8cso8cgook4ckkg/team-contact-of-groups" 417 | } 418 | } 419 | } 420 | ], 421 | "published": "2024-12-16T00:00:00+00:00", 422 | "authorized": false, 423 | "call-for-translation": { 424 | "title": "ActivityPub", 425 | "spec-version": { 426 | "status": "Recommendation", 427 | "rec-track": true, 428 | "editor-draft": "https://w3c.github.io/activitypub/", 429 | "uri": "https://www.w3.org/TR/2018/REC-activitypub-20180123/", 430 | "date": "2018-01-23", 431 | "informative": false, 432 | "title": "ActivityPub", 433 | "shortlink": "https://www.w3.org/TR/activitypub/", 434 | "translation": "https://www.w3.org/2003/03/Translations/byTechnology?technology=activitypub", 435 | "errata": "https://www.w3.org/wiki/ActivityPub_errata", 436 | "process-rules": "https://www.w3.org/2017/Process-20170301/", 437 | "_links": { 438 | "self": { 439 | "href": "https://api.w3.org/specifications/activitypub/versions/20180123" 440 | }, 441 | "editors": { 442 | "href": "https://api.w3.org/specifications/activitypub/versions/20180123/editors" 443 | }, 444 | "deliverers": { 445 | "href": "https://api.w3.org/specifications/activitypub/versions/20180123/deliverers" 446 | }, 447 | "specification": { 448 | "href": "https://api.w3.org/specifications/activitypub" 449 | }, 450 | "predecessor-version": { 451 | "href": "https://api.w3.org/specifications/activitypub/versions/20180123/predecessors" 452 | }, 453 | "translations": { 454 | "href": "https://api.w3.org/callsfortranslation/304/translations" 455 | } 456 | } 457 | }, 458 | "_links": { 459 | "self": { 460 | "href": "https://api.w3.org/callsfortranslation/304" 461 | }, 462 | "translations": { 463 | "href": "https://api.w3.org/callsfortranslation/304/translations" 464 | } 465 | } 466 | }, 467 | "_links": { 468 | "self": { 469 | "href": "https://api.w3.org/translations/648" 470 | } 471 | }, 472 | "origTitle": "ActivityPub", 473 | "isOutdated": false, 474 | "isPublished": true, 475 | "isPending": false, 476 | "isInReview": false 477 | }, 478 | { 479 | "states": [ 480 | "published" 481 | ], 482 | "uri": "https://waic.jp/translations/WCAG20/Overview.html", 483 | "title": "Web Content Accessibility Guidelines (WCAG) 2.0", 484 | "language": "ja", 485 | "translators": [], 486 | "published": "2024-10-27T00:00:00+00:00", 487 | "updated": "2024-10-29T00:00:00+00:00", 488 | "authorized": false, 489 | "call-for-translation": { 490 | "title": "Web Content Accessibility Guidelines (WCAG) 2.0", 491 | "spec-version": { 492 | "status": "Recommendation", 493 | "rec-track": true, 494 | "uri": "https://www.w3.org/TR/2008/REC-WCAG20-20081211/", 495 | "date": "2008-12-11", 496 | "informative": false, 497 | "title": "Web Content Accessibility Guidelines (WCAG) 2.0", 498 | "shortlink": "https://www.w3.org/TR/WCAG20/", 499 | "translation": "https://www.w3.org/2003/03/Translations/byTechnology?technology=WCAG20", 500 | "errata": "https://www.w3.org/WAI/WCAG20/errata/", 501 | "_links": { 502 | "self": { 503 | "href": "https://api.w3.org/specifications/WCAG20/versions/20081211" 504 | }, 505 | "editors": { 506 | "href": "https://api.w3.org/specifications/WCAG20/versions/20081211/editors" 507 | }, 508 | "deliverers": { 509 | "href": "https://api.w3.org/specifications/WCAG20/versions/20081211/deliverers" 510 | }, 511 | "specification": { 512 | "href": "https://api.w3.org/specifications/WCAG20" 513 | }, 514 | "predecessor-version": { 515 | "href": "https://api.w3.org/specifications/WCAG20/versions/20081211/predecessors" 516 | }, 517 | "translations": { 518 | "href": "https://api.w3.org/callsfortranslation/149/translations" 519 | } 520 | } 521 | }, 522 | "_links": { 523 | "self": { 524 | "href": "https://api.w3.org/callsfortranslation/149" 525 | }, 526 | "translations": { 527 | "href": "https://api.w3.org/callsfortranslation/149/translations" 528 | } 529 | } 530 | }, 531 | "comments": "Translators: WAIC (Web Accessibility Infrastructure Committee)", 532 | "_links": { 533 | "self": { 534 | "href": "https://api.w3.org/translations/636" 535 | } 536 | }, 537 | "origTitle": "Web Content Accessibility Guidelines (WCAG) 2.0", 538 | "isOutdated": false, 539 | "isPublished": true, 540 | "isPending": false, 541 | "isInReview": false 542 | }, 543 | { 544 | "states": [ 545 | "published" 546 | ], 547 | "uri": "https://web.archive.org/web/20121107021930/http://archi.ssu.ac.kr/WCAG20/", 548 | "title": "웹 콘텐츠 접근성 지침 2.0", 549 | "language": "ko", 550 | "translators": [], 551 | "published": "2024-10-27T00:00:00+00:00", 552 | "updated": "2024-10-29T00:00:00+00:00", 553 | "authorized": false, 554 | "call-for-translation": { 555 | "title": "Web Content Accessibility Guidelines (WCAG) 2.0", 556 | "spec-version": { 557 | "status": "Recommendation", 558 | "rec-track": true, 559 | "uri": "https://www.w3.org/TR/2008/REC-WCAG20-20081211/", 560 | "date": "2008-12-11", 561 | "informative": false, 562 | "title": "Web Content Accessibility Guidelines (WCAG) 2.0", 563 | "shortlink": "https://www.w3.org/TR/WCAG20/", 564 | "translation": "https://www.w3.org/2003/03/Translations/byTechnology?technology=WCAG20", 565 | "errata": "https://www.w3.org/WAI/WCAG20/errata/", 566 | "_links": { 567 | "self": { 568 | "href": "https://api.w3.org/specifications/WCAG20/versions/20081211" 569 | }, 570 | "editors": { 571 | "href": "https://api.w3.org/specifications/WCAG20/versions/20081211/editors" 572 | }, 573 | "deliverers": { 574 | "href": "https://api.w3.org/specifications/WCAG20/versions/20081211/deliverers" 575 | }, 576 | "specification": { 577 | "href": "https://api.w3.org/specifications/WCAG20" 578 | }, 579 | "predecessor-version": { 580 | "href": "https://api.w3.org/specifications/WCAG20/versions/20081211/predecessors" 581 | }, 582 | "translations": { 583 | "href": "https://api.w3.org/callsfortranslation/149/translations" 584 | } 585 | } 586 | }, 587 | "_links": { 588 | "self": { 589 | "href": "https://api.w3.org/callsfortranslation/149" 590 | }, 591 | "translations": { 592 | "href": "https://api.w3.org/callsfortranslation/149/translations" 593 | } 594 | } 595 | }, 596 | "comments": "Translators: Youngsik Park", 597 | "_links": { 598 | "self": { 599 | "href": "https://api.w3.org/translations/637" 600 | } 601 | }, 602 | "origTitle": "Web Content Accessibility Guidelines (WCAG) 2.0", 603 | "isOutdated": false, 604 | "isPublished": true, 605 | "isPending": false, 606 | "isInReview": false 607 | }, 608 | { 609 | "states": [ 610 | "published", 611 | "outdated" 612 | ], 613 | "uri": "https://www.w3.org/Translations/WCAG22-nl/", 614 | "title": "Richtlijnen voor Toegankelijkheid van Webcontent (WCAG) 2.2", 615 | "language": "nl", 616 | "translators": [], 617 | "published": "2024-06-13T00:00:00+00:00", 618 | "authorized": true, 619 | "lto_name": "Accessibility Foundation", 620 | "call-for-translation": { 621 | "title": "Web Content Accessibility Guidelines (WCAG) 2.2 (W3C Recommendation 05 October 2023)", 622 | "spec-version": { 623 | "status": "Recommendation", 624 | "rec-track": true, 625 | "editor-draft": "https://w3c.github.io/wcag/guidelines/22/", 626 | "uri": "https://www.w3.org/TR/2023/REC-WCAG22-20231005/", 627 | "date": "2023-10-05", 628 | "informative": false, 629 | "title": "Web Content Accessibility Guidelines (WCAG) 2.2", 630 | "shortlink": "https://www.w3.org/TR/WCAG22/", 631 | "process-rules": "https://www.w3.org/2023/Process-20230612/", 632 | "_links": { 633 | "self": { 634 | "href": "https://api.w3.org/specifications/WCAG22/versions/20231005" 635 | }, 636 | "editors": { 637 | "href": "https://api.w3.org/specifications/WCAG22/versions/20231005/editors" 638 | }, 639 | "deliverers": { 640 | "href": "https://api.w3.org/specifications/WCAG22/versions/20231005/deliverers" 641 | }, 642 | "specification": { 643 | "href": "https://api.w3.org/specifications/WCAG22" 644 | }, 645 | "predecessor-version": { 646 | "href": "https://api.w3.org/specifications/WCAG22/versions/20231005/predecessors" 647 | }, 648 | "successor-version": { 649 | "href": "https://api.w3.org/specifications/WCAG22/versions/20231005/successors" 650 | }, 651 | "translations": { 652 | "href": "https://api.w3.org/callsfortranslation/301/translations" 653 | } 654 | } 655 | }, 656 | "_links": { 657 | "self": { 658 | "href": "https://api.w3.org/callsfortranslation/301" 659 | }, 660 | "translations": { 661 | "href": "https://api.w3.org/callsfortranslation/301/translations" 662 | } 663 | } 664 | }, 665 | "_links": { 666 | "self": { 667 | "href": "https://api.w3.org/translations/614" 668 | } 669 | }, 670 | "origTitle": "Web Content Accessibility Guidelines (WCAG) 2.2 (W3C Recommendation 05 October 2023)", 671 | "isOutdated": true, 672 | "isPublished": true, 673 | "isPending": false, 674 | "isInReview": false 675 | }, 676 | { 677 | "states": [ 678 | "published", 679 | "outdated" 680 | ], 681 | "uri": "https://www.w3.org/Translations/WCAG22-ca/", 682 | "title": "Directrius per a l'accessibilitat del contingut web (WCAG) 2.2", 683 | "language": "ca", 684 | "translators": [], 685 | "published": "2024-05-22T00:00:00+00:00", 686 | "authorized": true, 687 | "lto_name": "Facultat de Matemàtiques i Informàtica - Universitat de Barcelona", 688 | "call-for-translation": { 689 | "title": "Web Content Accessibility Guidelines (WCAG) 2.2 (W3C Recommendation 05 October 2023)", 690 | "spec-version": { 691 | "status": "Recommendation", 692 | "rec-track": true, 693 | "editor-draft": "https://w3c.github.io/wcag/guidelines/22/", 694 | "uri": "https://www.w3.org/TR/2023/REC-WCAG22-20231005/", 695 | "date": "2023-10-05", 696 | "informative": false, 697 | "title": "Web Content Accessibility Guidelines (WCAG) 2.2", 698 | "shortlink": "https://www.w3.org/TR/WCAG22/", 699 | "process-rules": "https://www.w3.org/2023/Process-20230612/", 700 | "_links": { 701 | "self": { 702 | "href": "https://api.w3.org/specifications/WCAG22/versions/20231005" 703 | }, 704 | "editors": { 705 | "href": "https://api.w3.org/specifications/WCAG22/versions/20231005/editors" 706 | }, 707 | "deliverers": { 708 | "href": "https://api.w3.org/specifications/WCAG22/versions/20231005/deliverers" 709 | }, 710 | "specification": { 711 | "href": "https://api.w3.org/specifications/WCAG22" 712 | }, 713 | "predecessor-version": { 714 | "href": "https://api.w3.org/specifications/WCAG22/versions/20231005/predecessors" 715 | }, 716 | "successor-version": { 717 | "href": "https://api.w3.org/specifications/WCAG22/versions/20231005/successors" 718 | }, 719 | "translations": { 720 | "href": "https://api.w3.org/callsfortranslation/301/translations" 721 | } 722 | } 723 | }, 724 | "_links": { 725 | "self": { 726 | "href": "https://api.w3.org/callsfortranslation/301" 727 | }, 728 | "translations": { 729 | "href": "https://api.w3.org/callsfortranslation/301/translations" 730 | } 731 | } 732 | }, 733 | "_links": { 734 | "self": { 735 | "href": "https://api.w3.org/translations/620" 736 | } 737 | }, 738 | "origTitle": "Web Content Accessibility Guidelines (WCAG) 2.2 (W3C Recommendation 05 October 2023)", 739 | "isOutdated": true, 740 | "isPublished": true, 741 | "isPending": false, 742 | "isInReview": false 743 | }, 744 | { 745 | "states": [ 746 | "published" 747 | ], 748 | "uri": "https://lukasjhan.github.io/did-core/", 749 | "title": "탈중앙 식별자 Decentralized Identifiers (DIDs) v1.0", 750 | "language": "ko", 751 | "translators": [ 752 | { 753 | "id": 154263, 754 | "name": "Lukas.J Han", 755 | "given": "Lukas.J", 756 | "family": "Han", 757 | "connected-accounts": [ 758 | { 759 | "created": "2024-03-20T02:18:22+00:00", 760 | "service": "github", 761 | "identifier": "86042901", 762 | "nickname": "lukasjhan", 763 | "profile-picture": "https://avatars.githubusercontent.com/u/86042901?v=4", 764 | "href": "https://github.com/lukasjhan", 765 | "_links": { 766 | "user": { 767 | "href": "https://api.w3.org/users/tqwumkp9v5csog8ccgcw8occk0okcc8" 768 | } 769 | } 770 | } 771 | ], 772 | "discr": "user", 773 | "_links": { 774 | "self": { 775 | "href": "https://api.w3.org/users/tqwumkp9v5csog8ccgcw8occk0okcc8" 776 | }, 777 | "affiliations": { 778 | "href": "https://api.w3.org/users/tqwumkp9v5csog8ccgcw8occk0okcc8/affiliations" 779 | }, 780 | "groups": { 781 | "href": "https://api.w3.org/users/tqwumkp9v5csog8ccgcw8occk0okcc8/groups" 782 | }, 783 | "specifications": { 784 | "href": "https://api.w3.org/users/tqwumkp9v5csog8ccgcw8occk0okcc8/specifications" 785 | }, 786 | "participations": { 787 | "href": "https://api.w3.org/users/tqwumkp9v5csog8ccgcw8occk0okcc8/participations" 788 | }, 789 | "chair_of_groups": { 790 | "href": "https://api.w3.org/users/tqwumkp9v5csog8ccgcw8occk0okcc8/chair-of-groups" 791 | }, 792 | "team_contact_of_groups": { 793 | "href": "https://api.w3.org/users/tqwumkp9v5csog8ccgcw8occk0okcc8/team-contact-of-groups" 794 | } 795 | } 796 | } 797 | ], 798 | "published": "2024-05-20T00:00:00+00:00", 799 | "authorized": false, 800 | "call-for-translation": { 801 | "title": "Decentralized Identifiers (DIDs) v1.0", 802 | "spec-version": { 803 | "status": "Recommendation", 804 | "rec-track": true, 805 | "editor-draft": "https://w3c.github.io/did/", 806 | "uri": "https://www.w3.org/TR/2022/REC-did-core-20220719/", 807 | "date": "2022-07-19", 808 | "informative": false, 809 | "title": "Decentralized Identifiers (DIDs) v1.0", 810 | "shortlink": "https://www.w3.org/TR/did-core/", 811 | "translation": "https://www.w3.org/Translations/?technology=did-core", 812 | "errata": "https://w3c.github.io/did-core/errata.html", 813 | "process-rules": "https://www.w3.org/2021/Process-20211102/", 814 | "_links": { 815 | "self": { 816 | "href": "https://api.w3.org/specifications/did-1.0/versions/20220719" 817 | }, 818 | "editors": { 819 | "href": "https://api.w3.org/specifications/did-1.0/versions/20220719/editors" 820 | }, 821 | "deliverers": { 822 | "href": "https://api.w3.org/specifications/did-1.0/versions/20220719/deliverers" 823 | }, 824 | "specification": { 825 | "href": "https://api.w3.org/specifications/did-1.0" 826 | }, 827 | "predecessor-version": { 828 | "href": "https://api.w3.org/specifications/did-1.0/versions/20220719/predecessors" 829 | }, 830 | "translations": { 831 | "href": "https://api.w3.org/callsfortranslation/288/translations" 832 | } 833 | } 834 | }, 835 | "_links": { 836 | "self": { 837 | "href": "https://api.w3.org/callsfortranslation/288" 838 | }, 839 | "translations": { 840 | "href": "https://api.w3.org/callsfortranslation/288/translations" 841 | } 842 | } 843 | }, 844 | "_links": { 845 | "self": { 846 | "href": "https://api.w3.org/translations/625" 847 | } 848 | }, 849 | "origTitle": "Decentralized Identifiers (DIDs) v1.0", 850 | "isOutdated": false, 851 | "isPublished": true, 852 | "isPending": false, 853 | "isInReview": false 854 | }, 855 | { 856 | "states": [ 857 | "published" 858 | ], 859 | "uri": "https://lukasjhan.github.io/vc-data-model/", 860 | "title": "검증가능한 크리덴셜 데이터 모델 (Verifiable Credentials Data Model v1.1)", 861 | "language": "ko", 862 | "translators": [ 863 | { 864 | "id": 154263, 865 | "name": "Lukas.J Han", 866 | "given": "Lukas.J", 867 | "family": "Han", 868 | "connected-accounts": [ 869 | { 870 | "created": "2024-03-20T02:18:22+00:00", 871 | "service": "github", 872 | "identifier": "86042901", 873 | "nickname": "lukasjhan", 874 | "profile-picture": "https://avatars.githubusercontent.com/u/86042901?v=4", 875 | "href": "https://github.com/lukasjhan", 876 | "_links": { 877 | "user": { 878 | "href": "https://api.w3.org/users/tqwumkp9v5csog8ccgcw8occk0okcc8" 879 | } 880 | } 881 | } 882 | ], 883 | "discr": "user", 884 | "_links": { 885 | "self": { 886 | "href": "https://api.w3.org/users/tqwumkp9v5csog8ccgcw8occk0okcc8" 887 | }, 888 | "affiliations": { 889 | "href": "https://api.w3.org/users/tqwumkp9v5csog8ccgcw8occk0okcc8/affiliations" 890 | }, 891 | "groups": { 892 | "href": "https://api.w3.org/users/tqwumkp9v5csog8ccgcw8occk0okcc8/groups" 893 | }, 894 | "specifications": { 895 | "href": "https://api.w3.org/users/tqwumkp9v5csog8ccgcw8occk0okcc8/specifications" 896 | }, 897 | "participations": { 898 | "href": "https://api.w3.org/users/tqwumkp9v5csog8ccgcw8occk0okcc8/participations" 899 | }, 900 | "chair_of_groups": { 901 | "href": "https://api.w3.org/users/tqwumkp9v5csog8ccgcw8occk0okcc8/chair-of-groups" 902 | }, 903 | "team_contact_of_groups": { 904 | "href": "https://api.w3.org/users/tqwumkp9v5csog8ccgcw8occk0okcc8/team-contact-of-groups" 905 | } 906 | } 907 | } 908 | ], 909 | "published": "2024-05-20T00:00:00+00:00", 910 | "authorized": false, 911 | "call-for-translation": { 912 | "title": "Verifiable Credentials Data Model v1.1", 913 | "spec-version": { 914 | "status": "Recommendation", 915 | "rec-track": true, 916 | "editor-draft": "https://w3c.github.io/vc-data-model/", 917 | "uri": "https://www.w3.org/TR/2022/REC-vc-data-model-20220303/", 918 | "date": "2022-03-03", 919 | "informative": false, 920 | "title": "Verifiable Credentials Data Model v1.1", 921 | "shortlink": "https://www.w3.org/TR/vc-data-model-1.1/", 922 | "process-rules": "https://www.w3.org/2021/Process-20211102/", 923 | "_links": { 924 | "self": { 925 | "href": "https://api.w3.org/specifications/vc-data-model-1.1/versions/20220303" 926 | }, 927 | "editors": { 928 | "href": "https://api.w3.org/specifications/vc-data-model-1.1/versions/20220303/editors" 929 | }, 930 | "deliverers": { 931 | "href": "https://api.w3.org/specifications/vc-data-model-1.1/versions/20220303/deliverers" 932 | }, 933 | "specification": { 934 | "href": "https://api.w3.org/specifications/vc-data-model-1.1" 935 | }, 936 | "predecessor-version": { 937 | "href": "https://api.w3.org/specifications/vc-data-model-1.1/versions/20220303/predecessors" 938 | }, 939 | "translations": { 940 | "href": "https://api.w3.org/callsfortranslation/289/translations" 941 | } 942 | } 943 | }, 944 | "_links": { 945 | "self": { 946 | "href": "https://api.w3.org/callsfortranslation/289" 947 | }, 948 | "translations": { 949 | "href": "https://api.w3.org/callsfortranslation/289/translations" 950 | } 951 | } 952 | }, 953 | "_links": { 954 | "self": { 955 | "href": "https://api.w3.org/translations/628" 956 | } 957 | }, 958 | "origTitle": "Verifiable Credentials Data Model v1.1", 959 | "isOutdated": false, 960 | "isPublished": true, 961 | "isPending": false, 962 | "isInReview": false 963 | }, 964 | { 965 | "states": [ 966 | "published" 967 | ], 968 | "uri": "https://argrath.github.io/activitypub/", 969 | "title": "ActivityPub", 970 | "language": "ja", 971 | "translators": [ 972 | { 973 | "id": 143615, 974 | "name": "Kentaro Shirakata", 975 | "given": "Kentaro", 976 | "family": "Shirakata", 977 | "connected-accounts": [ 978 | { 979 | "created": "2023-04-06T15:18:43+00:00", 980 | "service": "github", 981 | "identifier": "53912", 982 | "nickname": "argrath", 983 | "profile-picture": "https://avatars.githubusercontent.com/u/53912?v=4", 984 | "href": "https://github.com/argrath", 985 | "_links": { 986 | "user": { 987 | "href": "https://api.w3.org/users/phlhq1i33dw40w8wkkow0kog4884s0g" 988 | } 989 | } 990 | } 991 | ], 992 | "discr": "user", 993 | "_links": { 994 | "self": { 995 | "href": "https://api.w3.org/users/phlhq1i33dw40w8wkkow0kog4884s0g" 996 | }, 997 | "affiliations": { 998 | "href": "https://api.w3.org/users/phlhq1i33dw40w8wkkow0kog4884s0g/affiliations" 999 | }, 1000 | "groups": { 1001 | "href": "https://api.w3.org/users/phlhq1i33dw40w8wkkow0kog4884s0g/groups" 1002 | }, 1003 | "specifications": { 1004 | "href": "https://api.w3.org/users/phlhq1i33dw40w8wkkow0kog4884s0g/specifications" 1005 | }, 1006 | "participations": { 1007 | "href": "https://api.w3.org/users/phlhq1i33dw40w8wkkow0kog4884s0g/participations" 1008 | }, 1009 | "chair_of_groups": { 1010 | "href": "https://api.w3.org/users/phlhq1i33dw40w8wkkow0kog4884s0g/chair-of-groups" 1011 | }, 1012 | "team_contact_of_groups": { 1013 | "href": "https://api.w3.org/users/phlhq1i33dw40w8wkkow0kog4884s0g/team-contact-of-groups" 1014 | } 1015 | } 1016 | } 1017 | ], 1018 | "published": "2024-02-26T00:00:00+00:00", 1019 | "authorized": false, 1020 | "call-for-translation": { 1021 | "title": "ActivityPub", 1022 | "spec-version": { 1023 | "status": "Recommendation", 1024 | "rec-track": true, 1025 | "editor-draft": "https://w3c.github.io/activitypub/", 1026 | "uri": "https://www.w3.org/TR/2018/REC-activitypub-20180123/", 1027 | "date": "2018-01-23", 1028 | "informative": false, 1029 | "title": "ActivityPub", 1030 | "shortlink": "https://www.w3.org/TR/activitypub/", 1031 | "translation": "https://www.w3.org/2003/03/Translations/byTechnology?technology=activitypub", 1032 | "errata": "https://www.w3.org/wiki/ActivityPub_errata", 1033 | "process-rules": "https://www.w3.org/2017/Process-20170301/", 1034 | "_links": { 1035 | "self": { 1036 | "href": "https://api.w3.org/specifications/activitypub/versions/20180123" 1037 | }, 1038 | "editors": { 1039 | "href": "https://api.w3.org/specifications/activitypub/versions/20180123/editors" 1040 | }, 1041 | "deliverers": { 1042 | "href": "https://api.w3.org/specifications/activitypub/versions/20180123/deliverers" 1043 | }, 1044 | "specification": { 1045 | "href": "https://api.w3.org/specifications/activitypub" 1046 | }, 1047 | "predecessor-version": { 1048 | "href": "https://api.w3.org/specifications/activitypub/versions/20180123/predecessors" 1049 | }, 1050 | "translations": { 1051 | "href": "https://api.w3.org/callsfortranslation/304/translations" 1052 | } 1053 | } 1054 | }, 1055 | "_links": { 1056 | "self": { 1057 | "href": "https://api.w3.org/callsfortranslation/304" 1058 | }, 1059 | "translations": { 1060 | "href": "https://api.w3.org/callsfortranslation/304/translations" 1061 | } 1062 | } 1063 | }, 1064 | "_links": { 1065 | "self": { 1066 | "href": "https://api.w3.org/translations/622" 1067 | } 1068 | }, 1069 | "origTitle": "ActivityPub", 1070 | "isOutdated": false, 1071 | "isPublished": true, 1072 | "isPending": false, 1073 | "isInReview": false 1074 | }, 1075 | { 1076 | "states": [ 1077 | "published", 1078 | "outdated" 1079 | ], 1080 | "uri": "https://www.asahi-net.or.jp/~ax2s-kmtn/internet/css/REC-mediaqueries-3-20220405.html", 1081 | "title": "メディア・クエリ レベル3", 1082 | "language": "ja", 1083 | "translators": [ 1084 | { 1085 | "id": 112316, 1086 | "name": "Shuji Kamitsuna", 1087 | "given": "Shuji", 1088 | "family": "Kamitsuna", 1089 | "connected-accounts": [], 1090 | "discr": "user", 1091 | "_links": { 1092 | "self": { 1093 | "href": "https://api.w3.org/users/pfpkj72292os0owwc04gggc484oggkw" 1094 | }, 1095 | "affiliations": { 1096 | "href": "https://api.w3.org/users/pfpkj72292os0owwc04gggc484oggkw/affiliations" 1097 | }, 1098 | "groups": { 1099 | "href": "https://api.w3.org/users/pfpkj72292os0owwc04gggc484oggkw/groups" 1100 | }, 1101 | "specifications": { 1102 | "href": "https://api.w3.org/users/pfpkj72292os0owwc04gggc484oggkw/specifications" 1103 | }, 1104 | "participations": { 1105 | "href": "https://api.w3.org/users/pfpkj72292os0owwc04gggc484oggkw/participations" 1106 | }, 1107 | "chair_of_groups": { 1108 | "href": "https://api.w3.org/users/pfpkj72292os0owwc04gggc484oggkw/chair-of-groups" 1109 | }, 1110 | "team_contact_of_groups": { 1111 | "href": "https://api.w3.org/users/pfpkj72292os0owwc04gggc484oggkw/team-contact-of-groups" 1112 | } 1113 | } 1114 | } 1115 | ], 1116 | "published": "2024-01-11T00:00:00+00:00", 1117 | "authorized": false, 1118 | "call-for-translation": { 1119 | "title": "Media Queries Level 3", 1120 | "spec-version": { 1121 | "status": "Recommendation", 1122 | "rec-track": true, 1123 | "editor-draft": "https://drafts.csswg.org/mediaqueries-3/", 1124 | "uri": "https://www.w3.org/TR/2022/REC-mediaqueries-3-20220405/", 1125 | "date": "2022-04-05", 1126 | "informative": false, 1127 | "title": "Media Queries Level 3", 1128 | "shortlink": "https://www.w3.org/TR/mediaqueries-3/", 1129 | "errata": "https://www.w3.org/Style/2022/REC-mediaqueries-3-20220405-errata.html", 1130 | "process-rules": "https://www.w3.org/2021/Process-20211102/", 1131 | "_links": { 1132 | "self": { 1133 | "href": "https://api.w3.org/specifications/mediaqueries-3/versions/20220405" 1134 | }, 1135 | "editors": { 1136 | "href": "https://api.w3.org/specifications/mediaqueries-3/versions/20220405/editors" 1137 | }, 1138 | "deliverers": { 1139 | "href": "https://api.w3.org/specifications/mediaqueries-3/versions/20220405/deliverers" 1140 | }, 1141 | "specification": { 1142 | "href": "https://api.w3.org/specifications/mediaqueries-3" 1143 | }, 1144 | "predecessor-version": { 1145 | "href": "https://api.w3.org/specifications/mediaqueries-3/versions/20220405/predecessors" 1146 | }, 1147 | "successor-version": { 1148 | "href": "https://api.w3.org/specifications/mediaqueries-3/versions/20220405/successors" 1149 | }, 1150 | "translations": { 1151 | "href": "https://api.w3.org/callsfortranslation/291/translations" 1152 | } 1153 | } 1154 | }, 1155 | "_links": { 1156 | "self": { 1157 | "href": "https://api.w3.org/callsfortranslation/291" 1158 | }, 1159 | "translations": { 1160 | "href": "https://api.w3.org/callsfortranslation/291/translations" 1161 | } 1162 | } 1163 | }, 1164 | "_links": { 1165 | "self": { 1166 | "href": "https://api.w3.org/translations/623" 1167 | } 1168 | }, 1169 | "origTitle": "Media Queries Level 3", 1170 | "isOutdated": true, 1171 | "isPublished": true, 1172 | "isPending": false, 1173 | "isInReview": false 1174 | }, 1175 | { 1176 | "states": [ 1177 | "published" 1178 | ], 1179 | "uri": "https://www.asahi-net.or.jp/~ax2s-kmtn/internet/payment/REC-payment-request-20220908.html", 1180 | "title": "決済リクエストAPI", 1181 | "language": "ja", 1182 | "translators": [ 1183 | { 1184 | "id": 112316, 1185 | "name": "Shuji Kamitsuna", 1186 | "given": "Shuji", 1187 | "family": "Kamitsuna", 1188 | "connected-accounts": [], 1189 | "discr": "user", 1190 | "_links": { 1191 | "self": { 1192 | "href": "https://api.w3.org/users/pfpkj72292os0owwc04gggc484oggkw" 1193 | }, 1194 | "affiliations": { 1195 | "href": "https://api.w3.org/users/pfpkj72292os0owwc04gggc484oggkw/affiliations" 1196 | }, 1197 | "groups": { 1198 | "href": "https://api.w3.org/users/pfpkj72292os0owwc04gggc484oggkw/groups" 1199 | }, 1200 | "specifications": { 1201 | "href": "https://api.w3.org/users/pfpkj72292os0owwc04gggc484oggkw/specifications" 1202 | }, 1203 | "participations": { 1204 | "href": "https://api.w3.org/users/pfpkj72292os0owwc04gggc484oggkw/participations" 1205 | }, 1206 | "chair_of_groups": { 1207 | "href": "https://api.w3.org/users/pfpkj72292os0owwc04gggc484oggkw/chair-of-groups" 1208 | }, 1209 | "team_contact_of_groups": { 1210 | "href": "https://api.w3.org/users/pfpkj72292os0owwc04gggc484oggkw/team-contact-of-groups" 1211 | } 1212 | } 1213 | } 1214 | ], 1215 | "published": "2023-12-27T00:00:00+00:00", 1216 | "authorized": false, 1217 | "call-for-translation": { 1218 | "title": "Payment Request API", 1219 | "spec-version": { 1220 | "status": "Recommendation", 1221 | "rec-track": true, 1222 | "editor-draft": "https://w3c.github.io/payment-request/", 1223 | "uri": "https://www.w3.org/TR/2022/REC-payment-request-20220908/", 1224 | "date": "2022-09-08", 1225 | "informative": false, 1226 | "title": "Payment Request API", 1227 | "shortlink": "https://www.w3.org/TR/payment-request/", 1228 | "translation": "https://www.w3.org/Translations/?technology=payment-request", 1229 | "errata": "https://www.w3.org/Payments/WG/errata.html", 1230 | "process-rules": "https://www.w3.org/2021/Process-20211102/", 1231 | "_links": { 1232 | "self": { 1233 | "href": "https://api.w3.org/specifications/payment-request/versions/20220908" 1234 | }, 1235 | "editors": { 1236 | "href": "https://api.w3.org/specifications/payment-request/versions/20220908/editors" 1237 | }, 1238 | "deliverers": { 1239 | "href": "https://api.w3.org/specifications/payment-request/versions/20220908/deliverers" 1240 | }, 1241 | "specification": { 1242 | "href": "https://api.w3.org/specifications/payment-request" 1243 | }, 1244 | "predecessor-version": { 1245 | "href": "https://api.w3.org/specifications/payment-request/versions/20220908/predecessors" 1246 | }, 1247 | "successor-version": { 1248 | "href": "https://api.w3.org/specifications/payment-request/versions/20220908/successors" 1249 | }, 1250 | "translations": { 1251 | "href": "https://api.w3.org/callsfortranslation/303/translations" 1252 | } 1253 | } 1254 | }, 1255 | "_links": { 1256 | "self": { 1257 | "href": "https://api.w3.org/callsfortranslation/303" 1258 | }, 1259 | "translations": { 1260 | "href": "https://api.w3.org/callsfortranslation/303/translations" 1261 | } 1262 | } 1263 | }, 1264 | "_links": { 1265 | "self": { 1266 | "href": "https://api.w3.org/translations/621" 1267 | } 1268 | } 1269 | } 1270 | ] --------------------------------------------------------------------------------