├── .python-version ├── Procfile ├── mypy.ini ├── .gitignore ├── Makefile ├── config.yaml.example ├── templates ├── advanced_partial_forms_hint.html ├── no_duplicate.html ├── bulk-not-allowed.html ├── error-api.html ├── no-such-template.html ├── template_li.html ├── ambiguous-template.html ├── index.html ├── error-oauth-callback.html ├── bulk-result.html ├── wikifunctions.html ├── duplicates.html ├── settings.html ├── bulk.html └── base.html ├── .mailmap ├── CODE_OF_CONDUCT.md ├── static ├── tool.css ├── edit.css ├── menu.js ├── preventDoubleSubmit.js ├── template.css ├── alertPartialForms.js ├── edit.js └── wikifunctions.js ├── dev-requirements.in ├── service.template ├── i18n ├── .dir-locals.el ├── mrh.json ├── th.json ├── cy.json ├── skr-arab.json ├── anp.json ├── vec.json ├── lv.json ├── ro.json ├── ig.json ├── ko-kp.json ├── kai.json ├── et.json ├── ast.json ├── lt.json ├── nn.json ├── la.json ├── kaa.json ├── rki.json ├── xmf.json ├── ta.json ├── ban.json ├── ko.json ├── ku.json ├── ml.json ├── ja.json ├── sh-latn.json ├── yo.json ├── af.json ├── vi.json ├── ba.json ├── ms-arab.json ├── hy.json ├── da.json ├── lb.json ├── eo.json ├── fi.json ├── kn.json ├── sa.json ├── hu.json ├── el.json ├── br.json ├── te.json ├── yue-hant.json ├── pl.json ├── zh-hant.json ├── fa.json ├── zh-hans.json ├── tg.json ├── hno.json ├── pnb.json ├── bn.json ├── tt-cyrl.json ├── hr.json ├── qu.json ├── roa-tara.json ├── or.json ├── ur.json ├── eu.json ├── sk.json ├── ht.json ├── hi.json ├── aig.json ├── he.json ├── sv.json ├── io.json ├── uk.json ├── pa.json └── ar.json ├── entity_ids ├── __init__.py ├── property_ids.py ├── lexical_category_item_ids.py ├── __main__.py └── language_item_ids.py ├── flask_utils.py ├── stubs └── toolforge.pyi ├── requirements.in ├── .flake8 ├── uwsgi.ini ├── test_language_info.py ├── .gitlab-ci.yml ├── LICENSE ├── test_translations.py ├── purge-all-lexemes.py ├── .github └── workflows │ └── test.yaml ├── mwapi_utils.py ├── job-purge-all-lexemes.yaml ├── language_info.py ├── dev-requirements.txt ├── tool_translations_config.py ├── test_flask_utils.py ├── wikibase_types.py ├── requirements.txt ├── parse_tpsv.py └── test_parse_tpsv.py /.python-version: -------------------------------------------------------------------------------- 1 | 3.13 2 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: gunicorn --workers=4 app:app 2 | -------------------------------------------------------------------------------- /mypy.ini: -------------------------------------------------------------------------------- 1 | [mypy] 2 | mypy_path = stubs/ 3 | files = . 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /config.yaml 2 | __pycache__/ 3 | /.pytest_cache/ 4 | /venv/ 5 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: check 2 | 3 | check: 4 | flake8 5 | mypy 6 | pytest 7 | -------------------------------------------------------------------------------- /config.yaml.example: -------------------------------------------------------------------------------- 1 | SECRET_KEY: ... 2 | OAUTH: 3 | CONSUMER_KEY: ... 4 | CONSUMER_SECRET: ... 5 | 6 | -------------------------------------------------------------------------------- /templates/advanced_partial_forms_hint.html: -------------------------------------------------------------------------------- 1 |
5 | An API error occurred while handling this request: 6 |
7 |8 | {{ error.info }} 9 |10 |
{{ message( 'ambiguous-template', template_name=template_name, num_replacement_templates=replacement_templates | length ) }}
7 |16 | {{ message('bulk-format-help') }} 17 |
18 | {% if csrf_error %} 19 |$3唔似個詞組ID(你係咪喺輸入入面指定咗太多個形式?)", 29 | "bulk-first-field-lexeme-id": "既然個模有{{PLURAL:$1|一個形式|$1個形式}}同埋輸入嘅$4行有{{PLURAL:$2|一個欄位|$2個欄位}},第一個欄位唔應該好似個詞組 ID ,但係
$3確實好似一個。 (你係咪唔記得咗輸入入面嘅形式?)", 30 | "bulk-wrong-number-of-fields": "既然個模有{{PLURAL:$1|一個形式|$1個形式}} 每行輸入應該有咁多個欄位(喺建立新嘅詞組嗰陣)或者多一個(當指定要編輯嘅現有詞組嘅 ID 嗰陣),但係輸入嘅 $3 行就有{{PLURAL:$2|一個欄位|$2個欄位}}。", 31 | "bulk-optional-forms-hint": "如果你想略過某啲表格,將佢哋指定為空 (e.g. ...||| 最後三個空表格)。", 32 | "edit-link": "改", 33 | "edit-general": "你喺「編輯」模式。更改下面嘅值會編輯、加入或者剷走目標詞組嘅形式。", 34 | "edit-mismatch-warning": "呢個詞組似乎唔啱呢個範本!請喺繼續之前再檢查佢係咪啱呢個詞典嘅範本。", 35 | "edit-ambiguous-warning": "以下嘅詞彙{{PLURAL:$1|形式}}同多個模形式一樣咁啱:", 36 | "edit-unmatched-warning": "以下嘅詞彙{{PLURAL:$1|形式}}唔啱任何模形式:", 37 | "edit-form-list-item": "$1,$2,{{PLURAL:$3|0=冇陳述|$3個陳述}}", 38 | "no-grammatical-features": "冇文法特徵", 39 | "title-create": "$1(建立)", 40 | "title-advanced": "$1(進階)", 41 | "title-bulk": "$1(批量)", 42 | "title-edit": "$1(編輯)", 43 | "login-hint": "你要[$1 簽到]先可以用呢個架生改嘢。", 44 | "ambiguous-template": "模 $1 已經唔存在;佢已經被以下嘅模取代:", 45 | "settings-label-interface-language-code": "用戶介面語言", 46 | "settings-label-use-wikifunctions": "用 Wiki 函數嚟產生表格建議", 47 | "settings-save": "儲存", 48 | "tool-name": "維基數據詞組形式", 49 | "skip-to-main-content": "跳到主要內容", 50 | "documentation": "文件", 51 | "toolforge": "維基媒體工具庫", 52 | "source-code": "源碼", 53 | "login": "簽到", 54 | "settings-link": "設定", 55 | "settings-heading": "設定", 56 | "logged-in": "{{GENDER:$2|簽到咗}}做 $1。", 57 | "requires-javascript": "呢個功能需要 JavaScript 。", 58 | "wikifunctions-generating": "生成表格…", 59 | "wikifunctions-error": "生成表格嗰陣發生錯誤" 60 | } 61 | -------------------------------------------------------------------------------- /i18n/pl.json: -------------------------------------------------------------------------------- 1 | { 2 | "@metadata": { 3 | "authors": [ 4 | "Chrumps", 5 | "Czupirek", 6 | "Isxoes", 7 | "KaMan", 8 | "Lucas Werkmeister", 9 | "Luku123" 10 | ] 11 | }, 12 | "create": "Utwórz", 13 | "csrf-warning": "Niestety przetworzenie tego żądania było niemożliwe (ochrona CSRF). Proszę spróbować przesłać formularz ponownie.", 14 | "duplicates-warning": "Następujące istniejące leksemy mają tę samą formę kanoniczną i kod języka jak ten, który próbujesz utworzyć:", 15 | "duplicates-instructions": "Jeśli masz pewność, że one są różne, zaznacz kratkę u dołu formularza.", 16 | "duplicates-create": "Mimo to utwórz nowy leksem.", 17 | "no-duplicate": "To nie jest duplikat istniejącego leksemu.", 18 | "form-optional": " (opcjonalnie)", 19 | "advanced": "Zaawansowane", 20 | "advanced-general": "Jesteś w trybie “zaawansowanym”.", 21 | "advanced-lexeme-id": "Możesz podać ID leksemu by dodać formy do istniejącego leksemu, zamiast tworzyć nowy leksem. Formy, które już istnieją, pozostaw puste, w przeciwnym wypadku zostaną one powielone!", 22 | "advanced-partial-forms": "Możesz zostawić niektóre formy puste, dzięki czemu nie zostaną one dodane. Upewnij się, że przypadkowo nie pominąłeś żadnej formy!", 23 | "lexeme-id": "ID leksemu", 24 | "advanced-partial-forms-hint": "Aby utworzyć leksemy z pominięciem niektórych form, przełącz się na tryb zaawansowany.", 25 | "generated-via": "wygenerowane przez", 26 | "bulk-link": "tryb zbiorczy", 27 | "bulk-format-help": "pomoc w formatowaniu", 28 | "bulk-not-allowed": "Nie {{GENDER:$1|możesz}} używać trybu zbiorczego.", 29 | "edit-link": "edytuj", 30 | "edit-general": "Jesteś w trybie „edycji”. Zmiana poniższych wartości spowoduje edycję, dodanie lub usunięcie form leksemu docelowego.", 31 | "edit-form-list-item": "$1 , $2 , {{PLURAL:$3|0=brak deklaracji|jedna deklaracja|$3 deklaracje|$3 deklaracji}}", 32 | "no-grammatical-features": "brak cech gramatycznych", 33 | "title-create": "$1 (stwórz)", 34 | "title-advanced": "$1 (zaawansowane)", 35 | "title-edit": "$1 (edytuj)", 36 | "login-hint": "Aby wprowadzić zmiany za pomocą tego narzędzia, musisz się [$1 zalogować].", 37 | "ambiguous-template": "Szablon $1 już nie istnieje; został on zastąpiony przez następujące szablony", 38 | "settings-label-interface-language-code": "Język interfejsu użytkownika", 39 | "settings-save": "Zapisz", 40 | "skip-to-main-content": "Przeskocz do głównej treści", 41 | "documentation": "Dokumentacja", 42 | "toolforge": "Wikimedia Toolforge", 43 | "source-code": "Kod źródłowy", 44 | "login": "Zaloguj się", 45 | "settings-link": "Ustawienia", 46 | "settings-heading": "Ustawienia", 47 | "logged-in": "{{GENDER:$2| Zalogowany| Zalogowana| Zalogowano}} jako $1.", 48 | "requires-javascript": "Ta funkcja wymaga JavaScriptu." 49 | } 50 | -------------------------------------------------------------------------------- /i18n/zh-hant.json: -------------------------------------------------------------------------------- 1 | { 2 | "@metadata": { 3 | "authors": [ 4 | "Allenwang6212", 5 | "Kly", 6 | "Lucas Werkmeister", 7 | "S8321414", 8 | "Winston Sung" 9 | ] 10 | }, 11 | "create": "建立", 12 | "csrf-warning": "很抱歉,我們無法處理這個請求(CSRF 保護失敗)。請嘗試重新提交。", 13 | "duplicates-warning": "以下現存的{{PLURAL:$1|詞位}},與您現在建立的詞位剛好有相同詞元與語言代碼:", 14 | "duplicates-instructions": "如果您確定{{PLURAL:$1|這個|它們}}不相同,請勾選在形式下方的方框。", 15 | "duplicates-create": "無論如何,建立一個新的詞位。", 16 | "no-duplicate": "這不是現有詞位的重複內容。", 17 | "form-optional": "(非必填)", 18 | "advanced": "進階", 19 | "advanced-general": "您目前在「進階」模式。", 20 | "advanced-lexeme-id": "您可以透過輸入詞位 ID,取代用建立的方式來對現有詞位添加形式。對存在詞位上的任一形式留空,不然會出現重複內容!", 21 | "advanced-partial-forms": "您可以對某些形式內容留空,這樣子它們就不會被添加。另外請確認您沒有意外遺漏掉任何形式!", 22 | "lexeme-id": "詞位識別碼", 23 | "advanced-partial-forms-hint": "要建立缺少某些形式的詞位,請切換成進階模式。", 24 | "generated-via": "產生透過", 25 | "description-with-forms-and-senses": "$1,{{PLURAL:$2|0=沒有形式|1 個形式|$2 個形式}},{{PLURAL:$3|0=沒有含意|1 個含意|$3 個含意}}", 26 | "bulk-link": "批量模式", 27 | "bulk-format-help": "格式說明", 28 | "bulk-not-allowed": "很抱歉,您不被允許使用批量模式。", 29 | "bulk-first-field-not-lexeme-id": "模板有 {{PLURAL:$1|1|$1}} 個形式且輸入的第 $4 行有 {{PLURAL:$2|1|$2}} 欄位,因為第一欄位應該要是詞位 ID,但
$3看起來似乎不是。(您是否在輸入內容裡將某一形式指定過多?)", 30 | "bulk-first-field-lexeme-id": "模板有 {{PLURAL:$1|1|$1}} 個形式且輸入的第 $4 行有 {{PLURAL:$2|1|$2}} 欄位,因為第一欄位應該要是詞位 ID,但
$3看起來似乎不是。(您是否忘記在輸入內容裡的形式?)", 31 | "bulk-wrong-number-of-fields": "模板有 {{PLURAL:$1|1|$1}} 個形式,因為各輸入內容應要有多個欄位(在建立新詞位的時候),或是要多出一個(指定要編輯的現有詞位 ID 時),但是第 $3 行的輸入內容有 {{PLURAL:$2|1|$2}} 個欄位。", 32 | "bulk-optional-forms-hint": "若您想略過某些形式,請將其指定為空(例如:...||| 代表在結尾處有三個空形式)。", 33 | "edit-link": "編輯", 34 | "edit-general": "您目前在「編輯」模式。更改以下的值將會編輯、添加、或是移除目標詞位的形式。", 35 | "edit-mismatch-warning": "這個詞位似乎與此模板不相符!在繼續操作之前,請仔細檢查是否為適用此詞位的模板。", 36 | "edit-ambiguous-warning": "以下詞位{{PLURAL:$1|形式}}相符一個以上模板形式而引起歧義:", 37 | "edit-unmatched-warning": "以下詞位{{PLURAL:$1|形式}}不符合任一模板形式:", 38 | "edit-form-list-item": "$1,$2,{{PLURAL:$3|0=沒有陳述|1 個陳述|$3 個陳述}}", 39 | "no-grammatical-features": "沒有語法特徵", 40 | "title-create": "$1(建立)", 41 | "title-advanced": "$1(進階)", 42 | "title-bulk": "$1(批量)", 43 | "title-edit": "$1(編輯)", 44 | "login-hint": "在您使用此工具來做出更改前,您需要[$1 登入]。", 45 | "ambiguous-template": "模板 $1 已不存在,可能是被以下模板替換:", 46 | "settings-label-interface-language-code": "使用者介面語言", 47 | "settings-label-use-wikifunctions": "使用Wikifunctions產生詞形建議", 48 | "settings-save": "儲存", 49 | "tool-name": "維基數據詞位形式", 50 | "skip-to-main-content": "跳至主要內容", 51 | "documentation": "文件", 52 | "toolforge": "維基媒體 Toolforge", 53 | "source-code": "原始碼", 54 | "login": "登入", 55 | "settings-link": "設定", 56 | "settings-heading": "設定", 57 | "logged-in": "以$1{{GENDER:$2|登入}}。", 58 | "requires-javascript": "此功能需要使用 JavaScript。", 59 | "wikifunctions-generating": "正在產生詞形……", 60 | "wikifunctions-error": "產生詞形時發生錯誤" 61 | } 62 | -------------------------------------------------------------------------------- /i18n/fa.json: -------------------------------------------------------------------------------- 1 | { 2 | "@metadata": { 3 | "authors": [ 4 | "Darafsh", 5 | "Darknessswamp8", 6 | "Ebrahim", 7 | "Ebraminio", 8 | "Jeeputer", 9 | "Ladsgroup", 10 | "LordProfo" 11 | ] 12 | }, 13 | "create": "ایجاد", 14 | "csrf-warning": "شرمنده، ما قادر به پردازش این درخواست نیستیم. (حفاظت CSRF به خطا خورد). لطفاً دوباره این فرم را بفرستید.", 15 | "duplicates-warning": "این {{PLURAL:$1|تکواژه|تکواژهها}} مدخل و زبان یکسانی با تکواژهای که قصد ساختنش را دارید دارند:", 16 | "duplicates-instructions": "اگر مطمئنید که این {{PLURAL:$1|تکواژه|تکواژهها}} متفاوتند، جعبهٔ پایین فُرم را علامت بزنید.", 17 | "duplicates-create": "در هر حال تکواژه تازه را ایجاد کن.", 18 | "no-duplicate": "این یک تکواژه تکراری نیست.", 19 | "form-optional": " (اختیاری)", 20 | "advanced": "پیشرفته", 21 | "advanced-general": "شما در حالت پیشرفته هستید.", 22 | "advanced-lexeme-id": "شما میتوانید یک شماره تکواژ وارد کنید تا فرمهای جدید به آن اضافه کنید. هر فرمی که قبلا در صفحه تکواژه موجود است خالی بگذارید، در غیر این صورت کپی خواهند شد.", 23 | "advanced-partial-forms": "شما میتوانید بخشی از فرمها را خالی بگذارید و در این صورت آنها اضافه نخواهند شد. مطمئن شوید که هیچ فرمی تصادفا خالی نمیگذارید.", 24 | "lexeme-id": "شناسهٔ تکواژه", 25 | "advanced-partial-forms-hint": "برای ایجاد تکواژه بدون بخشی از فرمهایش، به حالت پیشرفته سوییچ کنید.", 26 | "generated-via": "تولید شده با استفاده از", 27 | "description-with-forms-and-senses": "$1، {{PLURAL:$2|0=بدون فرم|یک فرم|$2 فرم}} و {{PLURAL:$3|0=بدون معنی|یک معنی|$3 معنی}}", 28 | "bulk-link": "ویرایش انبوه", 29 | "bulk-format-help": "راهنمای قالببندی", 30 | "bulk-not-allowed": "{{GENDER:$1|شما}} دسترسی لازم برای استفاده از ویرایش انبوه را ندارید. شرمندهایم!", 31 | "bulk-first-field-not-lexeme-id": "از آنجایی که الگو {{PLURAL:$1|یک|$1 فرم}} دارد و خط $4 از مقدار ورودی دارای {{PLURAL:$2|یک قسمت|$2 قسمت}} است، قسمت اول باید شناسهٔ تکواژه (lexeme ID) باشد، اما
$3شبیه شناسهٔ تکواژه نیست. (آیا یک فرم را بیش از حد در ورودی مشخص کردهاید؟", 32 | "bulk-optional-forms-hint": "چنانچه میخواهید برخی فرمها را رد کنید، آنها را بهعنوان خالی نشانگذاری کنید (برای نمونه ...||| برای سه فرم خالی در پایان).", 33 | "edit-link": "ویرایش", 34 | "no-grammatical-features": "بدون ویژگیهای دستوری", 35 | "title-create": "$1 (ایجاد کردن)", 36 | "title-advanced": "$1 (پیشرفته)", 37 | "title-bulk": "$1 (انبوه)", 38 | "title-edit": "$1 (ویرایش)", 39 | "settings-label-interface-language-code": "زبان رابط کاربری", 40 | "settings-save": "ذخیره", 41 | "tool-name": "فرمهای تکواژهٔ ویکیداده", 42 | "skip-to-main-content": "رفتن به محتوای اصلی", 43 | "documentation": "مستندات", 44 | "toolforge": "Wikimedia Toolforge", 45 | "source-code": "کد منبع", 46 | "login": "ورود", 47 | "settings-link": "تنظیمات", 48 | "settings-heading": "تنظیمات", 49 | "logged-in": "{{GENDER:$2|وارد شده}} تحت نام $1.", 50 | "requires-javascript": "این ویژگی نیازمند جاوااسکریپت است." 51 | } 52 | -------------------------------------------------------------------------------- /i18n/zh-hans.json: -------------------------------------------------------------------------------- 1 | { 2 | "@metadata": { 3 | "authors": [ 4 | "Evesiesta", 5 | "GavinTnT", 6 | "Googology", 7 | "GuoPC", 8 | "LittlePaw365", 9 | "Lucas Werkmeister", 10 | "Njzjz", 11 | "Si109", 12 | "TFX202X", 13 | "Xyb", 14 | "Zhang8569", 15 | "沈澄心" 16 | ] 17 | }, 18 | "create": "创建", 19 | "csrf-warning": "抱歉,我们无法处理此请求(CSRF保护失败)。请尝试再次提交表单。", 20 | "duplicates-warning": "以下现存的{{PLURAL:$1|词位}}与您现在创建的词位拥有相同的词目与语言代码:", 21 | "duplicates-instructions": "如果您确定{{PLURAL:$1|这是|它们}}不同,请选中表格底部的复选框。", 22 | "duplicates-create": "无论怎么样,创造一个新的词位。", 23 | "no-duplicate": "这不是现有词位的重复。", 24 | "form-optional": "(可选)", 25 | "advanced": "高级", 26 | "advanced-general": "您处于“高级”模式。", 27 | "advanced-lexeme-id": "您可以输入词位 ID 以将表单添加到现有词位,而不是创建新词位。将词位上已存在的任何形式保留为空白,否则它们将被重复!", 28 | "advanced-partial-forms": "您可以将某些表单留空,这样就不会添加它们。确保您没有意外遗漏任何表格!", 29 | "lexeme-id": "词位编号", 30 | "advanced-partial-forms-hint": "要创建缺少某些形式的词位,请切换到高级模式。", 31 | "generated-via": "通过生成", 32 | "description-with-forms-and-senses": "$1,{{PLURAL:$2|0=无表格|一种表格|$2形式}}和{{PLURAL:$3|0=无感觉|有感觉|$3感官}}", 33 | "bulk-link": "批量模式", 34 | "bulk-format-help": "格式帮助", 35 | "bulk-not-allowed": "{{GENDER:$1|您不能使用批量模式。}}对不起。", 36 | "bulk-first-field-not-lexeme-id": "由于模板有{{PLURAL:$1|一种形式| $1形成}} 并且输入的$4行有{{PLURAL:$2|一场| $2 fields}},第一个字段应该看起来像词素 ID,但
$3看起来不像词素 ID。 (您是否在输入中指定了过多的一种形式?)", 37 | "bulk-first-field-lexeme-id": "由于模板有{{PLURAL:$1|一种形式| $1形成}} 并且输入的$4行有{{PLURAL:$2|一场| $2 fields}},第一个字段不应看起来像词位 ID,但
$3确实看起来像一个。 (您是否忘记输入表格?)", 38 | "bulk-wrong-number-of-fields": "由于模板有{{PLURAL:$1|一种形式| $1形式}},每个输入行应该有那么多字段(当创建新词素时)或更多字段(当指定要编辑的现有词素的 ID 时),但输入的$3行有{{PLURAL:$2|一场| $2字段}} 代替。", 39 | "bulk-optional-forms-hint": "如果您想跳过某些表单,请将它们指定为空(例如...|||表示末尾的三个空表单)。", 40 | "edit-link": "编辑", 41 | "edit-general": "您处于“编辑”模式。更改下面的值将编辑、添加或删除目标词位的形式。", 42 | "edit-mismatch-warning": "该词素似乎与该模板不匹配!在继续之前,请仔细检查它是否是该词素的正确模板。", 43 | "edit-ambiguous-warning": "以下词位{{PLURAL:$1| form|forms}} 与多个模板表单同样匹配:", 44 | "edit-unmatched-warning": "以下词位{{PLURAL:$1| form|forms}} 与任何模板表单都不匹配:", 45 | "edit-form-list-item": "$1 ,$2 ,{{PLURAL:$3|0=无陈述|一个陈述|$3报表}}", 46 | "no-grammatical-features": "没有语法特征", 47 | "title-create": "$1(创建)", 48 | "title-advanced": "$1(高级)", 49 | "title-bulk": "$1(批量)", 50 | "title-edit": "$1(编辑)", 51 | "login-hint": "您需要 [$1 登录] 才能使用此工具进行更改。", 52 | "ambiguous-template": "模板$1不再存在;它已被以下模板取代:", 53 | "settings-label-interface-language-code": "用户界面语言", 54 | "settings-label-use-wikifunctions": "使用Wikifunctions生成表单建议", 55 | "settings-save": "保存", 56 | "tool-name": "Wikidata词位形式", 57 | "skip-to-main-content": "跳至主要内容", 58 | "documentation": "文档", 59 | "toolforge": "维基媒体Toolforge", 60 | "source-code": "源代码", 61 | "login": "登录", 62 | "settings-link": "设置", 63 | "settings-heading": "设置", 64 | "logged-in": "已以$1身份{{GENDER:$2|登录}}。", 65 | "requires-javascript": "该功能需要JavaScript。", 66 | "wikifunctions-generating": "生成表格...", 67 | "wikifunctions-error": "生成表单时发生错误" 68 | } 69 | -------------------------------------------------------------------------------- /i18n/tg.json: -------------------------------------------------------------------------------- 1 | { 2 | "@metadata": { 3 | "authors": [ 4 | "Farorud", 5 | "Lucas Werkmeister", 6 | "Tokyo Akademia" 7 | ] 8 | }, 9 | "create": "Сохтан", 10 | "csrf-warning": "Бахшиш, дархост иҷро нашуд (CSRF хатои муҳофизат). Лутфан, кушиш кунед шаклро (формаро) бори дигар ирсол кунед", 11 | "duplicates-warning": "{{PLURAL:$1|Лексемаи баъдӣ|Лексемаҳои баъдӣ}}, лемма ва забони монанд ба лексемаи эҷодшудаи шумо доранд:", 12 | "duplicates-instructions": "Агар шумо боварӣ доред, ки {{PLURAL:$1|он фарқ мекунад|онҳо фарқ мекунад}}, лутфан дар зери шакл (форма) қайдашон кунед.", 13 | "duplicates-create": "Ба ҳар ҳол лексемаи нав сохтан.", 14 | "no-duplicate": "Ин дубликати лексемаи вуҷуддошта нест", 15 | "form-optional": " (ғайризарур)", 16 | "advanced": "Танзимоти васеъ", 17 | "advanced-general": "Шумо дар режими “пешрафта” мебошед.", 18 | "advanced-lexeme-id": "Шумо метавонед ID-и лексемаро ворид кунед то ба ӯ аз баҷои лексемаи нав сохтан шаклҳоро илова кунед. Шаклҳое, ки аллакай вуҷуд доранд, холӣ монед, дар акси ҳол онҳо аз сари нав илова мешаванд!", 19 | "advanced-partial-forms": "Шумо метавонед шаклҳоро холӣ монед то онҳо илова нашаванд. Боварӣ ҳосил кунед, ки шумо ин корро тасодуфан анҷом надодед!", 20 | "lexeme-id": "ID-и лексема", 21 | "advanced-partial-forms-hint": "Барои эҷоди лексема бе ягон шакл ба режими васеъ гузаред.", 22 | "generated-via": "карда шудааст бо", 23 | "description-with-forms-and-senses": "$1, {{PLURAL:$2|0=шакл нест|як шакл|$2 шаклҳо}} ва {{PLURAL:$3|0=маъное нест|як маъно|$3 маъноҳо}}", 24 | "bulk-link": "шакли вироиши омма", 25 | "bulk-format-help": "роҳнамои қолаббандӣ", 26 | "bulk-not-allowed": "Мутаассифона, ба шумо иҷозат дода нашудааст, ки режими оммавӣ истифода баред.", 27 | "edit-link": "вироиш", 28 | "edit-general": "Шумо дар ҳолати \"вироиш\" ҳастед. Тағйир додани арзишҳои зер шаклҳои ин лексемаро вироиш, илова ё нест мекунанд.", 29 | "edit-mismatch-warning": "Ин лексема ба ин шаблон мувофиқат намекунад! Пеш аз идома додан, боварӣ ҳосил кунед, ки ин намунаи дурусти ин лексема аст.", 30 | "edit-form-list-item": "$1, $2, {{PLURAL:$3|0=бе тасдиқ|як тасдиқ|$3 тасдиқот}}", 31 | "no-grammatical-features": "хусусиятҳои имлоӣ нест", 32 | "title-create": "$1 (эҷод)", 33 | "title-advanced": "$1 (пешрафта)", 34 | "title-bulk": "$1 (омма)", 35 | "title-edit": "$1 (вироиш)", 36 | "settings-label-interface-language-code": "Забони интерфейс", 37 | "settings-label-use-wikifunctions": "Викифунксияҳоро барои эҷоди пешниҳоди шаклҳо истифода кунед", 38 | "settings-save": "Захира", 39 | "tool-name": "Шаклҳои лексемаҳои Викидода", 40 | "skip-to-main-content": "Рафтан ба муҳтавои асосӣ", 41 | "documentation": "Ҳуҷҷатгузорӣ", 42 | "toolforge": "Wikimedia Toolforge", 43 | "source-code": "Рамзи манбаъ", 44 | "login": "Вуруд", 45 | "settings-link": "Танзимот", 46 | "settings-heading": "Танзимот", 47 | "logged-in": "{{GENDER:$2|Шумо ба система}} чун $1 ворид шудед.", 48 | "requires-javascript": "Ин вижагӣ JavaScript-ро талаб мекунад.", 49 | "wikifunctions-generating": "шаклсозӣ...", 50 | "wikifunctions-error": "ҳангоми эҷоди шаклҳо хато рӯх дод" 51 | } 52 | -------------------------------------------------------------------------------- /parse_tpsv.py: -------------------------------------------------------------------------------- 1 | """Functions to parse lexeme form representations from tab/pipe-separated values syntax.""" 2 | 3 | import re 4 | from typing import List 5 | import werkzeug.datastructures 6 | 7 | from templates import Template 8 | 9 | 10 | def parse_lexemes(tpsv: str, template: Template) -> List[werkzeug.datastructures.MultiDict]: 11 | lexemes = [] 12 | for n, line in enumerate(tpsv.split('\n')): 13 | line = line.rstrip('\r') 14 | if not line: 15 | continue 16 | lexemes.append(parse_lexeme(line, template, line_number=n + 1)) 17 | return lexemes 18 | 19 | 20 | def parse_lexeme(line: str, template: Template, line_number: int) -> werkzeug.datastructures.MultiDict: 21 | fields = [field.strip() for field in line.replace('\t', '|').split('|')] 22 | if len(fields) == len(template['forms']) + 1: 23 | [lexeme_id, *form_representations] = fields 24 | if not re.fullmatch(r'L[1-9][0-9]*', lexeme_id): 25 | raise FirstFieldNotLexemeIdError(len(template['forms']), len(fields), lexeme_id, line_number) 26 | return werkzeug.datastructures.ImmutableMultiDict([ 27 | ('lexeme_id', lexeme_id), 28 | *(('form_representation', form_representation) for form_representation in form_representations)]) 29 | if len(fields) == len(template['forms']): 30 | form_representations = fields 31 | if re.fullmatch(r'L[1-9][0-9]*', form_representations[0]): 32 | raise FirstFieldLexemeIdError(len(template['forms']), len(fields), form_representations[0], line_number) 33 | return werkzeug.datastructures.ImmutableMultiDict( 34 | [('form_representation', form_representation) for form_representation in form_representations]) 35 | raise WrongNumberOfFieldsError(len(template['forms']), len(fields), line_number) 36 | 37 | 38 | class FirstFieldNotLexemeIdError(ValueError): 39 | """Error raised if there are n+1 fields but the first one is not a lexeme ID.""" 40 | 41 | def __init__(self, num_forms: int, num_fields: int, first_field: str, line_number: int): 42 | assert num_fields == num_forms + 1 43 | self.num_forms = num_forms 44 | self.num_fields = num_fields 45 | self.first_field = first_field 46 | self.line_number = line_number 47 | super().__init__('n+1 fields but first field is not a lexeme ID') 48 | 49 | 50 | class FirstFieldLexemeIdError(ValueError): 51 | """Error raised if there are n fields but the first one is a lexeme ID.""" 52 | 53 | def __init__(self, num_forms: int, num_fields: int, first_field: str, line_number: int): 54 | assert num_fields == num_forms 55 | self.num_forms = num_forms 56 | self.num_fields = num_fields 57 | self.first_field = first_field 58 | self.line_number = line_number 59 | super().__init__('n fields but first field looks like a lexeme ID') 60 | 61 | 62 | class WrongNumberOfFieldsError(ValueError): 63 | """Error raised if there are neither n nor n+1 fields.""" 64 | 65 | def __init__(self, num_forms: int, num_fields: int, line_number: int): 66 | assert num_fields not in {num_forms, num_forms + 1} 67 | self.num_forms = num_forms 68 | self.num_fields = num_fields 69 | self.line_number = line_number 70 | super().__init__('neither n nor n+1 fields') 71 | -------------------------------------------------------------------------------- /i18n/hno.json: -------------------------------------------------------------------------------- 1 | { 2 | "@metadata": { 3 | "authors": [ 4 | "Bgo eiu", 5 | "Lucas Werkmeister" 6 | ] 7 | }, 8 | "create": "بنڑاؤ", 9 | "csrf-warning": "افسوس، اسی سنیہا لے نی سکدا (CSRF رکھ نال غلطی ہو گئی)۔ شاید تسی فیر کر سکدے او۔", 10 | "duplicates-warning": "سمان بولی تے سمان اکھراں نال {{PLURAL:$1|ہک ہور لغتی مد|ہور لغتی مد}} پہلاں پائیاں گیاں –", 11 | "duplicates-instructions": "جیکر تسی پکے ہو کہ {{PLURAL:$1|اِس|اِنہاں}} توں نواں لفظ وکھرا اے، صفحے تلے چیک پا دیو۔", 12 | "duplicates-create": "ٹھیک اے، نواں لغتی مد بݨراؤ۔", 13 | "no-duplicate": "ہور لغتی مداں نال ایہہ وکھرا اے۔", 14 | "form-optional": " (نی ضروری)", 15 | "advanced": "اضافی والا", 16 | "advanced-general": "تسی ”اضافی والا“ تے آۓ اے۔", 17 | "advanced-lexeme-id": "ہور روپ دینڑ واسطے تسی پہلاں پائی گئی لفظی شناخت لکھ سکدے او۔ کوئی کجھ پہلاں پایاں گیاں روپاں دے پیٹ خالی ہو چاہیدے ان۔", 18 | "advanced-partial-forms": "کجھ روپ خالی ہو سکدے۔ پکے کرو کہ سارے ٹھیک ان!", 19 | "lexeme-id": "لغتی شناختی", 20 | "advanced-partial-forms-hint": "صرف کجھ روپ دینڑ واسطے اضافی والا ایہہ کم کر سکدا۔", 21 | "generated-via": "وسیلہ –", 22 | "description-with-forms-and-senses": "$1، {{PLURAL:$2|0=روپ کوئی نئیں|ہک روپ|$2 روپ}} تے {{PLURAL:$3|0=معنے کوئی نئیں|یک معنیٰ|$3 معنے}}", 23 | "bulk-link": "تھوک والا", 24 | "bulk-format-help": "طریقے دی مدد", 25 | "bulk-not-allowed": "افسوس۔ {{GENDER:$1|تسی}} تھوک والے نال روپ پا نئیں سکدے؛ تساں دے کھاتے دی اِجازت نی دتی گئی اے۔", 26 | "bulk-first-field-not-lexeme-id": "فرمے تے {{PLURAL:$1|ہک |$1}} روپ ویکھے، سطر $4 تے {{PLURAL:$2|ہک حصہ|$2 حصے}} ویکھے، پر پہلا لکھت
$3درست شناختی نئیں اے۔ شاید روپاں دی گݨتی نال غلطی ہو گئی۔", 27 | "bulk-first-field-lexeme-id": "فرمے تے {{PLURAL:$1|۱|$1}} روپ ویکھے، سطر $4 تے {{PLURAL:$2|۱|$2}} حصہ ویکھے، پر پہلا لکھت
$3لغتی شناختی اے، پر ایہہ نمبر ہو نئیں چاہیدا۔ شاید روپاں دی گنتی نال غلطی ہو گئی۔", 28 | "bulk-wrong-number-of-fields": "{{PLURAL:$1|ہک روپ|$1 روپاں}} نال ہر سطر تے $1 یا ایہتھوں ہک ودھ حصے ہو چاہیدے، پر سطر $3 تے {{PLURAL:$2|۱ حصہ ویکھا|$2 حصے ویکھے}}۔", 29 | "bulk-optional-forms-hint": "کدے کوئی کجھ روپ دینڑ نی چاہیدے، ”|“ نشاناں نال خالی حصے پا سکدے او۔ مثلاً چار خالی حصے تے دو نویں روپ – ||||کھیڑیا|کھیڑیو", 30 | "edit-link": "تبدیل کرو", 31 | "edit-general": "تسی تبدیل والے تے آۓ او۔ لکھت بدل کے نویاں تبدیلیاں پا سکدیاں۔", 32 | "edit-mismatch-warning": "فرمے توں کلمہ وکھرا اے! تسیں پکے کرو کہ ایہہ فرما درست اے۔", 33 | "edit-ambiguous-warning": "{{PLURAL:$1|ایہتھوں}} کجھ فرمے لاۓ ان –", 34 | "edit-unmatched-warning": "{{PLURAL:$1|ایہتھوں}} کوئی نئیں فرمے لاۓ ان –", 35 | "edit-form-list-item": "$1، $2، {{PLURAL:$3|0=بیان کوئی نئیں|ہک بیان|$3 بیان}}", 36 | "no-grammatical-features": "کوئی روپ دے نشان نی دتے اے", 37 | "title-create": "$1 (بنڑاؤ)", 38 | "title-advanced": "$1 (اضافی والا)", 39 | "title-bulk": "$1 (تھوک والا)", 40 | "title-edit": "$1 (تبدیل کرن)", 41 | "login-hint": "تبدیل کرن واسطے پہلاں [$1 لاگ این کرو]۔", 42 | "ambiguous-template": "ہنڑ تے فرما $1 مٹایا اے۔ موجود فرمے لاۓ گئے –", 43 | "settings-label-interface-language-code": "ورت آلی زبان", 44 | "settings-save": "ذخیرہ کرو", 45 | "tool-name": "وکیڈیٹے روپے دے فرمے", 46 | "skip-to-main-content": "منصوبے کو ونجو", 47 | "documentation": "دستاویز", 48 | "toolforge": "وکیمیڈیا ٹولفرج", 49 | "source-code": "ماخذ", 50 | "login": "لاگ ان کرو", 51 | "settings-link": "سیٹنگاں", 52 | "settings-heading": "سیٹنگاں", 53 | "logged-in": "$1 کھاتے کو لاگ ان کیتا گیا۔" 54 | } 55 | -------------------------------------------------------------------------------- /i18n/pnb.json: -------------------------------------------------------------------------------- 1 | { 2 | "@metadata": { 3 | "authors": [ 4 | "Bgo eiu", 5 | "Lucas Werkmeister" 6 | ] 7 | }, 8 | "create": "بݨاؤ", 9 | "csrf-warning": "افسوس، اسیں سنیہا لے نہیں سکدا (CSRF رکھ نال غلطی ہو گئی)۔ شاید تسیں فیر کر سکدے او۔", 10 | "duplicates-warning": "سمان بولی تے سمان اکھراں نال {{PLURAL:$1|اک ہور چیز|ہور کجھ چیزاں}} پہلاں پائیاں گیاں –", 11 | "duplicates-instructions": "جیکر تسیں پکے ہو کہ {{PLURAL:$1|ایس|اینہاں}} توں نواں لفظ وکھرا اے، صفحے تلے چیک پا دیو۔", 12 | "duplicates-create": "ٹھیک اے، نواں لفظ دیو۔", 13 | "no-duplicate": "ہور چیزاں نال ایہہ وکھرا اے۔", 14 | "form-optional": " (نہ لوڑ)", 15 | "advanced": "اضافی والا", 16 | "advanced-general": "تسیں اضافی والے تے آۓ اے۔", 17 | "advanced-lexeme-id": "ہور روپ دیݨ واسطے تسیں پہلاں پائی گئی لفظی شناخت لکھ سکدے او۔ کوئی کجھ پہلاں پایاں گیاں روپاں دے پیٹ خالی ہو چاہیدے ان۔", 18 | "advanced-partial-forms": "کجھ روپ خالی ہو سکدے۔ پکے کرو کہ سارے ٹھیک ان!", 19 | "lexeme-id": "لفظی شناخت", 20 | "advanced-partial-forms-hint": "صرف کجھ روپ دیݨ واسطے اضافی والا ایہہ کم کر سکدا۔", 21 | "generated-via": "وسیلہ –", 22 | "description-with-forms-and-senses": "$1، {{PLURAL:$2|0=روپ کوئی نہیں|اِکّ روپ|$2 روپ}} تے {{PLURAL:$3|0=معنے کوئی نہیں|اِکّ معنیٰ|$3 معنے}}", 23 | "bulk-link": "تھوک والا", 24 | "bulk-format-help": "طریقے دی مدد", 25 | "bulk-not-allowed": "افسوس۔ {{GENDER:$1|تسیں}} تھوک والے نال روپ پا نہیں سکدے؛ تہاڈے کھاتے دی اجازت نہیں دتی۔", 26 | "bulk-first-field-not-lexeme-id": "فرمے تے {{PLURAL:$1|۱|$1}} روپ ویکھے، سطر $4 تے {{PLURAL:$2|۱ حصہ|$2 حصے}} ویکھے، پر پہلا لکھت
$3درست شناخت نہیں اے۔ شاید روپاں دی گنتی نال غلطی ہو گئی۔", 27 | "bulk-first-field-lexeme-id": "فرمے تے {{PLURAL:$1|۱|$1}} روپ ویکھے، سطر $4 تے {{PLURAL:$2|۱|$2}} حصہ ویکھے، پر پہلا لکھت
$3لفظی شناخت اے، پر ایہہ نمبر ہو نہیں چاہیدا۔ شاید روپاں دی گنتی نال غلطی ہو گئی۔", 28 | "bulk-wrong-number-of-fields": "{{PLURAL:$1|اک روپ|$1 روپاں}} نال ہر سطر تے $1 یا ایہتھوں اک ودھ حصے ہو چاہیدے، پر سطر $3 تے {{PLURAL:$2|اک حصہ ویکھیا|$2 حصے ویکھے}}۔", 29 | "bulk-optional-forms-hint": "کدے کوئی کجھ روپ دیݨ نہیں چاہیدے، ”|“ نشاناں نال خالی حصے پا سکدے او۔ مثلاً ۴ خالی حصے تے ۲ نویں روپ – ||||کھیڑیا|کھیڑیو", 30 | "edit-link": "تبدیل کرو", 31 | "edit-general": "تسیں تبدیل والے تے آۓ او۔ لکھت بدلکے نویاں تبدیلیاں پا سکدیاں۔", 32 | "edit-mismatch-warning": "فرمے توں کلمہ وکھرا اے! تسیں پکے کرو کہ ایہہ فرما درست اے۔", 33 | "edit-ambiguous-warning": "{{PLURAL:$1|ایہتھوں}} کجھ فرمے لاۓ ان –", 34 | "edit-unmatched-warning": "{{PLURAL:$1|ایہتھوں}} کوئی نہیں فرمے لاۓ ان –", 35 | "edit-form-list-item": "$1، $2، {{PLURAL:$3|0=بیان کوئی نہیں|اک بیان|$3 بیان}}", 36 | "no-grammatical-features": "کوئی روپ دے نشان نہیں دتے اے", 37 | "title-create": "$1 (بݨاؤ)", 38 | "title-advanced": "$1 (اضافی والا)", 39 | "title-bulk": "$1 (تھوک والا)", 40 | "title-edit": "$1 (تبدیل کرنا)", 41 | "login-hint": "تبدیل کرن واسطے پہلاں [$1 لاگ ان کرو]۔", 42 | "ambiguous-template": "ہݨ تے فرما $1 مٹایا۔ موجود فرمے لاۓ گئے –", 43 | "settings-label-interface-language-code": "ورتوں دی بولی", 44 | "settings-save": "سامبھو", 45 | "tool-name": "وکیڈیٹے روپ دے فرمے", 46 | "skip-to-main-content": "منصوبے نوں جاؤ", 47 | "documentation": "دستاویز", 48 | "toolforge": "وکیمیڈیا ٹولفرج", 49 | "source-code": "ماخذ", 50 | "login": "لاگ ان کرو", 51 | "settings-link": "سیٹنگاں", 52 | "settings-heading": "سیٹنگاں", 53 | "logged-in": "$1 وجوں لاگ ان کیتا گیا۔", 54 | "requires-javascript": "ایس فیچر نوں جاوا سکریپٹ دی لوڑ اے۔" 55 | } 56 | -------------------------------------------------------------------------------- /i18n/bn.json: -------------------------------------------------------------------------------- 1 | { 2 | "@metadata": { 3 | "authors": [ 4 | "Bodhisattwa", 5 | "Borhan", 6 | "Lucas Werkmeister", 7 | "Mahir256", 8 | "Meghmollar2017", 9 | "Tahmid", 10 | "Tanay barisha", 11 | "ZI Jony", 12 | "আজিজ", 13 | "আফতাবুজ্জামান" 14 | ] 15 | }, 16 | "create": "তৈরি করুন", 17 | "csrf-warning": "দুঃখিত, আমরা এই অনুরোধটির প্রক্রিয়াকরণ করতে পারিনি (সিএসআরএফ সুরক্ষা ব্যর্থ)। দয়া করে আবার ফরমটি জমা দিন।", 18 | "duplicates-warning": "আপনি যে লেক্সিম তৈরি করতে চাইছেন তার অনুরূপ লেমা এবং ভাষা-কোড নিম্নলিখিত {{PLURAL:$1|লেক্সিমে|লেক্সিমগুলিতে}} রয়েছে :", 19 | "duplicates-instructions": "আপনি যদি নিশ্চিত হন যে {{PLURAL:$1|এগুলি}} ভিন্ন, তাহলে ফরমের একদম শেষে বাক্সটিতে টিক দিন।", 20 | "duplicates-create": "তবুও নতুন লেক্সিম তৈরি করুন।", 21 | "no-duplicate": "এটি বিদ্যমান কোনও লেক্সিমের সদৃশ নয়।", 22 | "form-optional": " (ঐচ্ছিক)", 23 | "advanced": "উন্নত", 24 | "advanced-general": "আপনি \"উন্নত\" প্রণালী ব্যবহার করছেন।", 25 | "advanced-lexeme-id": "নতুন লেক্সিম তৈরি করার পরিবর্তে কোন বিদ্যমান লেক্সিমের আইডি লিখে সেটির শব্দরূপ যোগ করতে পারেন। বিদ্যমান শব্দরূপের ক্ষেত্রগুলি ফাঁকা রাখুন, নতুবা সেটির সদৃশ আরেকটি শব্দরূপ তৈরি হবে!", 26 | "advanced-partial-forms": "কোন শব্দরূপ যোগ করতে না চাইলে সেটি ফাঁকা রাখতে পারেন। তবে এটি নিশ্চিত করুন যে আপনি ভুলবশত কোন শব্দরূপ ছেড়ে যাচ্ছেন না।", 27 | "lexeme-id": "লেক্সিম আইডি", 28 | "advanced-partial-forms-hint": "যদি এমন লেক্সিম তৈরি করতে চান, যেটির কিছু শব্দরূপ অনুপস্থিত, তবে \"উচ্চতর\" প্রণালী ব্যবহার করুন।", 29 | "generated-via": "যার মাধ্যমে উৎপন্ন", 30 | "description-with-forms-and-senses": "$1, {{PLURAL:$2|0=শব্দরূপ নেই|একটি শব্দরূপ|$2টি শব্দরূপ}} ও {{PLURAL:$3|0=অর্থ নেই|একটি অর্থ|$3টি অর্থ}}", 31 | "bulk-link": "গণহার প্রক্রিয়া", 32 | "bulk-format-help": "বিন্যাস সাহায্য", 33 | "bulk-not-allowed": "আপনার গণহার প্রক্রিয়াটি ব্যবহার করার অনুমতি নেই। দুঃখিত।", 34 | "bulk-optional-forms-hint": "আপনি যদি কোনো রূপ এড়িয়ে যেতে চান, সেগুলিকে খালি হিসাবে উল্লেখ করুন (যেমন: শেষে তিনটি খালি ফর্মের জন্য ...||| লিখুন)।", 35 | "edit-link": "সম্পাদনা করুন", 36 | "edit-general": "আপনি সম্পাদনা মোডে রয়েছেন। নিচের মানগুলি পরিবর্তন করলে লেক্সিমটির শব্দরূপ সম্পাদনা, যোগ বা অপসারণ করা যাবে।", 37 | "edit-mismatch-warning": "এই লেক্সিম এই টেমপ্লেটের সঙ্গে সামঞ্জস্যপূর্ণ বলে মনে হচ্ছে না! দয়া করে আগোনোর আগে এটি সঠিক টেমপ্লেট কিনা আরেকবার যাচাই করে নিন।", 38 | "edit-ambiguous-warning": "পরবর্তী লেক্সিমটির {{PLURAL:$1|শব্দরূপটি|শব্দরূপগুলি}} একাধিক টেমপ্লেটের সঙ্গে সমানভাবে সামঞ্জস্য রক্ষা করছে:", 39 | "edit-unmatched-warning": "পরবর্তী লেক্সিমটির {{PLURAL:$1|শব্দরূপটি|শব্দরূপগুলি}} কোন টেমপ্লেটের সঙ্গে সামঞ্জস্যপূর্ণ নয়:", 40 | "edit-form-list-item": "$1, $2, {{PLURAL:$3|0=বিবৃতি নেই|একটি বিবৃতি|$3টি বিবৃতি}}", 41 | "no-grammatical-features": "কোনও ব্যাকরণগত বৈশিষ্ট্য নেই", 42 | "title-create": "$1 (তৈরি করুন)", 43 | "title-advanced": "$1 (উন্নত)", 44 | "title-bulk": "$1 (গণহারে)", 45 | "title-edit": "$1 (সম্পাদনা)", 46 | "login-hint": "এই সরঞ্জাম ব্যবহার করে পরিবর্তন করার আগে আপনাকে [$1 প্রবেশ] করতে হবে।", 47 | "ambiguous-template": "$1 টেমপ্লেটটি আর বিদ্যমান নয়; নিম্নলিখিত টেমপ্লেটগুলো দিয়ে এটি প্রতিস্থাপিত হয়েছে:", 48 | "settings-label-interface-language-code": "ব্যবহারকারীর ইন্টারফেসের ভাষা", 49 | "settings-save": "সংরক্ষণ", 50 | "skip-to-main-content": "মূল বিষয়বস্তুতে যান", 51 | "documentation": "নথি", 52 | "toolforge": "উইকিমিডিয়া টুলফোর্জ", 53 | "source-code": "উৎস কোড", 54 | "login": "প্রবেশ করুন", 55 | "settings-link": "সেটিংস", 56 | "settings-heading": "সেটিংস", 57 | "requires-javascript": "এই বৈশিষ্ট্যের জন্য জাভাস্ক্রিপ্ট প্রয়োজন।" 58 | } 59 | -------------------------------------------------------------------------------- /i18n/tt-cyrl.json: -------------------------------------------------------------------------------- 1 | { 2 | "@metadata": { 3 | "authors": [ 4 | "Blackisnewyellow", 5 | "Ерней" 6 | ] 7 | }, 8 | "create": "Төзү", 9 | "csrf-warning": "Гафу итегез, сорашу барып чыкмады (CSRF саклау хатасы). Зинһар, форманы яңадан җибәреп карагыз.", 10 | "duplicates-warning": "{{PLURAL:$1|Киләсе болай да булучы лексеманың|Киләсе болай да булучы лексемаларның}} сез ясый торганныкы кебек шундый ук лемма һәм тел коды бар:", 11 | "duplicates-instructions": "Әгәр сез {{PLURAL:$1|аның аерылып торганына|аларның аерылып торганнарына}} ышанасыз икән, форма астында билге куегыз.", 12 | "duplicates-create": "Ничек булса да яңа лексема язмагыз.", 13 | "no-duplicate": "Бу булган лексеманың дубликаты түгел.", 14 | "form-optional": " (мәҗбүр түгел)", 15 | "advanced": "Киңәйтелгән көйләнмәләр", 16 | "advanced-general": "Сез \"киңәйтелгән\" режимда.", 17 | "advanced-lexeme-id": "Яңа лексема төзү урынына сез лексемага формалар өстәр өчен аның IDын кертә аласыз. Инде булган формаларны тутырылмаган килеш калдырыгыз, киресендә алар кабат өстәләчәк!", 18 | "advanced-partial-forms": "Сез алар өстәлмәс өчен кайбер формаларны буш калдыра аласыз. Бу гамәлне ялгыш башкара күрмәгез!", 19 | "lexeme-id": "Лексеманың IDы", 20 | "advanced-partial-forms-hint": "Кайбер формаларсыз лексемалар ясау өчен киңәйтелгән режимга күчегезче.", 21 | "generated-via": "нәрсә ярдәмендә генерацияләнгән", 22 | "description-with-forms-and-senses": "$1, {{PLURAL:$2|0=формалар юк|бер форма|$2 форма}} һәм {{PLURAL:$3|0=мәгънәләр юк|бер мәгънә|$3 мәгънә}}", 23 | "bulk-link": "массакүләмле режим", 24 | "bulk-format-help": "формат буенча ярдәм", 25 | "bulk-not-allowed": "Кызганычка каршы, сезгә массакүләмле режимны кулланырга рөхсәт ителмәгән.", 26 | "bulk-first-field-not-lexeme-id": "Калыпта {{PLURAL:$1|бер форма|$1 форма}}, ә $4 кертү юлында {{PLURAL:$2|бер кыр|$2 кырлар}} булганга, беренче кыр лексеманың идентификаторы итеп күренергә тиеш, әмма
$3лексеманың идентификаторына охшамаган. (Бәлки сез кертем мәгълүматларда бер форманы артык күп тапкыр билгеләгәнсездер?", 27 | "bulk-first-field-lexeme-id": "Калыпта {{PLURAL:$1|бер форма|$1 форма}}, ә $4 кертү юлында {{PLURAL:$2|бер кыр|$2 кыр}} булганга, беренче кыр лексема идентификаторына охшаш булырга тиеш түгел, әмма
$3охшаш. (Мөгаен, сез форманы кертергә оныткансыздыр?)", 28 | "bulk-wrong-number-of-fields": "Калыпта {{PLURAL:$1|бер форма|$1 форма}} булганга һәрбер кертү юлында шундый ук кырлар саны (яңа лексема төзегәндә), яки тагын берсе (мөхәррирләү өчен инде булган лексеманың идентификаторын билгеләгәндә) булырга тиеш. Әмма аның урынына $3 кертү юлын {{PLURAL:$2|бер кыр|$2 кыр}} тәшкил итә.", 29 | "edit-link": "үзгәртү", 30 | "edit-general": "Сез хәзер \"үзгәртү\" режимын кулланасыз. Астагы мәгънәләрне үзгәртү бу лексеманың формасын үзгәртүгә, өстәүгә яки бетерүгә китерәчәк.", 31 | "edit-mismatch-warning": "Бу лексема бу калыпка туры килми! Эшегезне дәвам иткәнче бу лексема өчен шушы калыпның дөрес туры килүен тикшерегез.", 32 | "edit-ambiguous-warning": "Киләсе {{PLURAL:$1|форма}} лексемасы берничә калыплы формага яхшы туры килә:", 33 | "edit-unmatched-warning": "Киләсе лексеманың {{PLURAL:$1|формасы|формалары}} калып формаларының берсенә дә {{PLURAL:$1|туры килми}}:", 34 | "no-grammatical-features": "грамматик үзенчәлекләр юк", 35 | "title-create": "$1 (төзү)", 36 | "title-advanced": "$1 (киңәйтелгән)", 37 | "title-bulk": "$1 (массакүләм)", 38 | "title-edit": "$1 (үзгәртү)", 39 | "login-hint": "Бу корал ярдәмендә үзгәртүләр кертә алу алдыннан сезгә баштан [$1 керергә] кирәк.", 40 | "ambiguous-template": "$1 калыпы бүтән юк; аны түбәндәге калыплар алыштырды:" 41 | } 42 | -------------------------------------------------------------------------------- /i18n/hr.json: -------------------------------------------------------------------------------- 1 | { 2 | "@metadata": { 3 | "authors": [ 4 | "Bugoslav", 5 | "Ivi104", 6 | "Lucas Werkmeister" 7 | ] 8 | }, 9 | "create": "Stvori", 10 | "csrf-warning": "Nažalost, nismo uspjeli obraditi ovaj zahtjev, (CSRF zaštita neuspješna). Molimo pokušajte ponovno.", 11 | "duplicates-warning": "Sljedeći postojeći {{PLURAL:$1|leksem ima|leksemi imaju}} isti predmet i jezični kod kao i onaj koji pokušavate stvoriti:", 12 | "duplicates-instructions": "Ako ste sigurni da je riječ o {{PLURAL:$1|različitom predmetu|različitim predmetima}}, označite kućicu na dnu obrasca.", 13 | "duplicates-create": "Ipak stvori novi leksem", 14 | "no-duplicate": "Ovo nije duplikat postojećeg leksema", 15 | "form-optional": " (neobvezno)", 16 | "advanced": "Napredno", 17 | "advanced-general": "Uređujete u naprednom načinu", 18 | "advanced-lexeme-id": "Možete unijeti ID leksema kako biste dodali obrasce na postojeći leksem umjesto stvaranja novog leksema. Sve stavke koje već postoje molimo ostavite praznima, u protivnom će biti udvostručene!", 19 | "advanced-partial-forms": "Obrasci koje ostavite prazne neće biti dodani. Budite sigurni da obrasci koje želite popuniti nisu prazni!", 20 | "lexeme-id": "ID leksema", 21 | "advanced-partial-forms-hint": "Da biste stvorili leksem s nekim praznim poljima, molimo prebacite način uređivanja u napredno.", 22 | "generated-via": "stvoreno pomoću", 23 | "description-with-forms-and-senses": "$1, {{PLURAL:$2|0=nema oblika|jedan oblik|$2 oblika}} i {{PLURAL:$3|0=bez značenja|jednim značenjem|$3 značenja}}", 24 | "bulk-link": "skupni način", 25 | "bulk-format-help": "Pomoć za oblikovanje", 26 | "bulk-not-allowed": "Nije vam dozvoljena upotreba skupnog načina. Isprike.", 27 | "bulk-first-field-not-lexeme-id": "S obzirom da predložak ima {{PLURAL:$1|jedan obrazac|$1 obrazaca}} a linija $4 na ulazu ima {{PLURAL:$2|jedno polje|$2 polja}}, prvo polje bi trebalo izgledati kao ID leksema, što za
$3nije slučaj. (Jeste li pri unosu naveli obrazac previše?)", 28 | "bulk-first-field-lexeme-id": "S obzirom da predložak ima {{PLURAL:$1|jedan obrazac|$1 obrazaca}} a linija $4 na ulazu ima {{PLURAL:$2|jedno polje|$2 polja}}, prvo polje ne bi trebalo izgledati kao ID leksema, što za
$3nije slučaj. (Jeste li pri unosu zaboravili navesti obrazac?)", 29 | "bulk-wrong-number-of-fields": "S obzirom da predložak ima {{PLURAL:$1|jedan obrazac|$1 obrazaca}} ulaz bi trebao sadržavati barem toliko polja (pri stvaranju novog leksema), ili još jedno polje više (pri uređivanju postoječeg lelkema), ali linija $3 u ulazu sadrži {{PLURAL:$2|jedno polje|$2 polja}}.", 30 | "bulk-optional-forms-hint": "Ako želite preskočiti neke oblike, odredite ih kao prazne (npr. ...||| za tri prazna oblika na kraju).", 31 | "edit-link": "uredi", 32 | "edit-general": "Trenutno ste u načinu uređivanja. Promjena vrijednosti niže uredit će, dodati ili ukloniti oblike odabranog leksema.", 33 | "edit-mismatch-warning": "Ovaj se leksem ne poklapa s pruženim predloškom! Molimo ponovno provjerite da ste odabrali ispravan predložak.", 34 | "edit-ambiguous-warning": "Sljedeći {{PLURAL:$1|oblik poklapa|oblici poklapaju}} se s više od jednog predloška:", 35 | "edit-unmatched-warning": "Sljedeći {{PLURAL:$1|oblik|oblici}} leksema ne poklapaju se ni s jednim predloškom:", 36 | "edit-form-list-item": "$1, $2, {{PLURAL:$3|0=nema izjava|jedna izjava|$3 izjave}}", 37 | "no-grammatical-features": "nema gramatičkih mogućnosti", 38 | "title-create": "$1 (stvori)", 39 | "title-advanced": "$1 (napredno)", 40 | "title-bulk": "$1 (skupno)", 41 | "title-edit": "$1 (uredi)", 42 | "login-hint": "Trebate se [$1 prijaviti] prije korištenja ovog alata." 43 | } 44 | -------------------------------------------------------------------------------- /i18n/qu.json: -------------------------------------------------------------------------------- 1 | { 2 | "@metadata": { 3 | "authors": [ 4 | "Elwinlhq" 5 | ] 6 | }, 7 | "create": "Kamariy", 8 | "csrf-warning": "Pampachaykuwayku, mana kay mañakuyta ruwayta atirqaykuchu (CSRF hark'ayta mana atikunchu). Ama hina kaspa, hukmantawan formulariota kamarichiy.", 9 | "duplicates-warning": "Kay qatiq kaq {{PLURAL:$1|lexeme hap'in|lexemes hap'inku}} kikin lemma hinallataq kikin simi codigu kay kamachiyta munasqaykiwan:", 10 | "duplicates-instructions": "Sichus chiqaqpuni kay {{PLURAL:$1|kashan|kashanku}} hukniraymi, formulariopa urayninpi kaq cuadrota ch'ikuykuy.", 11 | "duplicates-create": "Imayna kaqtinpas huk musuq lexemata kamarichiy.", 12 | "no-duplicate": "Kayqa manam iskay kachkaq lexemachu.", 13 | "form-optional": " (kanmanmi)", 14 | "advanced": "Qhapaq akllanakuna", 15 | "advanced-general": "“Qhapaq akllanakuna”pi kashanki.", 16 | "advanced-lexeme-id": "Huk lexeme IDtam yaykuchiyta atinki, chayta yapanaykipaq. ¡Ima formulariokunatapas lexeme nisqapi kaqkunata ch'usaqpi saqiy, mana chayqa iskay kutita ruwasqa kanqa!", 17 | "advanced-partial-forms": "Wakin wakinllata ch'usaqllatapis saqiwaq, chhaynapi mana yapakunanpaq. ¡Ama puni ima formulariokunatapas saqichu hawapi!", 18 | "lexeme-id": "Lexeme ID", 19 | "advanced-partial-forms-hint": "Mana llipintachu lexemakunapi kamarichiyta munaspa, qhapaq akllanakuna qhawayman tikray.", 20 | "generated-via": "kamarichiy kayninta", 21 | "description-with-forms-and-senses": "$1, {{PLURAL:$2|0=mana formayuq|huk forma|$2 formakuna}} hinallataq {{PLURAL:$3|0=mana llakllayuq|huk llaklla|$3 llakllakuna}}", 22 | "bulk-link": "tawqa-tawqa kamariy", 23 | "bulk-format-help": "yanapakuy", 24 | "bulk-not-allowed": "{{GENDER:$1|Qam}} manam tawqa-tawqata llamk'achiyta atiwaqchu. Pampachaway.", 25 | "bulk-first-field-not-lexeme-id": "Kay plantilla {{PLURAL:$1| huk forma| $1 formakuna}}yuk chaymanta wachu $4 {{PLURAL:$2|huk chakra| $2 chakrakuna}}yuk, huk kaq lexeme IDman rikch'akunan tiyan, ichaqa
$3mana lexeme IDman rikch'akunchu. (¿Huk formatachu churarqanki askha kutita?)", 26 | "bulk-first-field-lexeme-id": "Kay plantilla {{PLURAL:$1|huk forma|$1 formakuna}}yuq chaymanta wachu $4 yaykuymanta {{PLURAL:$2|huk chakra|$2 chakrakuna}}yuk, huk kaq chakraqa manam lexeme ID hinachu kanan, ichaqa
$3lexeme IDman rikchakun. (¿Qunqarqankichu yaykusqapi huk formata?)", 27 | "bulk-wrong-number-of-fields": "Kay plantilla {{PLURAL:$1|huk forma|$1 formakuna}}yuk, sapa wachu hunt'asqa kanan tiyan (musuq lexemeta kamachispa) utaq huk aswan (lexeme IDta llamk'achinapaq), ichaqa yaykusqamanta $3 chiru {{PLURAL:$2|huk chakra|$2 chakrakuna}}yuq.", 28 | "bulk-optional-forms-hint": "Wakin formakunata wikch'uyta munaspaqa, ch'usaqta kama saqiykuy (ahinata ...||| kinsa ch'usaq formakunata ch'usaqta saqinapak).", 29 | "edit-link": "llamk'apay", 30 | "title-create": "$1 (kamachiy)", 31 | "title-advanced": "$1 (qhapaq akllanakuna)", 32 | "title-bulk": "$1 (tawqa-tawqa)", 33 | "title-edit": "$1 (allichay)", 34 | "login-hint": "Kay llamk'anawan ruwayta munaspaqa [$1 yaykunayki] tiyan.", 35 | "tool-name": "Wikidata Lexeme Formakuna", 36 | "skip-to-main-content": "Chiqaq qilqasqaman p'itay", 37 | "documentation": "Hunt'a qillqasqa", 38 | "toolforge": "Wikimedia Toolforge wasi", 39 | "source-code": "Saphi qillqasqa", 40 | "login": "Yaykuy", 41 | "settings-link": "Allichanakuna", 42 | "settings-heading": "Allichanakuna", 43 | "logged-in": "{{GENDER:$2| Yaykusqa}} $1 hina.", 44 | "requires-javascript": "Kay ruwayqa JavaScriptam munan.", 45 | "wikifunctions-generating": "formakunata kamarichispa...", 46 | "wikifunctions-error": "huk pantaymi formakunata kamarichispa uqhurirqun." 47 | } 48 | -------------------------------------------------------------------------------- /test_parse_tpsv.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | from werkzeug.datastructures import ImmutableMultiDict 3 | 4 | import parse_tpsv 5 | 6 | 7 | @pytest.mark.parametrize('line, expected_representations', [ 8 | ('thing|things', ['thing', 'things']), 9 | ('thing\tthings', ['thing', 'things']), 10 | (' thing \t things ', ['thing', 'things']), 11 | ('thing|', ['thing', '']), 12 | ('|things', ['', 'things']), 13 | ]) 14 | def test_parse_lexeme_two_forms_no_lexeme_id(line, expected_representations): 15 | template = {'forms': [{}, {}]} 16 | actual_data = parse_tpsv.parse_lexeme(line, template, 1) 17 | actual_representations = actual_data.getlist('form_representation') 18 | assert expected_representations == actual_representations 19 | 20 | 21 | @pytest.mark.parametrize('line, expected_representations', [ 22 | ('thing|things\tthinges', ['thing', 'things', 'thinges']), 23 | ('thing||things', ['thing', '', 'things']), 24 | ]) 25 | def test_parse_lexeme_three_forms_no_lexeme_id(line, expected_representations): 26 | template = {'forms': [{}, {}, {}]} 27 | actual_data = parse_tpsv.parse_lexeme(line, template, 1) 28 | actual_representations = actual_data.getlist('form_representation') 29 | assert expected_representations == actual_representations 30 | 31 | 32 | @pytest.mark.parametrize('line, expected_lexeme_id, expected_representations', [ 33 | ('L123|thing|things', 'L123', ['thing', 'things']), 34 | ('L123\tthing\tthings', 'L123', ['thing', 'things']), 35 | ]) 36 | def test_parse_lexeme_two_forms_lexeme_id(line, expected_lexeme_id, expected_representations): 37 | template = {'forms': [{}, {}]} 38 | actual_data = parse_tpsv.parse_lexeme(line, template, 1) 39 | [actual_lexeme_id] = actual_data.getlist('lexeme_id') # unpack + getlist guards against extra lexeme IDs 40 | actual_representations = actual_data.getlist('form_representation') 41 | assert expected_lexeme_id == actual_lexeme_id 42 | assert expected_representations == actual_representations 43 | 44 | 45 | def test_parse_lexemes(): 46 | tpsv = ''' 47 | thing|things 48 | 49 | \r 50 | 51 | L123|entity|entities 52 | '''.strip() 53 | assert parse_tpsv.parse_lexemes(tpsv, {'forms': [{}, {}]}) == [ 54 | ImmutableMultiDict([ 55 | ('form_representation', 'thing'), 56 | ('form_representation', 'things'), 57 | ]), 58 | ImmutableMultiDict([ 59 | ('lexeme_id', 'L123'), 60 | ('form_representation', 'entity'), 61 | ('form_representation', 'entities'), 62 | ]), 63 | ] 64 | 65 | 66 | def test_parse_lexemes_FirstFieldNotLexemeIdError(): 67 | tpsv = 'object|objects\nthing|things|thingies' 68 | with pytest.raises(parse_tpsv.FirstFieldNotLexemeIdError) as exc_info: 69 | parse_tpsv.parse_lexemes(tpsv, {'forms': [{}, {}]}) 70 | assert exc_info.value.num_forms == 2 71 | assert exc_info.value.num_fields == 3 72 | assert exc_info.value.first_field == 'thing' 73 | assert exc_info.value.line_number == 2 74 | 75 | 76 | def test_parse_lexemes_FirstFieldLexemeIdError(): 77 | tpsv = 'object|objects\nL123|things' 78 | with pytest.raises(parse_tpsv.FirstFieldLexemeIdError) as exc_info: 79 | parse_tpsv.parse_lexemes(tpsv, {'forms': [{}, {}]}) 80 | assert exc_info.value.num_forms == 2 81 | assert exc_info.value.num_fields == 2 82 | assert exc_info.value.first_field == 'L123' 83 | assert exc_info.value.line_number == 2 84 | 85 | 86 | def test_parse_lexemes_WrongNumberOfFieldsError(): 87 | tpsv = 'object|objects\nthing' 88 | with pytest.raises(parse_tpsv.WrongNumberOfFieldsError) as exc_info: 89 | parse_tpsv.parse_lexemes(tpsv, {'forms': [{}, {}]}) 90 | assert exc_info.value.num_forms == 2 91 | assert exc_info.value.num_fields == 1 92 | assert exc_info.value.line_number == 2 93 | -------------------------------------------------------------------------------- /i18n/roa-tara.json: -------------------------------------------------------------------------------- 1 | { 2 | "@metadata": { 3 | "authors": [ 4 | "Joetaras" 5 | ] 6 | }, 7 | "create": "Ccreje", 8 | "csrf-warning": "Ne despiace, non g'è possibbele processà sta richieste (errore: protezione CSRF fallite). Pruève arrete.", 9 | "duplicates-warning": "Attenziò, {{PLURAL:$1|stu lesseme ave|le lesseme onne}} 'u stesse lemme e codece d'a lènghe de quidde ca ave appene pruvate de ccrejà:", 10 | "duplicates-instructions": "Ce sì secure ca {{PLURAL:$1|jè|sò}} diverse, spunde 'a caselle ca ste 'a fine de stu module.", 11 | "duplicates-create": "Ccrèje 'u stesse 'nu lesseme nuève.", 12 | "no-duplicate": "Quiste non g'è 'nu duplicate de 'nu lesseme esistende.", 13 | "form-optional": " (facoltative)", 14 | "advanced": "Avanzate", 15 | "advanced-general": "Te iacchie jndr'à modalità \"avanzate\".", 16 | "advanced-lexeme-id": "Puè 'nzerì 'nu ID de 'nu lesseme ca esiste pe aggiungere le forme ca mangane, invece de farne une nuève. NO sce 'nzerenne le forme ca ggià esistone, ce nò le face a doppie!", 17 | "advanced-partial-forms": "Ce lasse 'nu cambe vacande, non g'avène ccrejate nisciuna forme. Assecurate de ccrejà le forme ca servone!", 18 | "lexeme-id": "ID d'u lesseme", 19 | "advanced-partial-forms-hint": "Pe ccrejà lesseme cu de le forme mangande, cange jndr'à modalità avanzate.", 20 | "generated-via": "generate cu", 21 | "description-with-forms-and-senses": "$1, {{PLURAL:$2|0=nisciuna|'na|$2}} forme e {{PLURAL:$3|0=nisciune|'nu|$3}} sienze", 22 | "bulk-link": "carecamedne de masse", 23 | "bulk-format-help": "aijute formattazione", 24 | "bulk-not-allowed": "Non ge {{GENDER:$1|sì}} autorizzate a ausà 'u carecamende de masse. Ne despiace.", 25 | "bulk-first-field-not-lexeme-id": "Da quanne 'u template tène {{PLURAL:$1|'nu module|$1 module}} e linèe $4 de ingresse ave {{PLURAL:$2|'nu cambe|$2 cambe}}, 'u prime cambe avessà essere 'ndrucate cumme a 'nu ID d'u lesseme, ma
$3non g'ù 'ndruche accussì. (E' Specificate 'nu module cu troppe date de 'ngresse?)", 26 | "bulk-first-field-lexeme-id": "Da quanne 'u template tène {{PLURAL:$1|'nu module|$1 module}} e linèe $4 de ingresse ave {{PLURAL:$2|'nu cambe|$2 cambe}}, 'u prime cambe non g'ava essere 'nu ID d'u lesseme, ma
$3accussì 'u 'ndruche. (Tè scurdate 'nu module jndr'à 'le date de 'ngresse?)", 27 | "bulk-wrong-number-of-fields": "Da quanne 'u template tène {{PLURAL:$1|'nu module|$1 module}} ogne linèe de ingresse avessa avè 'u stesse numere de cambe (quanne se ccreje 'nu lesseme nuève) o une de cchiù (quanne se specifeche l'ID de 'nu lesseme ca esiste ggià, da cangià), ma 'a linèe $3 de le date de 'ngresse invece ave {{PLURAL:$2|'nu cambe|$2 cambe}}.", 28 | "bulk-optional-forms-hint": "Ce vuè ccu zumbe quacche module, specifecale cumme vacande (p.e. ...||| pe ttre module vacande a fine).", 29 | "edit-link": "cange", 30 | "edit-general": "Ste jndr'à modalità \"cangiamende\". Cangianne le valore aqquà sotte avènene cangiate, aggiunde o luate le module d'u lesseme de destinazione.", 31 | "edit-mismatch-warning": "Stu lesseme non ge pare ca s'accocchie a stu template! Pe piacere condrolle doje vote ca jè 'u template giuste pe stu lesseme apprime de condinuà.", 32 | "edit-ambiguous-warning": "{{PLURAL:$1|'A|Le}} forme d'u lesseme s'accocchiane cu cchiù de 'na forme jndr'à 'u template:", 33 | "edit-unmatched-warning": "{{PLURAL:$1|'A|Le}} forme d'u lesseme non ge s'accocchiane cu nisciuna forme jndr'à 'u template:", 34 | "edit-form-list-item": "$1, $2, {{PLURAL:$3|0=nisciuna dichiarazione|'na dichiarazione|$3 dichiaraziune}}", 35 | "no-grammatical-features": "nisciuna caratteristeche grammatecale", 36 | "title-create": "$1 (ccreje)", 37 | "title-advanced": "$1 (avanzate)", 38 | "title-bulk": "$1 (massive)", 39 | "title-edit": "$1 (cange)", 40 | "login-hint": "E' abbesògne de [$1 trasè] apprime ca puè ffà cangiaminde ausanne stu strumende." 41 | } 42 | -------------------------------------------------------------------------------- /static/wikifunctions.js: -------------------------------------------------------------------------------- 1 | document.addEventListener('DOMContentLoaded', function() { 2 | 'use strict'; 3 | 4 | const template = JSON.parse(document.getElementsByTagName('main')[0].dataset.template), 5 | templateName = template['@template_name'], 6 | baseUrl = document.querySelector('link[rel=index]').href, 7 | form = document.forms[0], 8 | wikifunctionsButtonsContainer = document.getElementById('wikifunctions-buttons'), 9 | wikifunctionsMessageGenerating = document.getElementById('wikifunctions-generating'), 10 | wikifunctionsMessageError = document.getElementById('wikifunctions-error'); 11 | if (!wikifunctionsButtonsContainer) { 12 | return; 13 | } 14 | let formRepresentationInputs = form.elements['form_representation']; 15 | if (formRepresentationInputs.length === undefined) { 16 | formRepresentationInputs = [ formRepresentationInputs ]; 17 | } 18 | if (!formRepresentationInputs[0]) { 19 | return; // no forms? 20 | } 21 | 22 | const functionNames = new Set(); 23 | for (const form of template.forms) { 24 | for (const functionName in form.wikifunctions) { 25 | functionNames.add(functionName); 26 | } 27 | } 28 | 29 | function setAllButtonsDisabled(disabled) { 30 | for (const button of buttons) { 31 | button.disabled = disabled; 32 | } 33 | } 34 | function hideAllMessages() { 35 | wikifunctionsMessageGenerating.style.display = 'none'; 36 | wikifunctionsMessageError.style.display = 'none'; 37 | } 38 | 39 | const buttons = []; 40 | for (const functionName of functionNames) { 41 | const button = document.createElement('button'); 42 | button.textContent = functionName; 43 | button.classList.add('btn', 'btn-outline-info'); 44 | button.addEventListener('click', () => { 45 | let lemma = formRepresentationInputs[0].value.split('/').filter(s => s)[0]; 46 | if (!lemma) { 47 | // no first form to generate others from yet; can we fill it from the lemma? 48 | if ('_edit_mode' in form.elements) { 49 | const lemmaInLanguage = document.querySelector(`#lemmas [lang="${template.language_code}"]`); 50 | if (lemmaInLanguage && lemmaInLanguage.textContent) { 51 | lemma = lemmaInLanguage.textContent; 52 | formRepresentationInputs[0].value = lemma; 53 | } 54 | } 55 | } 56 | if (!lemma) { 57 | return; 58 | } 59 | setAllButtonsDisabled(true); 60 | hideAllMessages(); 61 | wikifunctionsMessageGenerating.style.display = 'inline'; 62 | fetch(`${baseUrl}/api/v1/wikifunctions/${templateName}/${lemma}/${functionName}`) 63 | .then(r => r.json()) 64 | .then(response => { 65 | for (let i = 0; i < response.length; i++) { 66 | let value = response[i]; 67 | if (value === null ) { 68 | continue; 69 | } else if (Array.isArray(value)) { 70 | value = value.join('/'); 71 | } 72 | if (formRepresentationInputs[i] && !formRepresentationInputs[i].value) { 73 | formRepresentationInputs[i].value = value; 74 | } 75 | } 76 | hideAllMessages(); 77 | }) 78 | .catch(e => { 79 | hideAllMessages(); 80 | wikifunctionsMessageError.style.display = 'inline'; 81 | console.error(e); 82 | }) 83 | .then(() => setAllButtonsDisabled(false)); 84 | }); 85 | wikifunctionsButtonsContainer.append(button); 86 | buttons.push(button); 87 | } 88 | }); 89 | -------------------------------------------------------------------------------- /i18n/or.json: -------------------------------------------------------------------------------- 1 | { 2 | "@metadata": { 3 | "authors": [ 4 | "Lucas Werkmeister", 5 | "Psubhashish" 6 | ] 7 | }, 8 | "create": "ଗଢ଼ନ୍ତୁ", 9 | "csrf-warning": "କ୍ଷମା କରିବେ । ଆମେ ଏହି ଅନୁରୋଧଟି (CSRF କିଳିବା ବିଫଳ ହେଲା) ଗ୍ରହଣ କରିପାରିଲୁ ନାହିଁ । ଦୟାକରି ଫର୍ମଟି ଆଉଥରେ ପଠାଇବା ପାଇଁ ଚେଷ୍ଟାକରନ୍ତୁ ।", 10 | "duplicates-warning": "ନିମ୍ନଲିଖିତ {{PLURAL:$1|ଲେକ୍ସେମଟି|ଲେକ୍ସେମଗୁଡ଼ିକ}}ରେ ସମାନ ଲେମା ଏବଂ ଭାଷା କୋଡ଼ ଆଗରୁ ଅଛି ଏବଂ ଆପଣ ତାହା ଆଉଥରେ ତିଆରି କରିବାକୁ ଚେଷ୍ଟା କରୁଛନ୍ତି:", 11 | "duplicates-instructions": "ଆପଣ {{PLURAL:$1|ଏହା|ସେଗୁଡ଼ିକ}} ଅଲଗା ବୋଲି ନିଶ୍ଚିତ ହୋଇଥିଲେ ଫର୍ମ ତଳେ ଥିବା ଘର ଦେଖନ୍ତୁ ।", 12 | "duplicates-create": "ଯା'ହେଉ ପଛେ ଲେକ୍ସିମଟିଏ ଗଢ଼ନ୍ତୁ ।", 13 | "no-duplicate": "ଏହା ଆଗରୁ ଥିବା ଏକ ଲେକ୍ସିମର ନକଲ ନୁହେଁ ।", 14 | "form-optional": " (ବାଧ୍ୟତାମୂଳକ ନୁହେଁ)", 15 | "advanced": "ଉନ୍ନତ", 16 | "advanced-general": "ଆପଣ \"ଉନ୍ନତ\" ମୋଡ଼ରେ ଅଛନ୍ତି ।", 17 | "advanced-lexeme-id": "ଆପଣ ଏକ ନୂଆ ଲେକ୍ସିମ ତିଆରି କରିବା ବଦଳରେ ଆଗରୁ ଥିବା ଏକ ଲେକ୍ସିମରେ ଫର୍ମ ଯୋଡ଼ିବା ପାଇଁ ଏକ ଲେକ୍ସିମ ଆଇଡି ଦେଇପାରିବେ । ଲେକ୍ସିମରେ ଆଗରୁ ଥିବା କୌଣସି ଫର୍ମ ଖାଲି ଛାଡ଼ିଦିଅନ୍ତୁ । ନହେଲେ ସେଗୁଡ଼ିକର ନକଲ ହେବ!", 18 | "advanced-partial-forms": "ଆପଣ କିଛି ଫର୍ମ ଖାଲି ଛାଡ଼ିପାରିବେ ଫଳରେ ସେଗୁଡ଼ିକ ଯୋଡ଼ାଯିବ ନାହିଁ । ତେବେ ଆପଣ ଭୁଲରେ କୌଣସି ଫର୍ମ ଛାଡି ନାହାଁନ୍ତି ନିଶ୍ଚିତକରନ୍ତୁ!", 19 | "lexeme-id": "ଲେକ୍ସିମ ଆଇଡି", 20 | "advanced-partial-forms-hint": "କେତେକ ଫର୍ମ ନ ଥାଇ ଲେକ୍ସିମ ତିଆରି କରିବା ପାଇଁ ଉନ୍ନତ ମୋଡ଼କୁ ଯାଆନ୍ତୁ ।", 21 | "generated-via": "କାହାଦ୍ୱାରା ତିଆରି:", 22 | "description-with-forms-and-senses": "$1, {{PLURAL:$2|0=କୌଣସି ଫର୍ମ ନାହିଁ|ଗୋଟିଏ ଫର୍ମ|$2ଟି ଫର୍ମ}} ଏବଂ {{PLURAL:$3|0=କୌଣସି ଅର୍ଥ ନାହିଁ|ଗୋଟିଏ ଅର୍ଥ ଅଛି|$3ଟି ଅର୍ଥ ଅଛି}}", 23 | "bulk-link": "ବହୁଳ ମୋଡ଼", 24 | "bulk-format-help": "ସଜାଣି ସାହାଯ୍ୟ", 25 | "bulk-not-allowed": "କ୍ଷମା ଚାହୁଁଛୁ । ଆପଣଙ୍କୁ ବହୁପରିମାଣରେ ସମ୍ପାଦନା ପାଇଁ ଅନୁମତି ଦିଆଯାଇନାହିଁ ।", 26 | "bulk-first-field-not-lexeme-id": "Since the template has {{PLURAL:$1|one form|$1 forms}} and line $4 of the input has {{PLURAL:$2|one field|$2 fields}}, the first field should look like a lexeme ID, but
$3does not look like a lexeme ID. (Did you specify one form too many in the input?)\n\n\nଛାଞ୍ଚରେ {{PLURAL:$1|ଗୋଟିଏ ଫର୍ମ|$1ଟି ଫର୍ମ}} ଥିବାରୁ ଏବଂ ଭରାଯାଇଥିବା ତଥ୍ୟର $4 ତମ ଧାଡ଼ିରେ {{PLURAL:$2|ଗୋଟିଏ ଘର|$2ଟି ଘର}} ଥିବାରୁ, ପ୍ରଥମ ଘରଟି ଏକ ଲେକ୍ସିମ ଆଇଡି ପରି ଦେଖାଯିବା ଉଚିତ । ତେବେ
$3ଟି ଏକ ଲେକ୍ସିମ ଆଇଡି ଭଳି ଦେଖାଯାଉ ନାହିଁ । (ଆପଣ ଭରିବା ବେଳେ ଗୋଟିଏ ଫର୍ମ ଅଧିକ ଥର ନିର୍ଦ୍ଦିଷ୍ଟ କରିଛନ୍ତି କି?)", 27 | "bulk-first-field-lexeme-id": "ଛାଞ୍ଚଟିରେ {{PLURAL:$1|ଗୋଟିଏ ଫର୍ମ|$1ଟି ଫର୍ମ}} ଥିବାରୁ ଏବଂ ଭରାଯାଇଥିବା ତଥ୍ୟର $4 ତମ ଧାଡ଼ିରେ {{PLURAL:$2|ଗୋଟିଏ ଘର|$2ଟି ଘର}} ଥିବାରୁ, ପ୍ରଥମ ଘରଟି ଏକ ଲେକ୍ସିମ୍ ଆଇଡି ପରି ଦେଖାଯିବା ଉଚିତ ନୁହେଁ । ତେବେ
$3ଟି ଲେକ୍ସିମ୍ ଆଇଡି ଭଳି ଦିଶୁଛି । (ଆପଣ ଭରିବା ବେଳେ ଏକ ଫର୍ମ ଭୁଲିଯାଇଛନ୍ତି କି?)", 28 | "bulk-wrong-number-of-fields": "ଛାଞ୍ଚଟିରେ {{PLURAL:$1|ଗୋଟିଏ ଫର୍ମ|$1ଟି ଫର୍ମ}} ଥିବାରୁ, (ନୂଆ ଲେକ୍ସିମ ତିଆରି କରିବା ବେଳେ)ପ୍ରତି ଭରାଯାଇଥିବା ଧାଡ଼ିରେ ଉକ୍ତ ସଂଖ୍ୟକ ଘର ଥିବା କିମ୍ବା ଗୋଟିଏ ଅଧିକ ଘର ଥିବା (ସମ୍ପାଦନା କରିବା ବେଳେ ଆଗରୁ ଥିବା ଏକ ଆଇଡି ନିର୍ଦ୍ଦିଷ୍ଟ କରିବା ବେଳେ) ଆବଶ୍ୟକ । ତେବେ $3 ତମ ଧାଡ଼ିରେ କେବଳ {{PLURAL:$2|ଗୋଟିଏ ଘର|$2ଟି ଘର}} ଅଛି ।", 29 | "bulk-optional-forms-hint": "ଆପଣ କିଛି ଫର୍ମ ଛାଡ଼ିବାକୁ ଚାହୁଁଥିଲେ ସେଗୁଡ଼ିକୁ ଖାଲି ବୋଲି ନିର୍ଦ୍ଦିଷ୍ଟ କରନ୍ତୁ (ଯଥା: ଶେଷକୁ ତିନୋଟି ଖାଲି ଫର୍ମ ପାଇଁ ...|||) ।", 30 | "edit-link": "ସମ୍ପାଦନା", 31 | "edit-general": "ଆପଣ \"ସମ୍ପାଦନା\" ମୋଡ଼ରେ ଅଛନ୍ତି । ତଳେ ଘରେ ଥିବା ତଥ୍ୟ ବଦଳାଇଲେ ତାହା ଲକ୍ଷରେ ଥିବା ଲେକ୍ସିମର ଫର୍ମଗୁଡିକୁ ସମ୍ପାଦନା କରିବ, ଯୋଡ଼ିବ କିମ୍ୱା କାଢ଼ିବ ।", 32 | "edit-mismatch-warning": "ଏହି ଲେକ୍ସିମଟି ଏହି ଛାଞ୍ଚ ସହ ମେଳ ଖାଉନାହିଁ! ଦୟାକରି ଆଗକୁ ବଢ଼ିବା ଆଗରୁ ଏହି ଲେକ୍ସିମ ପାଇଁ ଏହା ସଠିକ ଛାଞ୍ଚ କି ନା ଆଉଥରେ ପରଖନ୍ତୁ ।", 33 | "edit-ambiguous-warning": "ନିମ୍ନଲିଖିତ ଲେକ୍ସିମ {{PLURAL:$1|ଫର୍ମ|ଫର୍ମସବୁ}} ଏକାଧିକ ଫର୍ମ-ଛାଞ୍ଚ ସହ ମେଳକରିଛି:", 34 | "edit-unmatched-warning": "ନିମ୍ନଲିଖିତ ଲେକ୍ସିମ {{PLURAL:$1|ଫର୍ମ|ଫର୍ମସବୁ}} କୌଣସି ଫର୍ମ-ଛାଞ୍ଚ ସହ ମେଳ ଖାଉନାହିଁ:", 35 | "edit-form-list-item": "$1, $2, {{PLURAL:$3|0=କୌଣସି ବିବୃତ୍ତି ନାହିଁ|ଗୋଟିଏ ବିବୃତ୍ତି|$3ଟି ବିବୃତ୍ତି}}", 36 | "no-grammatical-features": "କୌଣସି ବ୍ୟାକରଣଗତ ବୈଶିଷ୍ଟ୍ୟ ନାହିଁ", 37 | "title-create": "$1 (ଗଢ଼ନ୍ତୁ)", 38 | "title-advanced": "$1 (ଉନ୍ନତ)", 39 | "title-bulk": "$1 (ବହୁପରିମାଣରେ)", 40 | "title-edit": "$1 (ସମ୍ପାଦନା)", 41 | "login-hint": "ଆପଣ ଏହି ଟୁଲ ବ୍ୟବହାର କରି ବଦଳାଇବା ଆଗରୁ ଆପଣଙ୍କୁ [$1 ଲଗ ଇନ] କରିବାକୁ ପଡ଼ିବ ।" 42 | } 43 | -------------------------------------------------------------------------------- /i18n/ur.json: -------------------------------------------------------------------------------- 1 | { 2 | "@metadata": { 3 | "authors": [ 4 | "Bgo eiu", 5 | "Muhammad Shuaib" 6 | ] 7 | }, 8 | "create": "بنائیں", 9 | "csrf-warning": "افسوس، ہم حاصل نہیں کر سکتے (CSRF رکھ سے غلطی ہو گئی)۔ شاید آپ اسے دوبارہ کر سکتے ہیں۔", 10 | "duplicates-warning": "{{PLURAL:$1|ان موجودہ مفرد|ان موجودہ مفردوں}} کے پاس وہی لیما اور زبان کوڈ ہے جو آپ بنانا چاہتے ہے:", 11 | "duplicates-instructions": "اگر آپ نشچت ہیں کہ {{PLURAL:$1|یہ الگ ہے|یے الگ ہیں}}، فارم کے نیچے باکس کو چیک کر دیں۔", 12 | "duplicates-create": "ایک نیا مفرد بنا ہی دیں۔", 13 | "no-duplicate": "یہ اکسی موجودہ مفرد کی نکل نہیں ہے۔", 14 | "form-optional": " (ضرورت نہیں ہے)", 15 | "advanced": "ماہری", 16 | "advanced-general": "آپ ماہری والے میں ہیں۔", 17 | "advanced-lexeme-id": "آپ نیا مفرد بنانے کے بجائے پرانے مفرد پر نئے مفرد کی شناخت جوڑ سکتے ہیں۔ مفرد پر پہلے سےموجود روپوں کوخالی چھوڑ دیں، برنا انہیں دو دو بار دکھایا جائےگا!", 18 | "advanced-partial-forms": "آپ کسی روپ کو نہ جوڑنے کے لئے انہیں خالی چھوڑ سکتے ہیں۔ پکے کریں کہ آپ کوئی روپ غلطی سے نہیں چھوڑ رہے!", 19 | "lexeme-id": "مفرد کی شناخت", 20 | "advanced-partial-forms-hint": "کچھ روپوں چھوڑ کر مفرد بنانے کے لئے ماہری والے کا استیمال کریں۔", 21 | "generated-via": "جنریٹ کرنے والا سروت", 22 | "description-with-forms-and-senses": "$1، {{PLURAL:$2|0=کوئی روپ نہیں ہے|ایک روپ ہے|$2 روپ ہیں}} اور {{PLURAL:$3|0=کوئی معنے نہیں|ایک معنی ہے|$3 معنے ہیں}}", 23 | "bulk-link": "تھوک والا", 24 | "bulk-format-help": "پراپورن میں مہایتا", 25 | "bulk-not-allowed": "افسوس، {{GENDER:$1|آپ کو}} ساموہک والے کا استیمال کرنے کی انمتی نہیں ہے۔", 26 | "bulk-first-field-not-lexeme-id": "کیوں کہ سانچے میں {{PLURAL:$1|ایک روپ ہے|$1 روپ ہیں}} اور اینپٹ کے پنکتی $4 میں {{PLURAL:$2|ایک فیلڈ ہے|$2 فیلڈ ہے}}، پہلے فیلڈ کو ایک مفرد کی شناخت کی طرح دکھنا ہوگا، مگر
$3مفرد کی شناخت نہیں لگتی۔ (کیا آپنے اینپٹ میں ایک روپ کئی بار ڈالا ہے؟)", 27 | "bulk-first-field-lexeme-id": "کیوں کہ سانچے میں {{PLURAL:$1|ایک روپ ہے|$1 روپ ہیں}} اور اینپٹ کے پنکتی $4 میں {{PLURAL:$2|ایک فیلڈ ہے|$2 فیلڈ ہیں}}، پہلے فیلڈ کو ایک مفرد کی شناخت طرح دکھنا نہیں دکھنا چاہئے، مگر
$3مفرد کی شناخت لگتی ہے۔ (کیا اپنے اینپٹ میں کوئی روپ چوڑ دیا ہے؟)", 28 | "bulk-wrong-number-of-fields": "کیوں کہ سانچے میں {{PLURAL:$1|ایک روپ ہے|$2 روپ ہیں}}، ہر اینپٹ کی لیکھ میں یا تو اس سنکھیا میں فیلڈ ہوتے چاہئے (نیا مفرد بناتے سمے) یا پھر ایک زیادہ (سمپادت کرنے کے لئے موجودہ مفرد کی شناخت درج کرتے ہوے)، مگر اینپٹ کی لیکھ $3 میں {{PLURAL:$2|ایک فیلڈ ہے|$2 فیلڈ ہیں}}۔", 29 | "bulk-optional-forms-hint": "مگر آپ کچھ روپوں کو چھوڈنا چاہئے ہیں، انہیں خالی رکھ دیں (جیسے آخر میں تین خالی روپوں کے لئے ...|||)۔", 30 | "edit-link": "ترمیم کریں", 31 | "edit-general": "آپ ترمیم والے میں ہیں۔ نیچے کے ویلیوؤں کو بدلنے سے لکشے مفرد پر روپ جوڑے، ترمیم کئے یا اٹائے جائیںگے۔", 32 | "edit-mismatch-warning": "ایسا لگتا ہے کہ یہ مفرد اس سانچے سے میل نہیں کھاتا ہے! کپیا دوباہ جانچیں کہ یہ سانچا اس مفرد کے لئے سہی ہے کہ نییں۔", 33 | "edit-ambiguous-warning": "ایک سے زیادہ سانچیں {{PLURAL:$1|یہ روپ|یے روپ}} کے روپوں سے سمان میل {{PLURAL:$1|کھاتا ہے|کھاتے ہیں}}۔", 34 | "edit-unmatched-warning": "{{PLURAL:$1|اس روپ|ان روپوں}} نے کسی بھی سانچے کے روپ کے ساتھ میل نہیں کھایا:", 35 | "edit-form-list-item": "$1, $2, {{PLURAL:$3|0=کوئی بیان نہیں ہے|ایک بیان ہے|$3 بیان ہیں}}", 36 | "no-grammatical-features": "کوئی بیاکرنک وشیشتایں نہیں ہیں", 37 | "title-create": "$1 (بنائیں)", 38 | "title-advanced": "$1 (ماہری)", 39 | "title-bulk": "$1 (تھوک والا)", 40 | "title-edit": "$1 (ترمیم کریں)", 41 | "login-hint": "اس اپکرن کے ذریعے بدلاو لانے سے پہلے [$1 لوگ این] کریں۔", 42 | "ambiguous-template": "سانچا $1 اب موجود نہیں ہے؛ اسے ان سانچوں سے بدل دیا گیا ہے:", 43 | "settings-label-interface-language-code": "استعمال کرنے والی زبان", 44 | "settings-save": "محفوظ کریں", 45 | "tool-name": "ویکی ڈیٹا لغویے کے فارم", 46 | "skip-to-main-content": "اصل مشمولات پر جائیں", 47 | "documentation": "دستاویز", 48 | "toolforge": "ویکیمیڈیا ٹولفورج", 49 | "source-code": "ماخذ", 50 | "login": "لاگ ان کریں", 51 | "settings-link": "ترتیبات", 52 | "settings-heading": "ترتیبات", 53 | "logged-in": "$1 بطور لاگ ان کیا گیا۔" 54 | } 55 | -------------------------------------------------------------------------------- /i18n/eu.json: -------------------------------------------------------------------------------- 1 | { 2 | "@metadata": { 3 | "authors": [ 4 | "An13sa", 5 | "Lucas Werkmeister", 6 | "Theklan" 7 | ] 8 | }, 9 | "create": "Sortu", 10 | "csrf-warning": "Barkatu, ezin izan dugu zure eskaera prozesatu (CSRF babesak huts egin du). Saia zaitez berriro ere eskaera bidaltzen.", 11 | "duplicates-warning": "Hurrengo {{PLURAL:$1|lexemak|lexemek}} lemma eta hizkuntza kode berdina dute:", 12 | "duplicates-instructions": "Ziur bazaude {{PLURAL:$1|ezberdina dela|ezberdinak direla}}, klik egin goian dagoen formularioko kutxan.", 13 | "duplicates-create": "Sortu lexema baerri bat, hala ere.", 14 | "no-duplicate": "Hau ez da bikoiztutako lexema bat.", 15 | "form-optional": " (aukerakoa)", 16 | "advanced": "Aurreratua", 17 | "advanced-general": "Modu \"aurrearatuan\" zaude.", 18 | "advanced-lexeme-id": "Lexema ID bat sar dezakezu dagoeneko existitzen den lexema bati formak gehitzeko, berri bat sortu beharrean. Dagoeneko existitzen diren lexemen formak zuriz utzi, bestela bikoiztuko dira eta!", 19 | "advanced-partial-forms": "Formularioko atal batzuk zuriz utzi ditzakezu, eta ez dira gehituko. Ziurtatu ez zaudela nahi gabe formarik ahazten!", 20 | "lexeme-id": "Lexema ID", 21 | "advanced-partial-forms-hint": "Forma batzuk falta dituzten lexemak sortzeko, aukeratu modu aurreratua", 22 | "generated-via": "honen bidez sortua", 23 | "description-with-forms-and-senses": "$1, {{PLURAL:$2|0=formarik ez|forma bat|$2 forma}} eta {{PLURAL:$3|0=esanahirik ez|esanahi bat|$3 esanahi}}", 24 | "bulk-link": "multzo modua", 25 | "bulk-format-help": "formatuaren laguntza", 26 | "bulk-not-allowed": "Ezin duzu multzo modua erabili, sentitzen dugu.", 27 | "bulk-first-field-not-lexeme-id": "Txantiloiak {{PLURAL:$1|forma bat|$1 forma}} eta $4 lerroak {{PLURAL:$2|eremu bat|$2 eremu}} dituenez, lehenengo eremuak lexema ID baten forma izan beharko luke, baina
$3-k ez du lexema ID baten itxurarik. (Gehitu al duzu forma bat gehiago sarreran?)", 28 | "bulk-first-field-lexeme-id": "Txantiloiak {{PLURAL:$1|forma bat|$1 forma}} eta $4 lerroak {{PLURAL:$2|eremu bat|$2 eremu}} dituenez, lehenengo eremuak lexema ID baten forma izan beharko luke, baina
$3-k ez du lexema ID baten itxurarik. (Ahaztu al duzu forma bat sartzea?)", 29 | "bulk-wrong-number-of-fields": "Txantiloiak {{PLURAL:$1|forma bat|$1 forma}}, lerro bakoitzak izan beharko lituzke halako eremu kopurua (lexema berria sortzerakoan) edo bat gehiago (existitzen den lexema baten IDa sartzen duzunean), baina $3 lerroan sartu duzunak {{PLURAL:$2|eremu bat|$2 eremu ditu}} horren ordez.", 30 | "bulk-optional-forms-hint": "Forma batzuk ez-ikusi egin nahi ditut, hutsik daudela esan (adb. ...||| hiru forma hutsik baldin badaude amaieran).", 31 | "edit-link": "aldatu", 32 | "edit-general": "\"Aldatu\" moduan zaude. Azpiko balioek helburu lexeman formak aldatu, gehitu edo kenduko dituzte.", 33 | "edit-mismatch-warning": "Ez du ematen lexema honek txantiloi honekin bat egiten duenik! Mesedez, begiratu bi aldiz ea txantiloi egokia ari zaren erabiltzen jarraitu aurretik.", 34 | "edit-form-list-item": "$1, $2, {{PLURAL:$3|0=adierazpenik ez|adierazpen bat|$3 adierazpen}}", 35 | "no-grammatical-features": "ezaugarri gramatikalik ez", 36 | "title-create": "$1 (sortu)", 37 | "title-advanced": "$1 (aurreratua)", 38 | "title-bulk": "$1 (multzoa)", 39 | "title-edit": "$1 (aldatu)", 40 | "login-hint": "Tresna hau erabiliz aldaketak egin ahal izateko [$1 saioa hasi] behar duzu.", 41 | "ambiguous-template": "$1 txantiloia jada ez dago; txantiloi hauekin ordezkatu da:", 42 | "settings-label-interface-language-code": "Erabiltzailearen interfazearen hizkuntza", 43 | "settings-save": "Gorde", 44 | "tool-name": "Wikidata Lexema Formak", 45 | "skip-to-main-content": "Eduki nagusira pasa", 46 | "documentation": "Dokumentazioa", 47 | "toolforge": "Wikimedia Toolforge", 48 | "source-code": "Iturburu-kodea", 49 | "login": "Hasi saioa", 50 | "settings-link": "Ezarpenak", 51 | "settings-heading": "Ezarpenak", 52 | "logged-in": "$1 gisa hasi duzu saioa.", 53 | "requires-javascript": "Funtzionalitate honek JavaScript behar du." 54 | } 55 | -------------------------------------------------------------------------------- /i18n/sk.json: -------------------------------------------------------------------------------- 1 | { 2 | "@metadata": { 3 | "authors": [ 4 | "Lucas Werkmeister", 5 | "Oujon", 6 | "Yardom78" 7 | ] 8 | }, 9 | "create": "Vytvoriť", 10 | "csrf-warning": "Je nám ľúto, ale túto požiadavku nebolo možné spracovať ( ochrana CSRF zlyhala). Skúste formulár odoslať znova.", 11 | "duplicates-warning": "Nasledujúce existujúce {{PLURAL:$1| lexéma má | lexémy majú}} rovnakú lemmu a jazykový kód ako ten, ktorý sa pokúšate vytvoriť:", 12 | "duplicates-instructions": "Ak ste si istí, že {{PLURAL:$1| je to | sú}} odlišné, začiarknite políčko v dolnej časti formulára.", 13 | "duplicates-create": "Vytvoriť novú lexému aj tak.", 14 | "no-duplicate": "Nejde o duplikát existujúcej lexémy.", 15 | "form-optional": " (voliteľné)", 16 | "advanced": "Pokročilé", 17 | "advanced-general": "Nachádzate sa v „pokročilom“ režime.", 18 | "advanced-lexeme-id": "Môžete zadať ID lexémy a namiesto vytvorenia novej pridať formuláre do existujúcej lexémy. Formuláre, ktoré už v lexéme existujú, nechajte prázdne, inak sa duplikujú!", 19 | "advanced-partial-forms": "Niektoré formuláre môžete nechať prázdne, aby sa nedali pridať. Uistite sa, že náhodou nevynecháte žiadne formuláre!", 20 | "lexeme-id": "ID lexémy", 21 | "advanced-partial-forms-hint": "Ak chcete vytvoriť lexémy, v ktorých niektoré formy chýbajú, prepnite do pokročilého režimu.", 22 | "generated-via": "generované prostredníctvom", 23 | "description-with-forms-and-senses": "$1 , {{PLURAL:$2| 0 = žiadne formuláre | jeden formulár | $2 formuláre | $2 formulárov}} a {{PLURAL:$3| 0 = žiaden význam | jeden význam | $3 významy | $3 významov}}", 24 | "bulk-link": "hromadný režim", 25 | "bulk-format-help": "pomoc s formátom", 26 | "bulk-not-allowed": "{{GENDER:$1| Nemáte}} povolenie na použitie hromadného režimu.", 27 | "bulk-first-field-not-lexeme-id": "Pretože šablóna obsahuje {{PLURAL:$1| jeden formulár | $1 formuláre | $1 formulárov}} a riadok $4 na vstupe má {{PLURAL:$2| jedno políčko | $2 políčka | $2 políčok}}, prvé políčko by malo vyzerať ako ID lexémy, ale
$3nevyzerá ako ID lexémy.", 28 | "bulk-first-field-lexeme-id": "Pretože šablóna obsahuje {{PLURAL:$1| jeden formulár | $1 formuláre | $1 formulárov}} a riadok $4 na vstupe má {{PLURAL:$2| jedno políčko | $2 políčka | $2 políčok}}, prvé políčko by nemalo vyzerať ako ID lexémy, ale
$3ako jedno vyzerá.", 29 | "bulk-wrong-number-of-fields": "Pretože šablóna obsahuje {{PLURAL:$1| jeden formulár | $1 formuláre | $1 formulárov}}, každý vstupný riadok by mal mať buď toľko políčok (pri vytváraní novej lexémy), alebo jedno ďalšie (pri zadávaní ID existujúcej lexémy, ktorú chcete upraviť), ale riadok $3 vstupu má {{PLURAL:$2| jedno políčko | $2 políčka | $2 políčok}}.", 30 | "bulk-optional-forms-hint": "Ak chcete niektoré formuláre preskočiť, zadajte ich ako prázdne (napr. ... ||| pre tri prázdne formuláre na konci).", 31 | "edit-link": "upraviť", 32 | "edit-general": "Nachádzate sa v režime „úprav“. Pri zmene nižšie uvedených hodnôt sa upravia, pridajú alebo odstránia formy cieľovej lexémy.", 33 | "edit-mismatch-warning": "Zdá sa, že táto lexéma nezodpovedá tejto šablóne! Pred pokračovaním si prosím dôkladne skontrolujte, či je to správna šablóna pre túto lexému.", 34 | "edit-ambiguous-warning": "{{PLURAL:$1| Formulár | Formuláre}} pre nasledovné lexémy sa zhodovali s viac ako jedným formulárom šablóny:", 35 | "edit-unmatched-warning": "{{PLURAL:$1| Formulár | Formuláre}} nasledovných lexém nezodpovedá/jú žiadnemu z formulárov šablón:", 36 | "edit-form-list-item": "$1 $2 , {{PLURAL:$3| 0 = žiaden výpis | jeden výpis | $3 výpisy | $3 výpisov }}", 37 | "no-grammatical-features": "bez gramatických znakov", 38 | "title-create": "$1 (vytvoriť)", 39 | "title-advanced": "$1 (pokročilý)", 40 | "title-bulk": "$1 (hromadne)", 41 | "title-edit": "$1 (upraviť)", 42 | "login-hint": "Pred vykonaním zmien pomocou tohto nástroja sa musíte [$1 prihlásiť].", 43 | "ambiguous-template": "Šablóna $1 už neexistuje; bola nahradená nasledovnou šablónou:", 44 | "settings-label-interface-language-code": "Jazyk používateľského rozhrania", 45 | "settings-save": "Uložiť" 46 | } 47 | -------------------------------------------------------------------------------- /i18n/ht.json: -------------------------------------------------------------------------------- 1 | { 2 | "@metadata": { 3 | "authors": [ 4 | "Kitanago" 5 | ] 6 | }, 7 | "create": "Kreye", 8 | "csrf-warning": "Eskize, nou pa t kapab trete demand sa a (pwoteksyon anti-CSRF te echwe). Tanpri eseye soumèt fòmilè a ankò.", 9 | "duplicates-warning": "Sa ki egziste deja {{PLURAL:$1| leksèm sa a gen|leksèm sa a gen}} menm lèm ak kòd lang ak sa w ap eseye kreye a:", 10 | "duplicates-instructions": "Si w sèten {{PLURAL:$1| li|yo}} diferan, tcheke kare ki anba fòm lan.", 11 | "duplicates-create": "Kreye yon nouvo leksèm de tout fason.", 12 | "no-duplicate": "Sa a se pa yon kopi yon leksèm ki egziste deja.", 13 | "form-optional": " (opsyonèl)", 14 | "advanced": "Avanse", 15 | "advanced-general": "Ou nan mòd \"avanse\".", 16 | "advanced-lexeme-id": "Ou ka antre yon idantifyan leksèm pou ajoute fòm nan yon leksem ki deja egziste olye pou w kreye yon nouvo. Kite nenpòt fòm ki deja egziste sou leksèm nan vid, otreman yo pral kopi!", 17 | "advanced-partial-forms": "Ou ka kite kèk fòm vid pou yo pa ajoute yo. Asire w ke ou pa manke okenn fòm pa aksidan!", 18 | "lexeme-id": "Idantifuan leksèm", 19 | "advanced-partial-forms-hint": "Pou kreye leksèm ak kèk fòm ki manke, pase ale nan mòd avanse.", 20 | "generated-via": "jenere atravè", 21 | "description-with-forms-and-senses": "$1 , {{PLURAL:$2| 0=okenn fòm|yon fòm| $2 fòm}} ak {{PLURAL:$3| 0=okenn sans|yon sans| $3 sans}}", 22 | "bulk-link": "mòd esansyèl", 23 | "bulk-format-help": "èd sou fòma", 24 | "bulk-not-allowed": "{{GENDER:$1| Ou}} pa gen dwa sèvi ak mòd en. Padon.", 25 | "bulk-first-field-not-lexeme-id": "Piske modèl la gen {{PLURAL:$1| yon sèl fòm| $1 fòm}} ak liy $4 nan opinyon an gen {{PLURAL:$2| yon sèl chan| $2 chan}}, premye chan an ta dwe sanble ak yon idantifyan leksèm, men
$3pa sanble ak yon idantifyan leksèm. (Èske ou te presize yon fòm twòp nan opinyon an?)", 26 | "bulk-first-field-lexeme-id": "Piske modèl la gen {{PLURAL:$1| yon fòm| $1 fòm}} ak liy $4 nan opinyon an gen {{PLURAL:$2| yon sèl chan| $2 jaden}}, premye chan an pa ta dwe sanble ak yon ID leksem, men
$3sanble ak youn. (Èske ou bliye yon fòm nan opinyon an?)", 27 | "bulk-wrong-number-of-fields": "Piske modèl la gen {{PLURAL:$1| yon fòm| $1 fòm}}, chak liy antre ta dwe genyen swa sa anpil chan (lè w ap kreye yon nouvo leksèm) oswa yon lòt ankò (lè w ap espesifye idantifyan yon leksèm ki egziste deja pou edite), men liy $3 nan opinyon an gen {{PLURAL:$2| yon sèl chan| $2 chan}} olye.", 28 | "bulk-optional-forms-hint": "Si ou vle sote kèk fòm, presize yo kòm vid (egzanp ...||| pou twa fòm vid nan fen).", 29 | "edit-link": "modifye", 30 | "edit-general": "Ou nan mòd \"modifye\". Chanje valè ki anba yo pral modifye, ajoute oswa retire fòm leksèm sib la.", 31 | "edit-mismatch-warning": "Leksèm sa a sanble pa koresponn ak modèl sa a! Tanpri verifye si se modèl ki bon pou leksèm sa a anvan ou kontinye.", 32 | "edit-ambiguous-warning": "Leksèm sa a {{PLURAL:$1| fòm|fòm}} matche plis pase yon fòm modèl egalman byen:", 33 | "edit-unmatched-warning": "{{PLURAL:$1| fòm|fòm}} leksèm sa a pa t koresponn ak okenn nan fòm modèl yo:", 34 | "edit-form-list-item": "$1 , $2 , {{PLURAL:$3| 0=pa gen okenn deklarasyon|yon deklarasyon| $3 deklarasyon}}", 35 | "no-grammatical-features": "pa gen okenn karakteristik gramatikal", 36 | "title-create": "$1 (kreye)", 37 | "title-advanced": "$1 (avanse)", 38 | "title-bulk": "$1 (lo)", 39 | "title-edit": "$1 (modifye)", 40 | "login-hint": "Ou bezwen [$1 login] anvan ou ka fè chanjman lè l sèvi avèk zouti sa a.", 41 | "ambiguous-template": "Modèl $1 pa egziste ankò; li te ranplase pa modèl sa yo:", 42 | "settings-label-interface-language-code": "Lang entèfas itilizatè", 43 | "settings-save": "Anrejistre", 44 | "tool-name": "Fòm leksèm Wikidata", 45 | "skip-to-main-content": "Ale nan kontni prensipal la", 46 | "documentation": "Dokimantasyon", 47 | "toolforge": "Wikimedia Toolforge", 48 | "source-code": "Kòd sous", 49 | "login": "Konekte", 50 | "settings-link": "Paramèt", 51 | "settings-heading": "Paramèt", 52 | "logged-in": "{{GENDER:$2| Konekte}} kòm $1 .", 53 | "requires-javascript": "Karakteristik sa a mande JavaScript." 54 | } 55 | -------------------------------------------------------------------------------- /i18n/hi.json: -------------------------------------------------------------------------------- 1 | { 2 | "@metadata": { 3 | "authors": [ 4 | "Abijeet Patro", 5 | "AnupamM", 6 | "Bgo eiu", 7 | "Saurmandal" 8 | ] 9 | }, 10 | "create": "बनाएँ", 11 | "csrf-warning": "क्षमा करें, हम इस अनुरोध को प्रोसेस नहीं कर पाए (CSRF सुरक्षा असफल रही)। कृपया फार्म को दोबारा प्रस्तुत करके प्रयास करें।", 12 | "duplicates-warning": "{{PLURAL:$1|इन मौजूदा मुफरद|इन मौजूदा मुफरदों}} के पास वही लेमा और भाषा कोड है जो आप बनाना चाहते हैं:", 13 | "duplicates-instructions": "अगर आप निश्चित हैं कि {{PLURAL:$1|यह अलग है|ये अलग हैं}}, फार्म के नीचे के बाक्स को चेक कर दें।", 14 | "duplicates-create": "एक नया मुफरद बना ही दें।", 15 | "no-duplicate": "यह किसी मौजूदा मुफरद की नकल नहीं है।", 16 | "form-optional": " (जरूरत नहीं है)", 17 | "advanced": "माहिरी", 18 | "advanced-general": "आप माहिरी वाले में हैं।", 19 | "advanced-lexeme-id": "आप नया मुफरद बनाने के बजाय पुराने मुफरद पर नए मुफरद की शिनाखत जोड़ सकते हैं। मुफरद पर पहले से मौजूद रूपों को खाली छोड़ दें, बरना उन्हें दो-दो बार दिखाया जाएगा!", 20 | "advanced-partial-forms": "आप किसी रूप को न जोड़ने के लिए उन्हें खाली छोड़ सकते हैं। निश्चित करें कि आप कोई रूप गलती से नहीं छोड़ रहे!", 21 | "lexeme-id": "मुफरद की शिनाखत", 22 | "advanced-partial-forms-hint": "कुछ रूपों को छोड़कर मुफरद बनाने के लिए माहरी वाले का इस्तेमाल करें।", 23 | "generated-via": "जनरेट करने वाला स्रोत", 24 | "description-with-forms-and-senses": "$1, {{PLURAL:$2|0=कोई रूप नहीं है|एक रूप है|$2 रूप हैं}} और {{PLURAL:$3|0=कोई बोध नहीं|एक बोध है|$3 बोध हैं}}", 25 | "bulk-link": "थोक वाला", 26 | "bulk-format-help": "प्रारूपन में सहायता", 27 | "bulk-not-allowed": "क्षमा करें, {{GENDER:$1|आपको}} थोक वाले का इस्तेमाल करने की अनुमति नहीं है।", 28 | "bulk-first-field-not-lexeme-id": "क्योंकि साँचे में {{PLURAL:$1|एक रूप है|$1 रूप हैं}} और इनपुट के पंक्ति $4 में {{PLURAL:$2|एक फील्ड है|$2 फील्ड हैं}}, पहले फील्ड को एक मुफरद की शिनाखत की तरह दिखना होगा, मगर
$3मुफरद की शिनाखत नहीं लगती। (क्या अपने इनपुट में एक रूप कई बार डाला है?)", 29 | "bulk-first-field-lexeme-id": "क्योंकि साँचे में {{PLURAL:$1|एक रूप है|$1 रूप हैं}} और इनपुट के पंक्ति $4 में {{PLURAL:$2|एक फील्ड है|$2 फील्ड हैं}}, पहले फील्ड को एक मुफरद की शिनाखत की तरह दिखना नहीं दिखना चाहिए, मगर
$3मुफरद की शिनाखत लगती है। (क्या आपने इनपुट में कोई रूप छोड़ दिया है?)", 30 | "bulk-wrong-number-of-fields": "क्योंकि साँचे में {{PLURAL:$1|एक रूप है|$2 रूप हैं}}, हर इनपुट पंक्ति में या तो उस संख्या में फील्ड होने चाहिए (नया मुफरद बनाते समय) या फिर एक ज़्यादा (संपादित करने के लिए मौजूदा मुफरद की शिनाखत दर्ज करते हुए), मगर इनपुट के पंक्ति $3 में {{PLURAL:$2|एक फील्ड है|$2 फील्ड हैं}}।", 31 | "bulk-optional-forms-hint": "अगर आप कुछ रूपों को छोड़ना चाहते हैं, उन्हें खाली रख दें (जैसे आखिर में तीन खाली रूपों के लिए ...|||)।", 32 | "edit-link": "तरमीम करें", 33 | "edit-general": "आप तरमीम वाले में हैं। नीचे के वैल्यूओं को बदलने से लक्ष्य मुफरद पर रूप जोड़े, संपादित किए या हटाए जाएँगे।", 34 | "edit-mismatch-warning": "ऐसा लगता है कि यह मुफरद इस साँचे से मेल नहीं खाता है! कृपया दोबारा जाँचें कि यह साँचा इस मुफरद के लिए सही है कि नहीं।", 35 | "edit-ambiguous-warning": "{{PLURAL:$1|यह रूप|ये रूप}} एक से ज़्यादा साँचों के रूपों से समान मेल {{PLURAL:$1|खाता है|खाते हैं}}।", 36 | "edit-unmatched-warning": "{{PLURAL:$1|इस रूप|इन रूपों}} ने किसी भी साँचे के रूप के साथ मेल नहीं खाया:", 37 | "edit-form-list-item": "$1, $2, {{PLURAL:$3|0=कोई बयान नहीं है|एक बयान है|$3 बयान हैं}}", 38 | "no-grammatical-features": "कोई व्याकरणिक विशेषता नहीं है", 39 | "title-create": "$1 (बनाएँ)", 40 | "title-advanced": "$1 (माहिरी)", 41 | "title-bulk": "$1 (थोक वाला)", 42 | "title-edit": "$1 (तरमीम करें)", 43 | "login-hint": "इस संद के ज़रिए बदलाव लाने से पहले [$1 लौग इन] करें।", 44 | "ambiguous-template": "साँचा $1 अब मौजूद नहीं है; इसे इन साँचों से बदल दिया गया है:", 45 | "settings-label-interface-language-code": "इसतेमाल करने वाली जुबान", 46 | "settings-save": "सहेजें", 47 | "tool-name": "वीकीडाटे रूप के फ़रमे", 48 | "skip-to-main-content": "मनसूबे को जाओ", 49 | "documentation": "दसतावेज़", 50 | "toolforge": "वीकीमीडिया टूलफ़रज", 51 | "source-code": "सरोत", 52 | "login": "लाग इन करें", 53 | "settings-link": "तरतीबात", 54 | "settings-heading": "तरतीबात", 55 | "logged-in": "$1 बतौर लाग इन किया गया।" 56 | } 57 | -------------------------------------------------------------------------------- /i18n/aig.json: -------------------------------------------------------------------------------- 1 | { 2 | "@metadata": { 3 | "authors": [ 4 | "CROIX2" 5 | ] 6 | }, 7 | "create": "Mek", 8 | "csrf-warning": "Saaree, we kyaant wuk dis ting dat be ax (KSAF pratexhan no wuk). Pleez do dis 'gain.", 9 | "duplicates-warning": "De folowin existin {{PLURAL:$1|lexeem hab|lexeem dem hab}} de siem lema an langiwj kuod a de wan yu wan fu mek:", 10 | "duplicates-instructions": "A yu knuo dat {{PLURAL:$1|um|dey}} difran, klik de baax pan de bak'm a de fuom.", 11 | "duplicates-create": "Mek wan nyuu lexeem eneewie.", 12 | "no-duplicate": "Dis na wan duplikit a wan existin lexeem.", 13 | "form-optional": " (yu no hafu do dis)", 14 | "advanced": "Advaans", 15 | "advanced-general": "Yu be een \"advaans\" muod.", 16 | "advanced-lexeme-id": "Yu kyaan put wan lexeem ID fu aad faam dem fu wan existin lexeem insted a mekin wan nyuu wan. Put faam dem dat alredee exis pan de lexeem blienk, a dey go duplikiet!", 17 | "advanced-partial-forms": "Yu kyaan put som fuom dem blienk so dey no go put. Don go axisdentlee leebin owt eenee faam dem!", 18 | "lexeme-id": "Lexeem ID", 19 | "advanced-partial-forms-hint": "To mek lexeem dem wid som fuom misin, go advaans.", 20 | "generated-via": "min mek wid", 21 | "description-with-forms-and-senses": "$1, {{PLURAL:$2|0=no fuom|wan fuom|$2 fuom dem}} an {{PLURAL:$3|0=no sens|wan sens|$3 sens dem}}", 22 | "bulk-link": "bulk muod", 23 | "bulk-format-help": "faamaat 'elp", 24 | "bulk-not-allowed": "{{GENDER:$1|Yu}} kyaan yuuz bulk muod. Saaree.", 25 | "bulk-first-field-not-lexeme-id": "Sins de templet hab {{PLURAL:$1|wan faam|$1 farm dem}} an lain $4 a de taip-plies hab {{PLURAL:$2|wan feeld|$2 feeld dem}}, de firs feeld shud luk laik wan lexeem ID, but
$3no luk laik wan lexeem ID. (Yu put wan faam tuu much een de taip-plies?)", 26 | "bulk-first-field-lexeme-id": "Sins de templet hab {{PLURAL:$1|wan fuom|$1 fuom dem}} an lain $4 a de taip-plies hab {{PLURAL:$2|wan feeld|$2 feeld dem}}, de firs feeld shud no luk laik wan lexeem ID, but
$3luk laik wan. (Yu no put wan fuom?)", 27 | "bulk-wrong-number-of-fields": "Sins de templet hab {{PLURAL:$1|wan fuom|$1 fuom dem}}, ebree taip-plies lain shud wan (a) dat menee feeld dem (wen mekin wan nyuu lexeem) (b) wan muo (wen putin de ID a wan existin lexeem fu chienj), but lain $3 a de taip-plies hab {{PLURAL:$2|wan feel'|$2 feel' dem}} 'sted.", 28 | "bulk-optional-forms-hint": "A yu wan fu skip sam fuom dem, put dem a emptee (e.g. ...||| fu chree emptee fuom dem a de en).", 29 | "edit-link": "chienj", 30 | "edit-general": "Yu be een \"chienj\" muod. Chienjin de valyuu dung dey wil chienj, put a tek wie fuom dem a de min waant lexeem.", 31 | "edit-mismatch-warning": "Dis lexeem no mach dis templet! Pleez chek if dis de rait templet fu dis lexeem.", 32 | "edit-ambiguous-warning": "De folowin lexeem {{PLURAL:$1|fuom|fuom dem}} mach muo dan wan templet fuom eekwalee wel:", 33 | "edit-unmatched-warning": "De folowin lexeem {{PLURAL:$1|fuom|fuom dem}} no mach de templet fuom dem:", 34 | "edit-form-list-item": "$1, $2, {{PLURAL:$3|0=no stietmen dem|wan stietmen|$3 stietmen dem}}", 35 | "no-grammatical-features": "no gramatik'l feecha dem", 36 | "title-create": "$1 (mek)", 37 | "title-advanced": "$1 (advaans)", 38 | "title-bulk": "$1 (bulk)", 39 | "title-edit": "$1 (chienj)", 40 | "login-hint": "Yu hafu [$1 laag een] befuo yu kyaan mek chienj dem wid dis chuul.", 41 | "ambiguous-template": "De templet $1 ded; om tek oba bai dis templet (dem):", 42 | "settings-label-interface-language-code": "Yuuza intafies langwij", 43 | "settings-label-use-wikifunctions": "Yuuz Wikifanxhandem fu mek fuom sagjestyan dem", 44 | "settings-save": "Keep", 45 | "tool-name": "Wikidieta Lexeem Fuom dem", 46 | "skip-to-main-content": "Gwarn fu de mien kantent", 47 | "documentation": "Dokyuumentieshan", 48 | "toolforge": "Wikimeediya Tuulfaaj", 49 | "source-code": "Sarce kuod", 50 | "login": "Laag een", 51 | "settings-link": "Setin dem", 52 | "settings-heading": "Setin dem", 53 | "logged-in": "{{GENDER:$2|Min laag een}} a $1.", 54 | "requires-javascript": "Dis ting need JaavaSkrip.", 55 | "wikifunctions-generating": "mekin fuom dem...", 56 | "wikifunctions-error": "sumting rang hap'n wail mekin de fuom dem" 57 | } 58 | -------------------------------------------------------------------------------- /i18n/he.json: -------------------------------------------------------------------------------- 1 | { 2 | "@metadata": { 3 | "authors": [ 4 | "Amire80", 5 | "Shoko", 6 | "Uziel302", 7 | "YaronSh" 8 | ] 9 | }, 10 | "create": "יצירה", 11 | "csrf-warning": "סליחה, לא יכולנו לעבד את הבקשה הזאת (הגנת CSRF נכשלה). נא לנסות לשלוח את הטופס שוב.", 12 | "duplicates-warning": "{{PLURAL:$1|ליחידה המילוניות הקיימת הבאה|ליחידות המילוניות הקיימות הבאות}} יש אותו שם ערך ואותו קוד שפה כמו למילה שאתם מנסים ליצור:", 13 | "duplicates-instructions": "אם {{PLURAL:$1|היא בטוח שונה|הן בטוח שונות}}, נא לבדוק את התיבה בתחתית הטופס.", 14 | "duplicates-create": "ליצור יחידה מילונית חדשה בכל־זאת.", 15 | "no-duplicate": "זאת לא כפילות של יחידה מילונית קיימת.", 16 | "form-optional": " (לא חובה)", 17 | "advanced": "מתקדם", 18 | "advanced-general": "נכנסת במצב \"מתקדם\".", 19 | "advanced-lexeme-id": "ניתן להזין מזהה יחידה מילונית כדי להוסיף צורות ליחידה מילונית קיימת במקום ליצור אחת חדשה. נא להשאיר צורות שכבר קיימות ביחידה מילונית ריקות, אחרת הן תוכפלנה!", 20 | "advanced-partial-forms": "באפשרותך להשאיר צורות ריקות כך שלא תתווספנה. נא לוודא שלא השמטת צורות כלשהן!", 21 | "lexeme-id": "מזהה יחידה מילונית", 22 | "advanced-partial-forms-hint": "כדי ליצור יחידות מילוניות שחסרות בהן צורות, יש לעבור למצב מתקדם.", 23 | "generated-via": "נוצר באמצעות", 24 | "description-with-forms-and-senses": "$1, {{PLURAL:$2|0=אפס צורות|צורה אחת|$2 צורות}} {{PLURAL:$3|0=ואפס משמעויות|ומשמעות אחת|ו־$3 משמעויות}}", 25 | "bulk-link": "מצב סיטונאי", 26 | "bulk-format-help": "עזרה בתסדיר", 27 | "bulk-not-allowed": "אינך {{GENDER:$1|מורשה|מורשית}} להשתמש במצב סיטונאי. סליחה.", 28 | "bulk-first-field-not-lexeme-id": "מכיוון שלתבנית יש {{PLURAL:$1|צורה אחת|$1 צורות}} ובשורה $4 בהקלט יש {{PLURAL:$2|שדה אחד|$2 שדות}}, השדה הראשון צריך להיראות כמו מזהה יחידה מילונית, אבל
$3אינו נראה כמו מזהה יחידה מילונית. (האם כתבת צורה אחת יותר מדי בקלט?)", 29 | "bulk-first-field-lexeme-id": "מכיוון שלתבנית יש {{PLURAL:$1|צורה אחת|$1 צורות}} ובשורה $4 בקלט יש {{PLURAL:$2|שדה אחד|$2 שדות}}, השדה הראשון צריך להיראות כמו מזהה יחידה מילונית, אבל
$3אינו נראה כמו אחד כזה. (האם שכחת צורה בקלט?)", 30 | "bulk-wrong-number-of-fields": "מכיוון שלתבנית יש {{PLURAL:$1|צורה אחת|$1 צורות}} לכל שורת קלט צריך להיות מספר כזה של שדות (בעת יצירת יחידה מילונית חדשה) או יותר (בעת הגדרת מזהה של יחידה מילונית קיימת שרוצים לערוך), אבל בשורה $3 בקלט יש {{PLURAL:$2|שדה אחד|$2 שדות}}.", 31 | "bulk-optional-forms-hint": "אם ברצונך לדלג על צורות מסוימות, יש לגתוב אותן ריקות (למשל, ...||| עבור שלוש צורות ריקות בסוף).", 32 | "edit-link": "עריכה", 33 | "edit-general": "נכנסת למצב \"עריכה\". שינוי הערכים להלן יערוך, יוסיף, או יסיר צורות של היחידה המילונית המיועדת.", 34 | "edit-mismatch-warning": "נראה שהיחידה המילונית הזאת אינה מתאימה לתבנית הזאת! נא לוודא שוב שזאת התבנית הנכונה ליחידה המילונית הזאת לפני המשך.", 35 | "edit-ambiguous-warning": "{{PLURAL:$1|צורת היחידה המילונית הבאה התאימה|צורות היחידה המילונית הבאות התאימו}} ליותר מצורת תבנית אחת באותו אופן:", 36 | "edit-unmatched-warning": "{{PLURAL:$1|צורת היחידה המילונית הבאה לא התאימה|צורות היחידה המילונית הבאות לא התאימו}} לאף אחת מצורות התבנית:", 37 | "edit-form-list-item": "$1, $2, {{PLURAL:$3|0=אפס קביעות|קביעה אחת|$3 קביעות}}", 38 | "no-grammatical-features": "אין תכונות דקדוקיות", 39 | "title-create": "$1 (יצירה)", 40 | "title-advanced": "$1 (מתקדם)", 41 | "title-bulk": "$1 (כמות גדולה)", 42 | "title-edit": "$1 (עריכה)", 43 | "login-hint": "יש [$1 להיכנס לחשבון] לפני שיהיה באפשרותך לעשות שינויים באמצעות הכלי הזה.", 44 | "ambiguous-template": "התבנית $1 כבר אינה קיימת; היא הוחלפשה בתבניות הבאות:", 45 | "settings-label-interface-language-code": "שפת ממשק המשתמש", 46 | "settings-label-use-wikifunctions": "להשתמש בוויקיפונקציות כדי לייצר הצעות בטפסים", 47 | "settings-save": "שמירה", 48 | "tool-name": "צורות יחידות מילוניות של ויקינתונים", 49 | "skip-to-main-content": "מעבר לתוכן הראשי", 50 | "documentation": "תיעוד", 51 | "toolforge": "Wikimedia Toolforge", 52 | "source-code": "קוד מקור", 53 | "login": "כניסה לחשבון", 54 | "settings-link": "הגדרות", 55 | "settings-heading": "הגדרות", 56 | "logged-in": "{{GENDER:$2|נכנס|נכנסה}} לחשבון $1.", 57 | "requires-javascript": "היכולת הזאת דורשת JavaScript.", 58 | "wikifunctions-generating": "נוצרות צורות דקדוקיות…", 59 | "wikifunctions-error": "אירעה שגיאה ביצירת צורות דקדוקיות" 60 | } 61 | -------------------------------------------------------------------------------- /i18n/sv.json: -------------------------------------------------------------------------------- 1 | { 2 | "@metadata": { 3 | "authors": [ 4 | "Ainali", 5 | "Belteshassar", 6 | "Lucas Werkmeister", 7 | "Sabelöga", 8 | "Vesihiisi", 9 | "WikiPhoenix" 10 | ] 11 | }, 12 | "create": "Skapa", 13 | "csrf-warning": "Din begäran kunde inte utföras på grund av ett CSRF-fel. Var god försök igen.", 14 | "duplicates-warning": "{{PLURAL:$1|Detta befintliga lexem|Dessa befintliga lexem}} har samma lemma och språkkod som lexemet du försöker skapa:", 15 | "duplicates-instructions": "Om du är säker på att {{PLURAL:$1|det är olikt|de är olika}}, markera i kryssrutan längst ner i formuläret.", 16 | "duplicates-create": "Skapa ett nytt lexem ändå.", 17 | "no-duplicate": "Duplicerar ej ett befintligt lexem.", 18 | "form-optional": " (valfri)", 19 | "advanced": "Avancerat läge", 20 | "advanced-general": "Du är nu i avancerat läge", 21 | "advanced-lexeme-id": "Här kan du skriva in ett lexem-ID för att lägga till former till ett befintligt lexem istället för att skapa ett nytt. För att undvika att redan befintliga former dupliceras, lämna dessa fält tomma.", 22 | "advanced-partial-forms": "Du kan lämna vissa fält tomma; dessa former kommer då inte att läggas till. Försäkra dig dock om att du inte lämnar några fält tomma av misstag!", 23 | "lexeme-id": "Lexem-ID", 24 | "advanced-partial-forms-hint": "För att skapa lexem utan att fylla i alla fält, byt till avancerat läge.", 25 | "generated-via": "genererades via", 26 | "description-with-forms-and-senses": "$1, {{PLURAL:$2|0=ingen form|en form|$2 former}} och {{PLURAL:$3|0=ingen betydelse|en betydelse|$3 betydelser}}", 27 | "bulk-link": "masskapa", 28 | "bulk-format-help": "formateringshjälp", 29 | "bulk-not-allowed": "Du får dessvärre inte masskapa lexem. Beklagar.", 30 | "bulk-first-field-not-lexeme-id": "Eftersom mallen har {{PLURAL:$1|en form|$1 former}} och rad $4 av inmatningen har {{PLURAL:$2|ett fält|$2 fält}} så ska det första fältet ha formen av ett lexem-ID, men
$3har inte formen av ett lexem-ID. (Angav du en form för mycket i inmatningen?)", 31 | "bulk-first-field-lexeme-id": "Då mallen har {{PLURAL:$1|en form|$1 former}} och rad $4 i inmatningen har {{PLURAL:$2|ett fält|$2 fält}} borde det första fältet inte se ut som ett lexem-ID, men det gör
$3. (glömde du en form i inmatningen?)", 32 | "bulk-wrong-number-of-fields": "Då mallen har {{PLURAL:$1|en form|$1 former}} borde varje inmatningsrad antingen ha så många fält (när man skapar ett nytt lexem) eller ett till (när man anger ett befintligt lexems ID att redigera), men rad $3 har i inmatningen har {{PLURAL:$2|ett fält|$2 fält}} istället.", 33 | "bulk-optional-forms-hint": "Om du vill hoppa över vissa former kan du helt enkelt ange dem som tomma (t.ex. ...||| för tre tomma former i slutet).", 34 | "edit-link": "redigera", 35 | "edit-general": "Du är i \"redigeringsläge\". Ändringar i värdena nedan kommer att redigera, lägga till eller ta bort former i det angivna lexemet.", 36 | "edit-mismatch-warning": "Detta lexem verkar inte matcha denna mall! Dubbelkolla att det är rätt mall för detta lexem innan du fortsätter.", 37 | "edit-ambiguous-warning": "Följande {{PLURAL:$1|lexemform|lexemformer}} matchade mer än ett mallformulär lika bra:", 38 | "edit-unmatched-warning": "Följande {{PLURAL:$1|lexemform|lexemformer}} matchade inte något mallformulär:", 39 | "edit-form-list-item": "$1, $2, {{PLURAL:$3|0=inget uttalande|ett uttalande|$3 uttalanden}}", 40 | "no-grammatical-features": "inga grammatiska funktioner", 41 | "title-create": "$1 (skapa)", 42 | "title-advanced": "$1 (avancerad)", 43 | "title-bulk": "$1 (masskapa)", 44 | "title-edit": "$1 (redigera)", 45 | "login-hint": "Du måste [$1 logga in] innan du kan göra ändringar med detta verktyg.", 46 | "ambiguous-template": "Mallen $1 finns inte längre. Den har ersatts av följande mallar:", 47 | "settings-label-interface-language-code": "Användargränssnittets språk", 48 | "settings-save": "Spara", 49 | "skip-to-main-content": "Hoppa till innehållet", 50 | "documentation": "Dokumentation", 51 | "source-code": "Källkod", 52 | "login": "Logga in", 53 | "settings-link": "Inställningar", 54 | "settings-heading": "Inställningar", 55 | "logged-in": "{{GENDER:$2|Loggade in}} som $1.", 56 | "requires-javascript": "Denna funktion kräver JavaScript." 57 | } 58 | -------------------------------------------------------------------------------- /i18n/io.json: -------------------------------------------------------------------------------- 1 | { 2 | "@metadata": { 3 | "authors": [ 4 | "Joao Xavier" 5 | ] 6 | }, 7 | "create": "Kreez", 8 | "csrf-warning": "Pardonez! Ni ne povis atendar ca demando (CSRF protekto faliis). Probez itere sendar la formulario.", 9 | "duplicates-warning": "La sequanta {{PLURAL:$1|lexemo|lexemi}} havas la sama lemo e linguala kodeko kam l'altru quan vu deziras krear:", 10 | "duplicates-instructions": "Se vu kredas ke {{PLURAL:$1|ol|li}} esas diferanta, facez 'check' che la buxo an l'infra parto di ca formulario.", 11 | "duplicates-create": "Irgamaniere, kreez nova lexemo*.", 12 | "no-duplicate": "To ne esas duplikato di existanta lexemo.", 13 | "form-optional": " (fakultativa)", 14 | "advanced": "Plura utensili", 15 | "advanced-general": "Vu esas en \"modo avancata\".", 16 | "advanced-lexeme-id": "Vu povas informar ID DI lexemo* por adjuntar formularii ad existanta lexemo*, vice krear nova. Ne kompletigez irga formularii existanta en la lexemo*, o la formularii duopligesos!", 17 | "advanced-partial-forms": "You can leave some forms blank so that they will not be added. Make sure you’re not accidentally leaving out any forms!", 18 | "lexeme-id": "Lexemal idendifikilo (ID)", 19 | "advanced-partial-forms-hint": "Por krear lexemi mankanta kelka formularii, komutez a la modo avancata.", 20 | "generated-via": "kreita per", 21 | "description-with-forms-and-senses": "$1, {{PLURAL:$2|0=nula formulario|1 formulario|$2 formularii}} e {{PLURAL:$3|0=nula senco|1 senco|$3 senci}}", 22 | "bulk-link": "bulk mode", 23 | "bulk-format-help": "helpo pri quale formatar", 24 | "bulk-not-allowed": "{{GENDER:$1|Vu}} ne darfas uzar ''bulk mode''. Pardonez.", 25 | "bulk-first-field-not-lexeme-id": "Since the template has {{PLURAL:$1|one form|$1 forms}} and line $4 of the input has {{PLURAL:$2|one field|$2 fields}}, the first field should look like a lexeme ID, but
$3does not look like a lexeme ID. (Did you specify one form too many in the input?)", 26 | "bulk-first-field-lexeme-id": "Since the template has {{PLURAL:$1|one form|$1 forms}} and line $4 of the input has {{PLURAL:$2|one field|$2 fields}}, the first field should not look like a lexeme ID, but
$3does look like one. (Did you forget a form in the input?)", 27 | "bulk-wrong-number-of-fields": "Since the template has {{PLURAL:$1|one form|$1 forms}}, each input line should have either that many fields (when creating a new lexeme) or one more (when specifying the ID of an existing lexeme to edit), but line $3 of the input has {{PLURAL:$2|one field|$2 fields}} instead.", 28 | "bulk-optional-forms-hint": "If you want to skip some forms, specify them as empty (e.g. ...||| for three empty forms at the end).", 29 | "edit-link": "redaktar", 30 | "edit-general": "Vu esas en la modo \"redakto\". Se vu modifikos l'informi adinfre, vu adjuntos od eliminos formularii, o la lexemo.", 31 | "edit-mismatch-warning": "This lexeme does not appear to match this template! Please double-check that it is the right template for this lexeme before continuing.", 32 | "edit-ambiguous-warning": "The following lexeme {{PLURAL:$1|form|forms}} matched more than one template form equally well:", 33 | "edit-unmatched-warning": "The following lexeme {{PLURAL:$1|form|forms}} did not match any of the template forms:", 34 | "edit-form-list-item": "$1, $2, {{PLURAL:$3|0=nula deklaro|1 deklaro|$3 deklari}}", 35 | "no-grammatical-features": "nula gramatikala traiti", 36 | "title-create": "$1 (kreez)", 37 | "title-advanced": "$1 (avancinta)", 38 | "title-bulk": "$1 (porciono)", 39 | "title-edit": "$1 (redaktez)", 40 | "login-hint": "You need to [$1 log in] before you can make changes using this tool.", 41 | "ambiguous-template": "Shablono $1 ne pluse existas; ol remplasesis da la sequanta shabloni:", 42 | "settings-label-interface-language-code": "Idiomo di vua interkonekto", 43 | "settings-save": "Konservez", 44 | "tool-name": "Formi di lexemi che Wikidata", 45 | "skip-to-main-content": "Saltez a la precipua kontenajo", 46 | "documentation": "Dokumentigo", 47 | "toolforge": "''Toolforge'' di Wikimedia", 48 | "source-code": "Kodexo-fonto", 49 | "login": "Enirar", 50 | "settings-link": "Ajusti", 51 | "settings-heading": "Ajusti", 52 | "logged-in": "{{GENDER:$2|Eniris}} kom $1.", 53 | "requires-javascript": "Ca funciono bezonas JavaScript." 54 | } 55 | -------------------------------------------------------------------------------- /i18n/uk.json: -------------------------------------------------------------------------------- 1 | { 2 | "@metadata": { 3 | "authors": [ 4 | "Base", 5 | "DDPAT", 6 | "Ice bulldog", 7 | "Ignatgg", 8 | "Lucas Werkmeister", 9 | "Renamerr", 10 | "Tohaomg" 11 | ] 12 | }, 13 | "create": "Створити", 14 | "csrf-warning": "Вибачте, не вийшло обробити цей запит (помилка системи захисту CSRF). Будь ласка, спробуйте відіслати форму ще раз.", 15 | "duplicates-warning": "{{PLURAL:$1|Така існуюча лексема має|Такі існуючі лексеми мають}} таку ж лему та код мови, як та, яку ви намагаєтесь створити:", 16 | "duplicates-instructions": "Якщо ви впевнені, що {{PLURAL:$1|це інше|вони різні}}, поставте прапорець унизу форми.", 17 | "duplicates-create": "Все одно створити нову лексему.", 18 | "no-duplicate": "Це не дублікат існуючої лексеми.", 19 | "form-optional": " (необов’язково)", 20 | "advanced": "Розширені налаштування", 21 | "advanced-general": "Ви перебуваєте в режимі розширених налаштувань.", 22 | "advanced-lexeme-id": "Ви можете ввести ID вже існуючої лексеми, щоб додати форми до неї замість створення нової лексеми. Залиште форми, які вже існують в лексемі, порожніми, інакше вони будуть додані повторно!", 23 | "advanced-partial-forms": "Ви можете залишити деякі форми порожніми, щоб вони не були додані. Переконайтесь що не залишили порожніх форм випадково!", 24 | "lexeme-id": "ID лексеми", 25 | "advanced-partial-forms-hint": "Щоб створити лексему без деяких форм, переключіться в режим розширених налаштувань.", 26 | "generated-via": "генерується через", 27 | "description-with-forms-and-senses": "$1, {{PLURAL:$2|0=без форм|один формує|$2 форми}} і {{PLURAL:$3|0=без почуттів|один відчуває|$3 почуття}}", 28 | "bulk-link": "масовий режим", 29 | "bulk-format-help": "довідка формату", 30 | "bulk-not-allowed": "Ви не маєте права використовувати масовий режим. Вибачте.", 31 | "bulk-first-field-not-lexeme-id": "Оскільки шаблон має {{PLURAL:$1|одну форму|$1 форм}}, а рядок $4 введення має {{PLURAL:$2|перше поле|$2 полей}}має виглядати як ідентифікатор лексеми, але
$3не виглядає як ідентифікатор лексеми. (Ви вказали занадто багато однієї форми у введенні?)", 32 | "bulk-first-field-lexeme-id": "Оскільки шаблон має {{PLURAL:$1|одну форму|$1 форм}}, а рядок $4 введення має {{PLURAL:$2|перше поле|$2 полей}}має виглядати як ідентифікатор лексеми, але
$3не виглядає як ідентифікатор одного. (Ви забули форму у введенні?)", 33 | "bulk-wrong-number-of-fields": "Оскільки шаблон має {{PLURAL:$1|одну форму|$1 форм}}, кожен рядок введення повинен містити або стільки полів (при створенні нової лексеми), або ще одне (при вказівці ідентифікатора існуючої лексеми для редагування), але натомість у рядку $3 введення є {{PLURAL:$2|одне поле|$2 полей}}.", 34 | "bulk-optional-forms-hint": "Якщо ви хочете пропустити деякі форми, вкажіть їх як порожні (наприклад ...||| для трьох порожніх форм в кінці).", 35 | "edit-link": "редагувати", 36 | "edit-general": "Ви перебуваєте в режимі \"редагування\". Зміна наведених нижче значень відредагує, додасть або видалить форми цільової лексеми.", 37 | "edit-mismatch-warning": "Схоже, ця лексема не відповідає цьому шаблону! Перш ніж продовжити, перевірте, чи це правильний шаблон для цієї лексеми.", 38 | "edit-ambiguous-warning": "{{PLURAL:$1|Така форма|Такі форми}} лексем однаково добре відповідають кільком формам шаблону:", 39 | "edit-unmatched-warning": "{{PLURAL:$1|Така форма|Такі форми}} лексеми не відповідає жодній із форм шаблону:", 40 | "edit-form-list-item": "$1, $2, {{PLURAL:$3|0=жодних заяв|одна заява|$3 заяв}}", 41 | "no-grammatical-features": "немає граматичних ознак", 42 | "title-create": "$1 (створено)", 43 | "title-advanced": "$1 (доповнено)", 44 | "title-bulk": "$1 (навалом)", 45 | "title-edit": "$1 (редаговано)", 46 | "login-hint": "Вам потрібно [$1 увійти], перш ніж ви зможете вносити зміни за допомогою цього інструменту.", 47 | "ambiguous-template": "Шаблон $1 більше не існує; його замінено такими шаблонами:", 48 | "settings-label-interface-language-code": "Мова інтерфейсу", 49 | "settings-save": "Зберегти", 50 | "tool-name": "Форми Лексем Вікіданих", 51 | "skip-to-main-content": "Перейти до основного вмісту", 52 | "documentation": "Документація", 53 | "toolforge": "Вікімедіа Toolforge", 54 | "login": "Увійти", 55 | "settings-link": "Налаштування", 56 | "settings-heading": "Налаштування" 57 | } 58 | -------------------------------------------------------------------------------- /i18n/pa.json: -------------------------------------------------------------------------------- 1 | { 2 | "@metadata": { 3 | "authors": [ 4 | "Bgo eiu", 5 | "Cabal", 6 | "Kuldeepburjbhalaike", 7 | "Lucas Werkmeister", 8 | "Satdeep Gill", 9 | "ਗੁਰਪ੍ਰੀਤ ਹੁੰਦਲ" 10 | ] 11 | }, 12 | "create": "ਬਣਾਓ", 13 | "csrf-warning": "ਮਾਫ਼ ਕਰਨਾ, ਅਸੀਂ ਇਸ ਬੇਨਤੀ ਤੇ ਕਾਰਵਾਈ ਨਹੀਂ ਕਰ ਸਕੇ (CSRF ਸੁਰੱਖਿਆ ਨਾਕਾਮ ਹੋਈ)। ਕਿਰਪਾ ਕਰਕੇ ਫਾਰਮ ਦੁਬਾਰਾ ਸਪੁਰਦ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", 14 | "duplicates-warning": "ਹੇਠ ਦਿੱਤੇ ਮੌਜੂਦਾ {{PLURAL:$1|ਸ਼ਬਦ|ਸ਼ਬਦਾਵਲੀ}} ਵਿੱਚ ਉਹੀ ਸ਼ਬਦ(lemma) ਅਤੇ ਭਾਸ਼ਾ ਕੋਡ ਹੈ ਜੋ ਤੁਸੀਂ ਬਣਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਹੇ ਹੋ:", 15 | "duplicates-instructions": "ਜੇਕਰ ਤੁਹਾਨੂੰ ਯਕੀਨ ਹੈ ਕਿ {{PLURAL:$1|ਇਹ|ਉਹ}} ਵੱਖਰੇ ਹਨ, ਤਾਂ ਫਾਰਮ ਦੇ ਹੇਠਾਂ ਦਿੱਤੇ ਡੱਬੇ 'ਤੇ ਨਿਸ਼ਾਨ ਲਗਾਓ।", 16 | "duplicates-create": "ਕਿਸੇ ਵੀ ਤਰ੍ਹਾਂ ਇੱਕ ਨਵਾਂ ਲੈਕਸੀਮ ਬਣਾਓ।", 17 | "no-duplicate": "ਇਹ ਕਿਸੇ ਮੌਜੂਦਾ ਲੈਕਸੀਮ ਦੀ ਨਕਲ ਨਹੀਂ ਹੈ।", 18 | "form-optional": " (ਚੋਣਵਾਂ)", 19 | "advanced": "ਉੱਨਤ", 20 | "advanced-general": "ਤੁਸੀਂ \"ਉੱਨਤ\" ਮੋਡ ਵਿੱਚ ਹੋ।", 21 | "advanced-lexeme-id": "ਹੋਰ ਰੂਪ ਦੇਣ ਵਾਸਤੇ ਤੁਸੀਂ ਪਹਿਲਾਂ ਪਾਇਆ ਗਿਆ ਲਫ਼ਜ਼ੀ ਸ਼ਿਨਾਖ਼ਤੀ ਲਿਖ ਸਕਦੇ ਹੋ। ਕੋਈ ਕੁਝ ਪਹਿਲਾਂ ਪਾਇਆਂ ਗਿਆਂ ਰੂਪਾਂ ਦੇ ਪੇਟ ਖ਼ਾਲੀ ਹੋ ਚਾਹੀਦੇ ਹਨ।", 22 | "advanced-partial-forms": "ਕੁਝ ਰੂਪ ਖ਼ਾਲੀ ਹੋ ਸਕਦੇ। ਪੱਕੇ ਕਰੋ ਕਿ ਸਾਰੇ ਠੀਕ ਹਨ!", 23 | "lexeme-id": "ਲਫ਼ਜ਼ੀ ਸ਼ਿਨਾਖ਼ਤੀ", 24 | "advanced-partial-forms-hint": "ਸਿਰਫ਼ ਕੁਝ ਰੂਪ ਦੇਣ ਵਾਸਤੇ ਅਜ਼ਾਫ਼ੀ ਵਾਲੇ ’ਤੇ ਕੰਮ ਕਰ ਸਕਦੇ ਹੋ।", 25 | "generated-via": "ਵਸੀਲਾ –", 26 | "description-with-forms-and-senses": "$1, {{PLURAL:$2|0=ਰੂਪ ਕੋਈ ਨਹੀਂ|ਇੱਕ ਰੂਪ|$2 ਰੂਪ}} ਤੇ {{PLURAL:$3|0=ਮਾਅਨੇ ਕੋਈ ਨਹੀਂ|ਇੱਕ ਮਾਅਨਾ|$3 ਮਾਅਨੇ}}", 27 | "bulk-link": "ਥੋਕ ਮੋਡ", 28 | "bulk-format-help": "(ਥੋਕ) ਤਰਤੀਬ ਲਈ ਮਦਦ", 29 | "bulk-not-allowed": "ਅਫ਼ਸੋਸ। {{GENDER:$1|ਤੁਹਾਨੂੰ}} ਥੋਕ ਮੋਡ ਵਰਤਣ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।", 30 | "bulk-first-field-not-lexeme-id": "ਕਿਉਂਕਿ ਫਰਮੇ ਵਿੱਚ {{PLURAL:$1|ਇੱਕ ਰੂਪ ਹੈ|$1 ਰੂਪ ਹਨ}} ਅਤੇ ਇਨਪੁਟ ਦੀ ਸਤਰ $4 ਵਿੱਚ {{PLURAL:$2|ਇੱਕ ਹਿੱਸਾ ਹੈ| $2 ਹਿੱਸੇ ਹਨ}}, ਪਹਿਲਾ ਹਿੱਸਾ ਇੱਕ ਲੈਕਸੀਮ ਆਈਡੀ ਵਰਗਾ ਦਿਖਾਈ ਦੇਣਾ ਚਾਹੀਦਾ ਹੈ, ਪਰ
$3ਇੱਕ ਲੈਕਸੀਮ ਆਈਡੀ ਵਰਗਾ ਨਹੀਂ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ। (ਕੀ ਤੁਸੀਂ ਇਨਪੁਟ ਵਿੱਚ ਇੱਕ ਫਾਰਮ ਬਹੁਤ ਜ਼ਿਆਦਾ ਨਿਰਧਾਰਤ ਕੀਤਾ ਹੈ?)", 31 | "bulk-first-field-lexeme-id": "ਕਿਉਂਕਿ ਫਰਮੇ ਵਿੱਚ {{PLURAL:$1|ਇੱਕ ਰੂਪ ਹੈ|$1 ਰੂਪ ਹਨ}} ਅਤੇ ਇਨਪੁਟ ਦੀ ਸਤਰ $4 ਵਿੱਚ {{PLURAL:$2|ਇੱਕ ਹਿੱਸਾ ਹੈ| $2 ਹਿੱਸੇ ਹਨ}}, ਪਹਿਲਾ ਹਿੱਸਾ ਇੱਕ ਲੈਕਸੀਮ ਆਈਡੀ ਵਰਗਾ ਦਿਖਾਈ ਨਹੀਂ ਦੇਣਾ ਚਾਹੀਦਾ ਹੈ, ਪਰ
$3ਇੱਕ ਲੈਕਸੀਮ ਆਈਡੀ ਵਰਗਾ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ। (ਕੀ ਤੁਸੀਂ ਇਨਪੁਟ ਵਿੱਚ ਰੂਪ ਜੋੜਨਾ ਭੁੱਲ ਗਏ ਸੀ?)", 32 | "bulk-wrong-number-of-fields": "ਕਿਉਂਕਿ ਫਰਮੇ ਵਿੱਚ {{PLURAL:$1|ਇੱਕ ਰੂਪ ਹੈ|$1 ਰੂਪ ਹਨ}}, ਇਨਪੁਟ ਦੀ ਹਰੇਕ ਸਤਰ ਵਿੱਚ ਜਾਂ ਤਾਂ ਉਹਨੇ ਹੀ ਹਿੱਸੇ ਹੋਣ (ਜਦੋਂ ਨਵਾਂ ਲੈਕਸੀਮ ਬਣਾਉਣਾ ਹੈ) ਜਾਂ ਇੱਕ ਵੱਧ (ਜਦੋਂ ਪਹਿਲਾਂ ਤੋਂ ਮੌਜੂਦ ਲੈਕਸੀਮ ਦੀ ਆਈਡੀ ਭਰ ਰਹੇ ਹਾਂ), ਪਰ ਇਸਦੀ ਬਜਾਏ ਇਨਪੁਟ ਦੀ ਸਤਰ $3 ਵਿੱਚ {{PLURAL:$2|ਇੱਕ ਹਿੱਸਾ ਹੈ|$2 ਹਿੱਸੇ ਹਨ}}।", 33 | "bulk-optional-forms-hint": "ਜੇਕਰ ਤੁਸੀਂ ਕੁਝ ਰੂਪ ਛੱਡਣਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਉਹਨਾਂ ਨੂੰ ਖਾਲੀ ਰਹਿਣ ਦਿਓ (ਜਿਵੇਂ ਕਿ ...||| ਅੰਤ ਵਿੱਚ ਤਿੰਨ ਖਾਲੀ ਰੂਪਾਂ ਲਈ)।", 34 | "edit-link": "ਸੋਧੋ", 35 | "edit-general": "ਤੁਸੀਂ \"ਸੋਧ\" ਮੋਡ ਵਿੱਚ ਹੋ। ਹੇਠਾਂ ਦਿੱਤੇ ਮੁੱਲਾਂ ਨੂੰ ਬਦਲਣਾ ਟਾਰਗੇਟ ਲੈਕਸੀਮ ਦੇ ਰੂਪਾਂ ਨੂੰ ਸੰਪਾਦਿਤ, ਜੋਡ਼ ਜਾਂ ਹਟਾ ਦੇਵੇਗਾ।", 36 | "edit-mismatch-warning": "ਇਹ ਲੈਕਸੀਮ ਇਸ ਫਰਮੇ ਨਾਲ ਮੇਲ ਨਹੀਂ ਖਾਂਦਾ ਜਾਪਦਾ ਹੈ! ਜਾਰੀ ਰੱਖਣ ਤੋਂ ਪਹਿਲਾਂ ਕਿਰਪਾ ਕਰਕੇ ਦੋ ਵਾਰ ਜਾਂਚ ਕਰੋ ਕਿ ਇਹ ਇਸ ਲੈਕਸਮੇ ਲਈ ਸਹੀ ਫਰਮਾ ਹੈ।", 37 | "edit-ambiguous-warning": "{{PLURAL:$1|ਇਥੋਂ}} ਕੁਝ ਫਰਮੇ ਲਾਏ ਹਨ –", 38 | "edit-unmatched-warning": "{{PLURAL:$1|ਇਥੋਂ}} ਕੋਈ ਨਹੀਂ ਫਰਮੇ ਲਾਏ ਹਨ –", 39 | "edit-form-list-item": "$1, $2, {{PLURAL:$3|0=ਬਿਆਨ ਕੋਈ ਨਹੀਂ|ਇੱਕ ਬਿਆਨ|$3 ਬਿਆਨ}}", 40 | "no-grammatical-features": "ਕੋਈ ਵਿਆਕਰਣ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨਹੀਂ", 41 | "title-create": "$1 (ਬਣਾਓ)", 42 | "title-advanced": "$1 (ਉੱਨਤ)", 43 | "title-bulk": "$1 (ਥੋਕ)", 44 | "title-edit": "$1 (ਸੋਧੋ)", 45 | "login-hint": "ਇਸ ਸੰਦ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਤਬਦੀਲੀਆਂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਤੁਹਾਨੂੰ [$1 ਦਾਖ਼ਲ ਹੋਣ] ਦੀ ਲੋੜ ਹੈ।", 46 | "ambiguous-template": "ਫਰਮਾ $1 ਹੁਣ ਮੌਜੂਦ ਨਹੀਂ ਹੈ; ਇਸਨੂੰ ਹੇਠਾਂ ਦਿੱਤੇ ਫਰਮੇ ਵੱਲੋਂ ਬਦਲ ਦਿੱਤਾ ਗਿਆ ਹੈ:", 47 | "settings-label-interface-language-code": "ਵਰਤੋਂਕਾਰ ਇੰਟਰਫੇਸ ਭਾਸ਼ਾ", 48 | "settings-label-use-wikifunctions": "ਫਾਰਮ ਸੁਝਾਅ ਤਿਆਰ ਕਰਨ ਲਈ ਵਿਕੀਕਾਰਜ ਦੀ ਵਰਤੋਂ ਕਰੋ", 49 | "settings-save": "ਸਾਂਭੋ", 50 | "tool-name": "ਵਿਕੀਡਾਟਾ ਲੈਕਸੀਮ ਰੂਪ", 51 | "skip-to-main-content": "ਮੁੱਖ ਸਮੱਗਰੀ ਵੱਲ ਜਾਓ", 52 | "documentation": "ਦਸਤਾਵੇਜ਼ੀਕਰਨ", 53 | "toolforge": "ਵਿਕੀਮੀਡੀਆ ਟੂਲਫੋਰਜ", 54 | "source-code": "ਸਰੋਤ ਕੋਡ", 55 | "login": "ਦਾਖ਼ਲ ਹੋਵੋ", 56 | "settings-link": "ਤਰਜੀਹਾਂ", 57 | "settings-heading": "ਤਰਜੀਹਾਂ", 58 | "logged-in": "$1 ਵਜੋਂ {{GENDER:$2|ਦਾਖ਼ਲ ਹੋਏ ਹੋ।}}", 59 | "requires-javascript": "ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਲਈ JavaScript ਦੀ ਲੋੜ ਹੈ।", 60 | "wikifunctions-generating": "ਰੂਪ ਤਿਆਰ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ...", 61 | "wikifunctions-error": "ਰੂਪ ਬਣਾਉਣ ਦੌਰਾਨ ਇੱਕ ਗਲਤੀ ਆਈ ਹੈ" 62 | } 63 | -------------------------------------------------------------------------------- /i18n/ar.json: -------------------------------------------------------------------------------- 1 | { 2 | "@metadata": { 3 | "authors": [ 4 | "Alshamiri1", 5 | "Dr-Taher", 6 | "FiberAhmed", 7 | "Hubaishan", 8 | "Kawayashu", 9 | "Lucas Werkmeister", 10 | "Mdktb", 11 | "Meno25", 12 | "Mohanad", 13 | "Mohanad Kh", 14 | "Sandra Hanbo", 15 | "أَحمد", 16 | "زكريا" 17 | ] 18 | }, 19 | "create": "أنشئ", 20 | "csrf-warning": "لم يحفظ (تعذرت الحماية من \"تزوير الطلب عبر المواقع\"). أعد المحاولة", 21 | "duplicates-warning": "{{PLURAL:$1||المفردة التالية|المفردتان التاليتان|المفردات التالية}} تحتوي على نفس تسمية المفردة واللغة للمفردة التي تحاول إنشاءها:", 22 | "duplicates-instructions": "إذا كنت متأكدًا من أن {{PLURAL:$1|مختلف|مختلفة}} ، حدد المربع الموجود أسفل النموذج.", 23 | "duplicates-create": "أنشئ معجمية جديدة على أي حال.", 24 | "no-duplicate": "هذه ليست مكررة عن مفردة موجودة.", 25 | "form-optional": " (اختياري)", 26 | "advanced": "متقدّم", 27 | "advanced-general": "أنت في الوضع \"المتقدّم\".", 28 | "advanced-lexeme-id": "اكتب معرفًا للمفردة لإغناء المفردة الموجودة عوضًا عن إنشاء مفردة جديدة. اترك أي صيغ موجودة حاليًا في المفردة فارغة، وإلا سوف تتكرر.", 29 | "advanced-partial-forms": "لا تكتب في المربعات التي لا تريد إضافتها", 30 | "lexeme-id": "معرّف المفردة", 31 | "advanced-partial-forms-hint": "لإنشاء lexemes مع بعض النماذج مفقودة، قم بالتبديل إلى الوضع المتقدم.", 32 | "generated-via": "وُلِّدت عبر", 33 | "description-with-forms-and-senses": "$1, {{PLURAL:$2|0=لا توجد نماذج|نموذج واحد|$2 نماذج}} و {{PLURAL:$3|0=no senses|one sense|$3 senses}}", 34 | "bulk-link": "الوضع المُجمع", 35 | "bulk-format-help": "مساعدة التنسيق", 36 | "bulk-not-allowed": "{{GENDER:$1|أنت}} غير مسموح لك باستخدام الوضع المجمع. آسف.", 37 | "bulk-first-field-not-lexeme-id": "نظرًا لأن القالب يحتوي على {{PLURAL:$1||صيغة واحدة|صيغتين|$1 صيغ|$1 صيغة}} والسطر $4 من الإدخال يحتوي على {{PLURAL:$2||حقل واحد|حقلين|$2 حقول|$2 حقلًا|$2 حقل}}، يجب أن يبدو الحقل الأول مثل معرف مفردة، لكن
$3لا يبدو مثل معرف مفردة. (هل حددت صيغة واحدة أكثر من اللازم في الإدخال؟)", 38 | "bulk-first-field-lexeme-id": "نظرًا لأن القالب يحتوي على {{PLURAL:$1||صيغة واحدة|صيغتين|$1 صيغ|$1 صيغة}} والسطر $4 من الإدخال يحتوي على {{PLURAL:$2||حقل واحد|حقلين|$2 حقول|$2 حقلًا|$2 حقل}}، يجب ألا يبدو الحقل الأول مثل معرف مفردة، لكن يبدو أن
$3مثل واحد. (هل نسيت صيغةً في الإدخال؟)", 39 | "bulk-wrong-number-of-fields": "نظرًا لأن القالب يحتوي على {{PLURAL:$1| |صيغة واحدة|صيغتين|$1 صيغ|$1 صيغة}}، يجب أن يحتوي كل سطر إدخال إما على العديد من الحقول (عند إنشاء مفردة جديدة) أو واحد إضافي (عند تحديد معرف مفردة موجود لتحريره)، لكن السطر $3 من الإدخال يحتوي على {{PLURAL:$2||حقل واحد|حقلين|$2 حقول|$2 حقلًا|$2 حقل}} بدلاً من ذلك.", 40 | "bulk-optional-forms-hint": "إذا كنت تريد تخطي بعض النماذج، فحددها فارغة (على سبيل المثال ...||| لثلاثة نماذج فارغة في النهاية).", 41 | "edit-link": "عدّل", 42 | "edit-general": "أنت في وضع \"التحرير\". سيؤدي تغيير القيم أدناه إلى تحرير أو إضافة أو إزالة صيغ من المفردة المستهدفة.", 43 | "edit-mismatch-warning": "يبدو أن هذه المفردة لا تطابق هذا القالب! يرجى التحقق مرة أخرى من أنه القالب الصحيح لهذه المفردة قبل المتابعة.", 44 | "edit-ambiguous-warning": "{{PLURAL:$1||صيغة|صيغتا|صيغ}} المفردة التالية تطابق أكثر من نموذج قالب واحد بشكل متساوٍ:", 45 | "edit-unmatched-warning": "{{PLURAL:$1||صيغة|صيغتا|صيغ}} المفردة التالية لم تطابق أيًا من صيغ القالب:", 46 | "edit-form-list-item": "$1 $2، {{PLURAL:$3|0 = لا توجد بيانات|بيان واحد| $3 بيانات}}", 47 | "no-grammatical-features": "لا توجد سمات نحوية", 48 | "title-create": "$1 (إنشاء)", 49 | "title-advanced": "$1 (متقدم)", 50 | "title-bulk": "$1 (بالجملة)", 51 | "title-edit": "$1 (عدّل)", 52 | "login-hint": "تحتاج إلى [$1 تسجيل دخول] قبل أن تتمكن من إجراء تغييرات باستخدام هذه الأداة.", 53 | "ambiguous-template": "لم يعد القالب $1 موجودًا؛ تمجرى استبداله بالقوالب التالية:", 54 | "settings-label-interface-language-code": "لغة واجهة المستخدم", 55 | "settings-label-use-wikifunctions": "استخدم Wikifunctions لإنشاء اقتراحات النماذج", 56 | "settings-save": "حفظ", 57 | "tool-name": "تصريفات مفردة ويكي بيانات", 58 | "skip-to-main-content": "تخطي إلى المحتوى الرئيسي", 59 | "documentation": "توثيق", 60 | "toolforge": "أدوات ويكيميديا", 61 | "source-code": "الكود المصدري", 62 | "login": "تسجيل الدخول", 63 | "settings-link": "الإعدادات", 64 | "settings-heading": "إعدادات", 65 | "logged-in": "{{GENDER:$2| تم تسجيل الدخول}} كـ $1 .", 66 | "requires-javascript": "هذه الميزة تتطلب جافاسكريبت.", 67 | "wikifunctions-generating": "إنشاء النماذج…", 68 | "wikifunctions-error": "حدث خطأ أثناء إنشاء النماذج" 69 | } 70 | --------------------------------------------------------------------------------