Skip to content

Commit 63559a8

Browse files
feat(plugin-form-builder): generate all supported language translations
1 parent 73b6ab7 commit 63559a8

50 files changed

Lines changed: 4604 additions & 10 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

packages/plugin-form-builder/package.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,16 @@
4444
"import": "./src/exports/client.ts",
4545
"types": "./src/exports/client.ts",
4646
"default": "./src/exports/client.ts"
47+
},
48+
"./translations/languages/all": {
49+
"import": "./src/translations/index.ts",
50+
"types": "./src/translations/index.ts",
51+
"default": "./src/translations/index.ts"
52+
},
53+
"./translations/languages/*": {
54+
"import": "./src/translations/languages/*.ts",
55+
"types": "./src/translations/languages/*.ts",
56+
"default": "./src/translations/languages/*.ts"
4757
}
4858
},
4959
"main": "./src/index.ts",
@@ -96,6 +106,16 @@
96106
"import": "./dist/exports/client.js",
97107
"types": "./dist/exports/client.d.ts",
98108
"default": "./dist/exports/client.js"
109+
},
110+
"./translations/languages/all": {
111+
"import": "./dist/translations/index.js",
112+
"types": "./dist/translations/index.d.ts",
113+
"default": "./dist/translations/index.js"
114+
},
115+
"./translations/languages/*": {
116+
"import": "./dist/translations/languages/*.js",
117+
"types": "./dist/translations/languages/*.d.ts",
118+
"default": "./dist/translations/languages/*.js"
99119
}
100120
},
101121
"main": "./dist/index.js",

packages/plugin-form-builder/src/translations/index.ts

Lines changed: 94 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,102 @@
1-
import type { GenericTranslationsObject, NestedKeysStripped } from '@payloadcms/translations'
1+
import type {
2+
GenericTranslationsObject,
3+
NestedKeysStripped,
4+
SupportedLanguages,
5+
} from '@payloadcms/translations'
26

3-
import { en } from './en.js'
4-
import { fr } from './fr.js'
7+
import type { PluginDefaultTranslationsObject } from './types.js'
8+
9+
import { ar } from './languages/ar.js'
10+
import { az } from './languages/az.js'
11+
import { bg } from './languages/bg.js'
12+
import { bnBd } from './languages/bnBd.js'
13+
import { bnIn } from './languages/bnIn.js'
14+
import { ca } from './languages/ca.js'
15+
import { cs } from './languages/cs.js'
16+
import { da } from './languages/da.js'
17+
import { de } from './languages/de.js'
18+
import { en } from './languages/en.js'
19+
import { es } from './languages/es.js'
20+
import { et } from './languages/et.js'
21+
import { fa } from './languages/fa.js'
22+
import { fr } from './languages/fr.js'
23+
import { he } from './languages/he.js'
24+
import { hr } from './languages/hr.js'
25+
import { hu } from './languages/hu.js'
26+
import { hy } from './languages/hy.js'
27+
import { id } from './languages/id.js'
28+
import { is } from './languages/is.js'
29+
import { it } from './languages/it.js'
30+
import { ja } from './languages/ja.js'
31+
import { ko } from './languages/ko.js'
32+
import { lt } from './languages/lt.js'
33+
import { lv } from './languages/lv.js'
34+
import { my } from './languages/my.js'
35+
import { nb } from './languages/nb.js'
36+
import { nl } from './languages/nl.js'
37+
import { pl } from './languages/pl.js'
38+
import { pt } from './languages/pt.js'
39+
import { ro } from './languages/ro.js'
40+
import { rs } from './languages/rs.js'
41+
import { rsLatin } from './languages/rsLatin.js'
42+
import { ru } from './languages/ru.js'
43+
import { sk } from './languages/sk.js'
44+
import { sl } from './languages/sl.js'
45+
import { sv } from './languages/sv.js'
46+
import { ta } from './languages/ta.js'
47+
import { th } from './languages/th.js'
48+
import { tr } from './languages/tr.js'
49+
import { uk } from './languages/uk.js'
50+
import { vi } from './languages/vi.js'
51+
import { zh } from './languages/zh.js'
52+
import { zhTw } from './languages/zhTw.js'
553

654
export const translations = {
55+
id,
56+
ar,
57+
az,
58+
bg,
59+
'bn-BD': bnBd,
60+
'bn-IN': bnIn,
61+
ca,
62+
cs,
63+
da,
64+
de,
765
en,
66+
es,
67+
et,
68+
fa,
869
fr,
9-
}
70+
he,
71+
hr,
72+
hu,
73+
hy,
74+
is,
75+
it,
76+
ja,
77+
ko,
78+
lt,
79+
lv,
80+
my,
81+
nb,
82+
nl,
83+
pl,
84+
pt,
85+
ro,
86+
rs,
87+
'rs-latin': rsLatin,
88+
ru,
89+
sk,
90+
sl,
91+
sv,
92+
ta,
93+
th,
94+
tr,
95+
uk,
96+
vi,
97+
zh,
98+
'zh-TW': zhTw,
99+
} as SupportedLanguages<PluginDefaultTranslationsObject>
10100

11101
export type PluginFormBuilderTranslations = GenericTranslationsObject
12102

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js'
2+
3+
export const arTranslations: PluginDefaultTranslationsObject = {
4+
$schema: './translation-schema.json',
5+
'plugin-form-builder': {
6+
name: 'الاسم (أحرف صغيرة، بدون أحرف خاصة)',
7+
add: 'أضف',
8+
allowedFileTypes: 'أنواع الملفات المسموح بها',
9+
allowedFileTypesDescription:
10+
'تقييد أنواع الملفات المسموح بها (مثل الصورة/*، التطبيق/pdf). اتركه فارغًا للسماح بجميع الأنواع.',
11+
allowMultipleFiles: 'السماح بملفات متعددة',
12+
amountInCents: 'المبلغ بالسنت',
13+
basePrice: 'السعر الأساسي',
14+
bcc: 'نسخة مخفية الوجهة',
15+
brand: 'العلامة التجارية',
16+
cc: 'CC',
17+
checkboxPlural: 'حقول خانة الاختيار',
18+
checkboxSingular: 'خانة الاختيار',
19+
checkedByDefault: 'تم التحقق بشكل افتراضي',
20+
chooseConfirmationType:
21+
'اختر ما إذا كنت تريد عرض رسالة على الصفحة أو إعادة التوجيه إلى صفحة مختلفة بعد إرسال النموذج.',
22+
condition: 'الحالة',
23+
confirmationMessage: 'رسالة التأكيد',
24+
confirmationType: 'نوع التأكيد',
25+
countryPlural: 'حقول البلاد',
26+
countrySingular: 'البلد',
27+
creditCard: 'بطاقة الائتمان',
28+
customURL: 'عنوان URL مخصص',
29+
datePlural: 'حقول التاريخ',
30+
dateSingular: 'التاريخ',
31+
defaultValue: 'القيمة الافتراضية',
32+
divide: 'قسمة',
33+
documentToLinkTo: 'الوثيقة المراد الارتباط بها',
34+
doesNotEqual: 'لا يساوي',
35+
emailFrom: 'البريد الإلكتروني من',
36+
emailPlural: 'حقول البريد الإلكتروني',
37+
emailsDescription:
38+
'إرسال رسائل بريد إلكتروني مخصصة عند إرسال النموذج. استخدم قوائم مفصولة بفواصل لإرسال نفس البريد الإلكتروني إلى عدة مستلمين. للإشارة إلى قيمة من هذا النموذج، قم بتغليف اسم هذا الحقل بأقواس متعرجة مزدوجة، أي {{firstName}}. يمكنك استخدام حرف البدل {{*}} لإخراج كافة البيانات و{{*:table}} لتنسيقه كجدول HTML في البريد الإلكتروني.',
39+
emailSingular: 'البريد الإلكتروني',
40+
emailTo: 'البريد الإلكتروني ل',
41+
equals: 'يساوي',
42+
field: 'الميدان',
43+
fields: 'الحقول',
44+
fieldWidth: 'عرض الحقل (نسبة مئوية)',
45+
hasAnyValue: 'لديه أي قيمة',
46+
internalLink: 'الرابط الداخلي',
47+
label: 'التسمية',
48+
maxFileSize: 'الحد الأقصى لحجم الملف (بايت)',
49+
maxFileSizeDescription: 'الحد الأقصى لحجم الملف بالبايت. اتركها فارغة بلا حدود.',
50+
message: 'رسالة',
51+
messageDescription: 'أدخل الرسالة التي ينبغي إرسالها في هذا البريد الإلكتروني.',
52+
messagePlural: 'كتل الرسائل',
53+
messageSingular: 'رسالة',
54+
mimeType: 'نوع MIME',
55+
mimeTypePlural: 'أنواع MIME',
56+
mimeTypeSingular: 'نوع MIME',
57+
multiply: 'اضرب',
58+
numberPlural: 'حقول الأرقام',
59+
numberSingular: 'رقم',
60+
optionPlural: 'خيارات',
61+
optionSingular: 'الخيار',
62+
paymentFieldPlural: 'مجالات الدفع',
63+
paymentFieldSingular: 'الدفع',
64+
paymentProcessor: 'معالج الدفع',
65+
paymentStatus: 'الحالة',
66+
placeholder: 'العنصر النائب',
67+
priceConditions: 'شروط السعر',
68+
priceConditionsPlural: 'شروط السعر',
69+
priceConditionsSingular: 'حالة السعر',
70+
radioOptions: 'خيارات سمة الراديو',
71+
radioPlural: 'مجالات الراديو',
72+
radioSingular: 'راديو',
73+
redirect: 'إعادة التوجيه',
74+
replyTo: 'الرد على',
75+
required: 'مطلوب',
76+
selectOptions: 'حدد الخيارات',
77+
selectPlural: 'حدد الحقول',
78+
selectSingular: 'اختر',
79+
statePlural: 'مجالات الدولة',
80+
stateSingular: 'الدولة',
81+
staticValue: 'القيمة الثابتة',
82+
subject: 'الموضوع',
83+
submitButton: 'إرسال تسمية الزر',
84+
subtract: 'اطرح',
85+
textareaPlural: 'حقول منطقة النص',
86+
textareaSingular: 'منطقة النص',
87+
textPlural: 'حقول النص',
88+
textSingular: 'نص',
89+
title: 'العنوان',
90+
token: 'رمز مميز',
91+
uploadCollection: 'تحميل المجموعة',
92+
uploadCollectionDescription: 'حدد مجموعة التحميل التي تريد تخزين الملفات فيها',
93+
uploadFieldPlural: 'تحميل الحقول',
94+
uploadFieldSingular: 'تحميل',
95+
urlToRedirectTo: 'عنوان URL لإعادة التوجيه إليه',
96+
value: 'القيمة',
97+
valueOfField: 'قيمة الحقل',
98+
valueType: 'نوع القيمة',
99+
},
100+
}
101+
102+
export const ar: PluginLanguage = {
103+
dateFNSKey: 'ar',
104+
translations: arTranslations,
105+
}
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
import type { PluginDefaultTranslationsObject, PluginLanguage } from '../types.js'
2+
3+
export const azTranslations: PluginDefaultTranslationsObject = {
4+
$schema: './translation-schema.json',
5+
'plugin-form-builder': {
6+
name: 'Ad (kiçik hərf, xüsusi simvol yoxdur)',
7+
add: 'Əlavə et',
8+
allowedFileTypes: 'İcazə verilən fayl növləri',
9+
allowedFileTypesDescription:
10+
'İcazə verilən fayl növlərini məhdudlaşdırın (məsələn, şəkil/*, proqram/pdf). Bütün növlərə icazə vermək üçün boş buraxın.',
11+
allowMultipleFiles: 'Birdən çox fayla icazə verin',
12+
amountInCents: 'Qəpiklə məbləğ',
13+
basePrice: 'Baza Qiymət',
14+
bcc: 'BCC',
15+
brand: 'Brend',
16+
cc: 'CC',
17+
checkboxPlural: 'Yoxlama xanaları',
18+
checkboxSingular: 'Yoxlama qutusu',
19+
checkedByDefault: 'Defolt olaraq yoxlanılır',
20+
chooseConfirmationType:
21+
'Formanı təqdim etdikdən sonra səhifədəki mesajı göstərməyi və ya başqa səhifəyə yönləndirməyi seçin.',
22+
condition: 'Vəziyyət',
23+
confirmationMessage: 'Təsdiq mesajı',
24+
confirmationType: 'Təsdiq növü',
25+
countryPlural: 'Ölkə Sahələri',
26+
countrySingular: 'ölkə',
27+
creditCard: 'Kredit Kartı',
28+
customURL: 'Fərdi URL',
29+
datePlural: 'Tarix Sahələri',
30+
dateSingular: 'Tarix',
31+
defaultValue: 'Defolt Dəyər',
32+
divide: 'Bölmək',
33+
documentToLinkTo: 'Əlaqə üçün sənəd',
34+
doesNotEqual: 'Bərabər Deyil',
35+
emailFrom: 'Kimdən E-poçt',
36+
emailPlural: 'E-poçt Sahələri',
37+
emailsDescription:
38+
'Forma təqdim edildikdə fərdi e-poçtlar göndərin. Eyni e-poçtu birdən çox alıcıya göndərmək üçün vergüllə ayrılmış siyahılardan istifadə edin. Bu formada olan dəyərə istinad etmək üçün həmin sahənin adını ikiqat qıvrımlı mötərizələrlə sarın, məsələn, {{firstName}}. Siz bütün məlumatları çıxarmaq üçün {{*}} və ya HTML cədvəli kimi formatlaşdırmaq üçün {{*:table}} işarəsindən istifadə edə bilərsiniz.',
39+
emailSingular: 'E-poçt',
40+
emailTo: 'E-poçt ünvanına',
41+
equals: 'Bərabərdir',
42+
field: 'Sahə',
43+
fields: 'Sahələr',
44+
fieldWidth: 'Sahənin eni (faiz)',
45+
hasAnyValue: 'İstənilən Dəyəri Var',
46+
internalLink: 'Daxili keçid',
47+
label: 'Etiket',
48+
maxFileSize: 'Maksimum Fayl Ölçüsü (bayt)',
49+
maxFileSizeDescription: 'Baytlarda maksimum fayl ölçüsü. Limitsiz boş buraxın.',
50+
message: 'Mesaj',
51+
messageDescription: 'Bu e-poçtda göndərilməli olan mesajı daxil edin.',
52+
messagePlural: 'Mesaj blokları',
53+
messageSingular: 'Mesaj',
54+
mimeType: 'MIME növü',
55+
mimeTypePlural: 'MIME növləri',
56+
mimeTypeSingular: 'MIME növü',
57+
multiply: 'Çoxalmaq',
58+
numberPlural: 'Nömrə Sahələri',
59+
numberSingular: 'Nömrə',
60+
optionPlural: 'Seçimlər',
61+
optionSingular: 'Seçim',
62+
paymentFieldPlural: 'Ödəniş sahələri',
63+
paymentFieldSingular: 'Ödəniş',
64+
paymentProcessor: 'Ödəniş prosessoru',
65+
paymentStatus: 'Vəziyyət',
66+
placeholder: 'Yer tutucu',
67+
priceConditions: 'Qiymət Şərtləri',
68+
priceConditionsPlural: 'Qiymət Şərtləri',
69+
priceConditionsSingular: 'Qiymət Vəziyyəti',
70+
radioOptions: 'Radio Atribut Seçimləri',
71+
radioPlural: 'Radio sahələri',
72+
radioSingular: 'Radio',
73+
redirect: 'İstiqamətləndirmə',
74+
replyTo: 'Cavab verin',
75+
required: 'Tələb olunur',
76+
selectOptions: 'Seçimlər seçin',
77+
selectPlural: 'Sahələri seçin',
78+
selectSingular: 'seçin',
79+
statePlural: 'Dövlət Sahələri',
80+
stateSingular: 'dövlət',
81+
staticValue: 'Statik dəyər',
82+
subject: 'Mövzu',
83+
submitButton: 'Düymə Etiketini Göndər',
84+
subtract: 'Çıxar',
85+
textareaPlural: 'Textarea sahələri',
86+
textareaSingular: 'Mətn sahəsi',
87+
textPlural: 'Mətn Sahələri',
88+
textSingular: 'Mətn',
89+
title: 'Başlıq',
90+
token: 'nişan',
91+
uploadCollection: 'Kolleksiyanı yükləyin',
92+
uploadCollectionDescription: 'Faylları saxlamaq üçün hansı yükləmə kolleksiyasını seçin',
93+
uploadFieldPlural: 'Sahələri Yükləyin',
94+
uploadFieldSingular: 'Yüklə',
95+
urlToRedirectTo: 'Yönləndirmə üçün URL',
96+
value: 'Dəyər',
97+
valueOfField: 'Sahənin Dəyəri',
98+
valueType: 'Dəyər Tipi',
99+
},
100+
}
101+
102+
export const az: PluginLanguage = {
103+
dateFNSKey: 'az',
104+
translations: azTranslations,
105+
}

0 commit comments

Comments
 (0)