التوثيق / للمطوّرين
تضيف SwiftLing Pro الأمر wp swiftling إلى WP-CLI، ويتيح الوظائف نفسها التي تتيحها واجهة REST API الخاصة بها (انظر واجهة REST API ووكلاء الذكاء الاصطناعي). شغّله حيث يعمل WordPress، سواء في برنامج نصي أو أثناء النشر أو عبر SSH (wp --ssh=user@host/path swiftling …). يصف الأمر wp help swiftling <command> كل أمر وخيار متاح في تثبيتك.
تُنفَّذ الأوامر التي تقرأ الترجمات أو تغيّرها بصلاحيات مستخدم: أضف --user=admin. ويمكنها تنفيذ ما يُسمح لذلك المستخدم بتنفيذه في محرّر الترجمة.
الأوامر
| Command | What it does |
|---|---|
wp swiftling status | The original, the translation service and its characters this month, and how far each language has come across the pages and posts visitors open. --format=table|json|csv|yaml. |
wp swiftling languages | The languages, the original first. --format as above. |
wp swiftling check | Checks pages on the server, so their texts are known. |
wp swiftling translate | Translates with the translation service. See below. |
wp swiftling to-translate | What still needs translating in a language. |
wp swiftling export | Texts with their originals, translations and states, as JSON, for a translator or another tool. |
wp swiftling import | The translations of such a file, filled in, back into the site. |
wp swiftling flush-cache | Empties SwiftLing’s cache of maps and translations, and the pages of the cache plugins SwiftLing knows. |
wp swiftling clean | Removes what SwiftLing kept of posts no longer on the site. |
ما تترجمه: العناصر
العنصر هو ما يفتحه محرّر الترجمة:
| Subject | Example |
|---|---|
| A post, page or product | post:12 (or just 12) |
| A template of a block theme | template:twentytwentyfive//archive |
| A kind of page of a classic theme | view:search |
| The terms of a list | terms:category |
| A classic menu | menu:3 |
| A builder’s subject, such as an options page of Advanced Custom Fields | as wp swiftling to-translate lists it |
تقبل عدة أوامر تحديد العناصر بطريقتين: ذكرها بالاسم (post:12 post:13)، أو استخدام --all لجميع العناصر من نوع معيّن.
| Option | Meaning |
|---|---|
--all | Every subject of a kind instead of the ones you name. |
--kind=<kind> | With --all: post (the default), template, terms, menu or all. |
--type=<type> | With --all and posts: only one post type, as page. |
يقبل wp swiftling check الوسيط <subject>… والخيارات --all و--kind و--type.
الحالات
يكون كل نص في الصفحة في إحدى الحالات التالية:
| State | Meaning |
|---|---|
missing | Not translated yet: visitors read the original. |
machine | A service translated it, nobody has read it yet. |
reviewed | Someone checked it (or wrote it). |
outdated | The original changed since it was translated. The old translation stays, marked outdated, until someone reviews it. |
official | The translation of WordPress, the theme or a plugin. SwiftLing never sends these to a service. |
partial | Of a page: some texts are translated, some not. |
duplicate | Of a page: the language keeps the original on purpose (“Keep the original” in the editor). |
الترجمة
wp swiftling translate [<subject>…] --lang=<slug> [--all] [--kind=<kind>] [--type=<type>] [--again=<states>] [--recheck] [--yes] --user=admin
- تأخذ
--langالمعرّف المختصر للغة، أو عدة معرّفات تفصل بينها فواصل (de,fr,hr)، أوallلجميع اللغات. - يستخدم خدمة الترجمة المختارة في الإعدادات › خدمة الترجمة ومفتاحها، ويُحتسب الاستخدام على حسابك لدى تلك الخدمة. ولا تُستخدم إلا خدمة واحدة للترجمة في كل مرة.
- تُفحص كل صفحة على الخادم أولًا. ويُحتفَظ بما ترجمته الخدمة قبل توقفها (بسبب رفض المفتاح أو نفاد الحصة).
- يطلب
--allالتأكيد قبل البدء، لأن الترجمة تُحتسب بحسب عدد الأحرف. أضف--yesلتجاوز السؤال، كما في البرامج النصية.
ملء النصوص الفارغة (الخيار الافتراضي)
wp swiftling translate post:12 --lang=de --user=admin
wp swiftling translate --all --type=page --lang=de,fr --yes --user=admin
wp swiftling translate --all --lang=all --yes --user=admin
لا تُرسَل إلا النصوص التي ليس لها ترجمة. ولا تُمسّ أي ترجمة كتبها شخص أو راجعها، وتُترك الترجمة الآلية كما هي.
يشمل --all الصفحات التي لا تزال فيها نصوص تحتاج إلى ترجمة وفقًا لآخر فحص لها: غير المترجمة أو المترجمة جزئيًا أو التي أصبحت ترجماتها قديمة. وقد تحتوي صفحة تغيّرت منذ آخر فحص لها على نصوص جديدة لم يكتشفها الفحص بعد. أضف --recheck لإعادة فحص كل صفحة:
wp swiftling translate --all --lang=all --recheck --yes --user=admin
يحتفظ النص الذي تغيّر أصله بترجمته السابقة، وتُعلَّم بأنها outdated ليراجعها أحد في المحرّر. ولا يستبدلها التشغيل الافتراضي.
إعادة الترجمة: --again
يعيد --again=<states> ترجمة النصوص التي في تلك الحالات، بدلًا من ملء النصوص الفارغة. وتكون قيمة <states> هي machine أو reviewed أو كلتاهما مفصولتين بفاصلة.
| You write | What it translates again |
|---|---|
--again=machine | Texts a service translated before and nobody has reviewed. The new translation replaces the old one and is saved as machine. Reviewed texts stay. |
--again=reviewed | Texts someone checked or wrote by hand. They are replaced with a machine translation, so this overwrites manual work. Use it only when you mean it. |
--again=machine,reviewed | Both: every text that has a translation of its own, except the official ones. This is “translate everything from scratch” for what is already translated. |
ما ينبغي معرفته عن --again:
- لا يملأ النصوص الفارغة. لملء ما لم يُترجَم من قبل أيضًا، شغّل الأمر مرةً من دون
--again(قبل ذلك أو بعده). - لا يُحتفَظ بنسخة من الترجمات القديمة. إذا كنت قد تحتاج إلى استعادتها، فشغّل
wp swiftling exportأولًا. - لا تُرسَل أبدًا النصوص
official(ترجمات WordPress والقوالب والإضافات) ولا النصوصoutdated. فالنص الذي أصبحت ترجمته قديمة يحتاج إلى مراجعة. - عند استخدام
--all، يشمل--againكل العناصر باستثناء العنصر الذي يُبقي النص الأصلي. ولا حاجة إلى--recheck. - لا تُرسَل أبدًا النصوص التي لا تحتوي إلا على عناوين أو شيفرات أو لا تحتوي على كلمات، مهما كانت الخيارات التي تحددها.
- يظل كل ما يُرسَل يُرسَل إلى الخدمة التي اخترتها، لذا يُحتسب على حسابك. راجع
wp swiftling statusلمعرفة عدد الأحرف لهذا الشهر.
# translate the machine translations of one page into German again
wp swiftling translate post:12 --lang=de --again=machine --user=admin
# a whole site, every language: fill what is empty, then redo the machine translations
wp swiftling translate --all --lang=all --yes --user=admin
wp swiftling translate --all --lang=all --again=machine --yes --user=admin
# the templates (header, footer) again, including what someone reviewed. Back up first.
wp swiftling export --all --kind=template --lang=de --file=templates-de.json --user=admin
wp swiftling translate --all --kind=template --lang=de --again=machine,reviewed --yes --user=admin
ما تبقّى لترجمته
wp swiftling to-translate --lang=de [--kind=<kind>] [--type=<type>] [--state=<states>] [--format=<format>] --user=admin
يعرض افتراضيًا ما لم يُترجَم، أو تُرجِم جزئيًا، أو أصبحت ترجمته قديمة، أو لم يُترجَم إلا آليًا. وتكون قيمة --kind هي post (الافتراضية) أو template أو terms أو menu. وتكون قيمة --state قائمة مفصولة بفواصل من missing وpartial وoutdated وmachine وreviewed وduplicate. وتكون قيمة --format هي table أو json أو csv أو yaml أو count.
wp swiftling to-translate --lang=de --format=count --user=admin
wp swiftling to-translate --lang=de --kind=post --type=page --state=machine --user=admin
الصفحة التي لم تُفحص بعد لا تكون نصوصها معروفة، لذا تُدرج بحالة missing.
التصدير والاستيراد
wp swiftling export [<subject>…] --lang=<slug> [--all] [--kind=<kind>] [--type=<type>] [--state=<states>] [--file=<file>] --user=admin
wp swiftling import <file> [--state=<state>] [--dry-run] --user=admin
يُنشئ export ملف JSON يتضمن النص الأصلي والترجمة والحالة لكل نص. وتُفحص كل صفحة على الخادم أولًا. يقتصر --state على النصوص ذات الحالات التالية: missing وoutdated وmachine وreviewed وofficial. وبدون --file، تُطبع النتيجة.
يقرأ import ملفًا من هذا النوع بعد ملء الترجمات فيه:
<file>هو مسار ملف، أو-للإدخال القياسي.--state=reviewed(الخيار الافتراضي) أو--state=machineيحدّد الحالة التي تُحفظ بها الترجمات.- يتحقق
--dry-runمن الترجمات دون حفظ أي شيء. - تُفحص صفحة كل موضوع أولًا، ويُتحقق من جميع ترجماته قبل حفظ أي شيء. تُرفض ترجمة النص الأصلي مع موضوعها إذا تغيّر النص منذ التصدير، وكذلك ترجمة نص مأخوذ من الشيفرة إذا طلبت قيمة غير موجودة في نصه الأصلي. أما الترجمة الفارغة في الملف، فتُبقي النص كما هو.
wp swiftling export --all --lang=de --state=missing --file=de.json --user=admin
wp swiftling import de.json --dry-run --user=admin
wp swiftling import de.json --user=admin
فحص الصفحات
wp swiftling check post:12 --user=admin
wp swiftling check --all --kind=template --user=admin
يفحص صفحة كل موضوع على الخادم، كما يفعل محرر الترجمة، للتعرّف على نصوصها. لا يُشغّل الفحص أي نصوص برمجية، لذا لا يعثر على نص يُنشئه نص برمجي بعد تحميل الصفحة، ولا على نص محفوظ في سمة data-* يعرضه نص برمجي.
الحفاظ على سرعة الموقع
بعد تنفيذ عملية كبيرة، يُفرغ wp swiftling flush-cache ذاكرة التخزين المؤقت لـSwiftLing والصفحات المخزّنة مؤقتًا لدى إضافات التخزين المؤقت التي يتعرف عليها SwiftLing. ويزيل wp swiftling clean ما احتفظ به SwiftLing من بيانات المقالات التي لم تعد موجودة على الموقع.