diff --git a/src/components/ImageCropDialog.tsx b/src/components/ImageCropDialog.tsx index 2cc03a45..17caad9c 100644 --- a/src/components/ImageCropDialog.tsx +++ b/src/components/ImageCropDialog.tsx @@ -1,4 +1,5 @@ import { useState, useCallback } from 'react'; +import { useTranslation } from 'react-i18next'; import Cropper from 'react-easy-crop'; import type { Area, Point, Size } from 'react-easy-crop'; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from '@/components/ui/dialog'; @@ -44,7 +45,8 @@ interface ImageCropDialogProps { onError?: (error: unknown) => void; } -export function ImageCropDialog({ open, imageSrc, aspect, title = 'Crop Image', showCircleGuide, maxOutputSize, onCancel, onCrop, onError }: ImageCropDialogProps) { +export function ImageCropDialog({ open, imageSrc, aspect, title, showCircleGuide, maxOutputSize, onCancel, onCrop, onError }: ImageCropDialogProps) { + const { t } = useTranslation(); const [crop, setCrop] = useState({ x: 0, y: 0 }); const [zoom, setZoom] = useState(1); const [croppedAreaPixels, setCroppedAreaPixels] = useState(null); @@ -87,7 +89,7 @@ export function ImageCropDialog({ open, imageSrc, aspect, title = 'Crop Image', { if (!v) onCancel(); }}> - {title} + {title ?? t('imageCrop.title')} {/* Cropper area */} @@ -138,18 +140,18 @@ export function ImageCropDialog({ open, imageSrc, aspect, title = 'Crop Image',
-

Drag to reposition · Pinch or scroll to zoom

+

{t('imageCrop.hint')}

diff --git a/src/components/organizations/VerifyTutorial.tsx b/src/components/organizations/VerifyTutorial.tsx index d2801248..b24ccf5e 100644 --- a/src/components/organizations/VerifyTutorial.tsx +++ b/src/components/organizations/VerifyTutorial.tsx @@ -299,7 +299,7 @@ function DemoStage({
{DEMO_CAMPAIGN.raisedLabel} - of {DEMO_CAMPAIGN.goalLabel} goal + {t('campaignsDetail.ofGoal', { amount: DEMO_CAMPAIGN.goalLabel })}
diff --git a/src/locales/ar.json b/src/locales/ar.json index 6c53d893..36712a51 100644 --- a/src/locales/ar.json +++ b/src/locales/ar.json @@ -48,6 +48,14 @@ "countryNoResults": "لم يتم العثور على بلدان.", "countryGlobal": "عالمي" }, + "imageCrop": { + "title": "اقتصاص الصورة", + "reset": "إعادة تعيين", + "hint": "اسحب لإعادة الوضع · اقرص أو مرّر للتكبير", + "cancel": "إلغاء", + "processing": "جارٍ المعالجة…", + "apply": "تطبيق الاقتصاص" + }, "translate": { "translate": "ترجمة", "translating": "جارٍ الترجمة…", @@ -1104,9 +1112,18 @@ "title": "كيفية توثيق حملة", "lede": "بيانك منشور الآن. إليك كيف توثّق حملة تثق بها — يكفي نقرتان من أي بطاقة حملة.", "steps": { - "open": { "title": "افتح القائمة", "body": "في أي بطاقة حملة، انقر على زر النقاط الثلاث في الزاوية العلوية اليمنى من اللافتة." }, - "verify": { "title": "اختر \"وثّق هذه الحملة\"", "body": "تكشف القائمة عن إجراء التوثيق — وهو مرئي فقط للمشرفين والمُوثِّقين مثلك." }, - "confirm": { "title": "أكِّد وانتهيت", "body": "أقرّ بأن الحملة أصلية. تنضم شارتك إلى البطاقة ليعلم المتبرعون أنك تقف خلفها." } + "open": { + "title": "افتح القائمة", + "body": "في أي بطاقة حملة، انقر على زر النقاط الثلاث في الزاوية العلوية اليمنى من اللافتة." + }, + "verify": { + "title": "اختر \"وثّق هذه الحملة\"", + "body": "تكشف القائمة عن إجراء التوثيق — وهو مرئي فقط للمشرفين والمُوثِّقين مثلك." + }, + "confirm": { + "title": "أكِّد وانتهيت", + "body": "أقرّ بأن الحملة أصلية. تنضم شارتك إلى البطاقة ليعلم المتبرعون أنك تقف خلفها." + } }, "demo": { "menuVerify": "وثّق هذه الحملة" diff --git a/src/locales/en.json b/src/locales/en.json index 063e5c88..67299644 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -53,6 +53,14 @@ "countryNoResults": "No countries found.", "countryGlobal": "Global" }, + "imageCrop": { + "title": "Crop Image", + "reset": "Reset", + "hint": "Drag to reposition · Pinch or scroll to zoom", + "cancel": "Cancel", + "processing": "Processing…", + "apply": "Apply Crop" + }, "translate": { "translate": "Translate", "translating": "Translating…", diff --git a/src/locales/es.json b/src/locales/es.json index db90be19..cb461c9c 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -52,6 +52,14 @@ "countryNoResults": "No se encontraron países.", "countryGlobal": "Global" }, + "imageCrop": { + "title": "Recortar imagen", + "reset": "Restablecer", + "hint": "Arrastra para reposicionar · Pellizca o desplaza para hacer zoom", + "cancel": "Cancelar", + "processing": "Procesando…", + "apply": "Aplicar recorte" + }, "translate": { "translate": "Traducir", "translating": "Traduciendo…", diff --git a/src/locales/fa.json b/src/locales/fa.json index 2c2e32b0..a1807a59 100644 --- a/src/locales/fa.json +++ b/src/locales/fa.json @@ -52,6 +52,14 @@ "countryNoResults": "هیچ کشوری پیدا نشد.", "countryGlobal": "جهانی" }, + "imageCrop": { + "title": "برش تصویر", + "reset": "بازنشانی", + "hint": "برای جابه‌جایی بکشید · برای بزرگ‌نمایی پینچ یا اسکرول کنید", + "cancel": "لغو", + "processing": "در حال پردازش…", + "apply": "اعمال برش" + }, "translate": { "translate": "ترجمه", "translating": "در حال ترجمه…", @@ -1114,9 +1122,18 @@ "title": "چگونه یک کمپین را تأیید کنیم", "lede": "بیانیهٔ شما فعال است. در اینجا می‌بینید که چگونه کمپینی را که به آن اعتماد دارید تأیید کنید — تنها با دو ضربه از روی هر کارت کمپین انجام می‌شود.", "steps": { - "open": { "title": "منو را باز کنید", "body": "روی هر کارت کمپین، دکمهٔ سه‌نقطه را در گوشهٔ بالا سمت راست بنر لمس کنید." }, - "verify": { "title": "گزینهٔ \"این کمپین را تأیید کنید\" را انتخاب کنید", "body": "منو یک کنش تأیید را نمایش می‌دهد — که فقط برای ناظران و تأییدکنندگانی مانند شما قابل مشاهده است." }, - "confirm": { "title": "تأیید کنید و کار تمام است", "body": "گواهی دهید که کمپین معتبر است. نشان شما به کارت افزوده می‌شود تا اهداکنندگان بدانند که شما پشتیبان آن هستید." } + "open": { + "title": "منو را باز کنید", + "body": "روی هر کارت کمپین، دکمهٔ سه‌نقطه را در گوشهٔ بالا سمت راست بنر لمس کنید." + }, + "verify": { + "title": "گزینهٔ \"این کمپین را تأیید کنید\" را انتخاب کنید", + "body": "منو یک کنش تأیید را نمایش می‌دهد — که فقط برای ناظران و تأییدکنندگانی مانند شما قابل مشاهده است." + }, + "confirm": { + "title": "تأیید کنید و کار تمام است", + "body": "گواهی دهید که کمپین معتبر است. نشان شما به کارت افزوده می‌شود تا اهداکنندگان بدانند که شما پشتیبان آن هستید." + } }, "demo": { "menuVerify": "این کمپین را تأیید کنید" @@ -1867,7 +1884,7 @@ "moderator": "ناظر", "mod": "ناظر", "ended": "پایان‌یافته", - "pledged": "تعهد شد" + "pledged": "تعهد شد" }, "imageMenu": { "upload": "بارگذاری فایل", diff --git a/src/locales/fr.json b/src/locales/fr.json index 772fa8dd..d87f480f 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -51,6 +51,14 @@ "countryNoResults": "Aucun pays trouvé.", "countryGlobal": "Mondial" }, + "imageCrop": { + "title": "Recadrer l’image", + "reset": "Réinitialiser", + "hint": "Faites glisser pour repositionner · Pincez ou faites défiler pour zoomer", + "cancel": "Annuler", + "processing": "Traitement…", + "apply": "Appliquer le recadrage" + }, "translate": { "translate": "Traduire", "translating": "Traduction…", diff --git a/src/locales/hi.json b/src/locales/hi.json index 3f2005bb..458eebf4 100644 --- a/src/locales/hi.json +++ b/src/locales/hi.json @@ -52,6 +52,14 @@ "countryNoResults": "कोई देश नहीं मिला.", "countryGlobal": "वैश्विक" }, + "imageCrop": { + "title": "छवि क्रॉप करें", + "reset": "रीसेट करें", + "hint": "स्थिति बदलने के लिए खींचें · ज़ूम के लिए पिंच या स्क्रॉल करें", + "cancel": "रद्द करें", + "processing": "प्रोसेस हो रहा है…", + "apply": "क्रॉप लागू करें" + }, "translate": { "translate": "अनुवाद करें", "translating": "अनुवाद हो रहा है…", @@ -1556,9 +1564,18 @@ "title": "किसी अभियान को कैसे सत्यापित करें", "lede": "आपका वक्तव्य लाइव है। जिस अभियान पर आप भरोसा करते हैं उसकी पुष्टि करने का तरीका यहाँ है — किसी भी अभियान कार्ड से बस दो टैप में हो जाता है।", "steps": { - "open": { "title": "मेनू खोलें", "body": "किसी भी अभियान कार्ड पर, बैनर के ऊपरी-दाएँ कोने में तीन-बिंदु वाले बटन पर टैप करें।" }, - "verify": { "title": "\"इस अभियान को सत्यापित करें\" चुनें", "body": "मेनू एक सत्यापन क्रिया दिखाता है — जो केवल आपके जैसे मॉडरेटर और सत्यापनकर्ताओं को ही दिखती है।" }, - "confirm": { "title": "पुष्टि करें और हो गया", "body": "प्रमाणित करें कि अभियान प्रामाणिक है। आपका बैज कार्ड में जुड़ जाता है ताकि दानदाताओं को पता चले कि आप इसके पीछे खड़े हैं।" } + "open": { + "title": "मेनू खोलें", + "body": "किसी भी अभियान कार्ड पर, बैनर के ऊपरी-दाएँ कोने में तीन-बिंदु वाले बटन पर टैप करें।" + }, + "verify": { + "title": "\"इस अभियान को सत्यापित करें\" चुनें", + "body": "मेनू एक सत्यापन क्रिया दिखाता है — जो केवल आपके जैसे मॉडरेटर और सत्यापनकर्ताओं को ही दिखती है।" + }, + "confirm": { + "title": "पुष्टि करें और हो गया", + "body": "प्रमाणित करें कि अभियान प्रामाणिक है। आपका बैज कार्ड में जुड़ जाता है ताकि दानदाताओं को पता चले कि आप इसके पीछे खड़े हैं।" + } }, "demo": { "menuVerify": "इस अभियान को सत्यापित करें" diff --git a/src/locales/id.json b/src/locales/id.json index 82a3b5fc..dd559b0d 100644 --- a/src/locales/id.json +++ b/src/locales/id.json @@ -52,6 +52,14 @@ "countryNoResults": "Tidak ada negara yang ditemukan.", "countryGlobal": "Global" }, + "imageCrop": { + "title": "Pangkas Gambar", + "reset": "Atur ulang", + "hint": "Seret untuk memindahkan · Cubit atau gulir untuk memperbesar", + "cancel": "Batal", + "processing": "Memproses…", + "apply": "Terapkan Pangkasan" + }, "translate": { "translate": "Terjemahkan", "translating": "Menerjemahkan…", @@ -1556,9 +1564,18 @@ "title": "Cara memverifikasi kampanye", "lede": "Pernyataan Anda sudah aktif. Berikut cara menjamin kampanye yang Anda percaya — cukup dua ketukan dari kartu kampanye mana pun.", "steps": { - "open": { "title": "Buka menu", "body": "Pada kartu kampanye mana pun, ketuk tombol tiga titik di sudut kanan atas banner." }, - "verify": { "title": "Pilih \"Verifikasi kampanye ini\"", "body": "Menu menampilkan aksi verifikasi — hanya terlihat oleh moderator dan verifikator seperti Anda." }, - "confirm": { "title": "Konfirmasi & selesai", "body": "Tegaskan bahwa kampanye ini autentik. Lencana Anda akan muncul di kartu sehingga para donatur tahu Anda mendukungnya." } + "open": { + "title": "Buka menu", + "body": "Pada kartu kampanye mana pun, ketuk tombol tiga titik di sudut kanan atas banner." + }, + "verify": { + "title": "Pilih \"Verifikasi kampanye ini\"", + "body": "Menu menampilkan aksi verifikasi — hanya terlihat oleh moderator dan verifikator seperti Anda." + }, + "confirm": { + "title": "Konfirmasi & selesai", + "body": "Tegaskan bahwa kampanye ini autentik. Lencana Anda akan muncul di kartu sehingga para donatur tahu Anda mendukungnya." + } }, "demo": { "menuVerify": "Verifikasi kampanye ini" diff --git a/src/locales/km.json b/src/locales/km.json index aebb0f2a..b8be5bb3 100644 --- a/src/locales/km.json +++ b/src/locales/km.json @@ -52,6 +52,14 @@ "countryNoResults": "រកមិនឃើញប្រទេសទេ។", "countryGlobal": "សកល" }, + "imageCrop": { + "title": "កាត់រូបភាព", + "reset": "កំណត់ឡើងវិញ", + "hint": "អូសដើម្បីផ្លាស់ទីតាំង · ច្បិច ឬរំកិលដើម្បីពង្រីក", + "cancel": "បោះបង់", + "processing": "កំពុងដំណើរការ…", + "apply": "អនុវត្តការកាត់" + }, "translate": { "translate": "បកប្រែ", "translating": "កំពុងបកប្រែ…", @@ -1114,9 +1122,18 @@ "title": "របៀបផ្ទៀងផ្ទាត់យុទ្ធនាការ", "lede": "សេចក្តីថ្លែងការណ៍របស់អ្នកកំពុងដំណើរការ។ នេះជារបៀបធានាដល់យុទ្ធនាការដែលអ្នកទុកចិត្ត — វាត្រូវការតែការប៉ះពីរដងពីកាតយុទ្ធនាការណាមួយប៉ុណ្ណោះ។", "steps": { - "open": { "title": "បើកម៉ឺនុយ", "body": "នៅលើកាតយុទ្ធនាការណាមួយ សូមប៉ះប៊ូតុងចំណុចបីនៅជ្រុងខាងស្តាំផ្នែកខាងលើនៃផ្ទាំងបដា។" }, - "verify": { "title": "ជ្រើសរើស \"ផ្ទៀងផ្ទាត់យុទ្ធនាការនេះ\"", "body": "ម៉ឺនុយនឹងបង្ហាញសកម្មភាពផ្ទៀងផ្ទាត់ — មើលឃើញតែសម្រាប់អ្នកសម្របសម្រួល និងអ្នកផ្ទៀងផ្ទាត់ដូចជាអ្នកប៉ុណ្ណោះ។" }, - "confirm": { "title": "បញ្ជាក់ ហើយអ្នកបានបញ្ចប់", "body": "បញ្ជាក់ថាយុទ្ធនាការនេះពិតប្រាកដ។ ផ្លាកសញ្ញារបស់អ្នកនឹងភ្ជាប់ទៅកាត ដើម្បីឱ្យអ្នកបរិច្ចាគដឹងថាអ្នកគាំទ្រវា។" } + "open": { + "title": "បើកម៉ឺនុយ", + "body": "នៅលើកាតយុទ្ធនាការណាមួយ សូមប៉ះប៊ូតុងចំណុចបីនៅជ្រុងខាងស្តាំផ្នែកខាងលើនៃផ្ទាំងបដា។" + }, + "verify": { + "title": "ជ្រើសរើស \"ផ្ទៀងផ្ទាត់យុទ្ធនាការនេះ\"", + "body": "ម៉ឺនុយនឹងបង្ហាញសកម្មភាពផ្ទៀងផ្ទាត់ — មើលឃើញតែសម្រាប់អ្នកសម្របសម្រួល និងអ្នកផ្ទៀងផ្ទាត់ដូចជាអ្នកប៉ុណ្ណោះ។" + }, + "confirm": { + "title": "បញ្ជាក់ ហើយអ្នកបានបញ្ចប់", + "body": "បញ្ជាក់ថាយុទ្ធនាការនេះពិតប្រាកដ។ ផ្លាកសញ្ញារបស់អ្នកនឹងភ្ជាប់ទៅកាត ដើម្បីឱ្យអ្នកបរិច្ចាគដឹងថាអ្នកគាំទ្រវា។" + } }, "demo": { "menuVerify": "ផ្ទៀងផ្ទាត់យុទ្ធនាការនេះ" @@ -1867,7 +1884,7 @@ "moderator": "អ្នកសម្របសម្រួល", "mod": "អ្នកសម្របសម្រួល", "ended": "បានបញ្ចប់", - "pledged": "បានសន្យា" + "pledged": "បានសន្យា" }, "imageMenu": { "upload": "ផ្ទុកឯកសារឡើង", diff --git a/src/locales/ps.json b/src/locales/ps.json index d98c7a20..c22f9b97 100644 --- a/src/locales/ps.json +++ b/src/locales/ps.json @@ -52,6 +52,14 @@ "countryNoResults": "هیڅ هیواد ونه موندل شو.", "countryGlobal": "نړیوال" }, + "imageCrop": { + "title": "انځور کاٹل", + "reset": "بیا تنظیمول", + "hint": "د بیا ځای‌پرځای کولو لپاره یې کش کړئ · د لويولو لپاره ګوته ونیسئ یا سکرول کړئ", + "cancel": "لغوه کول", + "processing": "پروسس کیږي…", + "apply": "کاٹل پلي کول" + }, "translate": { "translate": "ژباړل", "translating": "ژباړل کېږي…", @@ -1116,9 +1124,18 @@ "title": "د کمپاین تصدیق کولو څرنګوالی", "lede": "ستاسو بیان فعال دی. دلته دا دی چې څنګه د هغه کمپاین ضمانت وکړئ چې تاسو پرې باور لرئ — دا د هر کمپاین له کارت څخه دوه ټک نیسي.", "steps": { - "open": { "title": "مینو پرانیځئ", "body": "د هر کمپاین په کارت کې، د بینر په پورتنۍ ښۍ کونج کې د درې ټکو تڼۍ ټک کړئ." }, - "verify": { "title": "\"دا کمپاین تصدیق کړئ\" غوره کړئ", "body": "مینو د تصدیق کړنه ښکاره کوي — یوازې تاسو په څېر اعتدال کوونکو او تصدیق کوونکو ته ښکاري." }, - "confirm": { "title": "تایید کړئ او کار مو پای ته ورسېد", "body": "تصدیق کړئ چې کمپاین اصلي دی. ستاسو نښان د کارت سره یوځای کېږي ترڅو بسپنه ورکوونکي پوه شي چې تاسو یې ملاتړ کوئ." } + "open": { + "title": "مینو پرانیځئ", + "body": "د هر کمپاین په کارت کې، د بینر په پورتنۍ ښۍ کونج کې د درې ټکو تڼۍ ټک کړئ." + }, + "verify": { + "title": "\"دا کمپاین تصدیق کړئ\" غوره کړئ", + "body": "مینو د تصدیق کړنه ښکاره کوي — یوازې تاسو په څېر اعتدال کوونکو او تصدیق کوونکو ته ښکاري." + }, + "confirm": { + "title": "تایید کړئ او کار مو پای ته ورسېد", + "body": "تصدیق کړئ چې کمپاین اصلي دی. ستاسو نښان د کارت سره یوځای کېږي ترڅو بسپنه ورکوونکي پوه شي چې تاسو یې ملاتړ کوئ." + } }, "demo": { "menuVerify": "دا کمپاین تصدیق کړئ" @@ -1869,7 +1886,7 @@ "moderator": "څارونکی", "mod": "څارونکی", "ended": "پای ته رسیدلی", - "pledged": "ژمنه شوې" + "pledged": "ژمنه شوې" }, "imageMenu": { "upload": "فایل پورته کړئ", diff --git a/src/locales/pt.json b/src/locales/pt.json index fe25542d..98a79388 100644 --- a/src/locales/pt.json +++ b/src/locales/pt.json @@ -52,6 +52,14 @@ "countryNoResults": "Nenhum país encontrado.", "countryGlobal": "Global" }, + "imageCrop": { + "title": "Recortar imagem", + "reset": "Redefinir", + "hint": "Arraste para reposicionar · Pince ou role para aplicar zoom", + "cancel": "Cancelar", + "processing": "Processando…", + "apply": "Aplicar recorte" + }, "translate": { "translate": "Traduzir", "translating": "Traduzindo…", diff --git a/src/locales/ru.json b/src/locales/ru.json index 069b6df0..4f541029 100644 --- a/src/locales/ru.json +++ b/src/locales/ru.json @@ -52,6 +52,14 @@ "countryNoResults": "Страны не найдены.", "countryGlobal": "Глобально" }, + "imageCrop": { + "title": "Обрезать изображение", + "reset": "Сбросить", + "hint": "Перетащите, чтобы переместить · Сведите пальцы или прокрутите для масштаба", + "cancel": "Отмена", + "processing": "Обработка…", + "apply": "Применить обрезку" + }, "translate": { "translate": "Перевести", "translating": "Перевод…", diff --git a/src/locales/sn.json b/src/locales/sn.json index 7c43c911..2652eb3b 100644 --- a/src/locales/sn.json +++ b/src/locales/sn.json @@ -52,6 +52,14 @@ "countryNoResults": "Hapana nyika dzakawanikwa.", "countryGlobal": "Pasi rose" }, + "imageCrop": { + "title": "Cheka Mufananidzo", + "reset": "Dzosera", + "hint": "Dhonza kuti uchinje nzvimbo · Manya kana kufambisa kuti ukurise", + "cancel": "Kanzura", + "processing": "Kuita basa…", + "apply": "Shandisa Kucheka" + }, "translate": { "translate": "Dudzira", "translating": "Kududzira…", @@ -1116,9 +1124,18 @@ "title": "Mashandisirwo ekusimbisa mushandirapamwe", "lede": "Chirevo chako chava pachena. Heano matanho ekutsigira mushandirapamwe waunovimba nawo — zvinotora kubata kaviri chete kubva pakadhi rapi nerapi remushandirapamwe.", "steps": { - "open": { "title": "Vhura menyu", "body": "Pakadhi ripi neripi remushandirapamwe, baya bhatani remadhoti matatu kona yekumusoro kurudyi kwebhanga." }, - "verify": { "title": "Sarudza \"Simbisa mushandirapamwe uyu\"", "body": "Menyu inoratidza chiito chekusimbisa — chinoonekwa chete nevatariri nevaongorori sewe." }, - "confirm": { "title": "Simbisa uye wapedza", "body": "Pupura kuti mushandirapamwe ndewechokwadi. Bheji rako rinobatana nekadhi kuti vanopa vazive kuti unowutsigira." } + "open": { + "title": "Vhura menyu", + "body": "Pakadhi ripi neripi remushandirapamwe, baya bhatani remadhoti matatu kona yekumusoro kurudyi kwebhanga." + }, + "verify": { + "title": "Sarudza \"Simbisa mushandirapamwe uyu\"", + "body": "Menyu inoratidza chiito chekusimbisa — chinoonekwa chete nevatariri nevaongorori sewe." + }, + "confirm": { + "title": "Simbisa uye wapedza", + "body": "Pupura kuti mushandirapamwe ndewechokwadi. Bheji rako rinobatana nekadhi kuti vanopa vazive kuti unowutsigira." + } }, "demo": { "menuVerify": "Simbisa mushandirapamwe uyu" diff --git a/src/locales/sw.json b/src/locales/sw.json index 292442e4..534e3aea 100644 --- a/src/locales/sw.json +++ b/src/locales/sw.json @@ -52,6 +52,14 @@ "countryNoResults": "Hakuna nchi zilizopatikana.", "countryGlobal": "Kimataifa" }, + "imageCrop": { + "title": "Punguza Picha", + "reset": "Weka upya", + "hint": "Buruta kuhamisha · Banza au sogeza ili kukuza", + "cancel": "Ghairi", + "processing": "Inachakata…", + "apply": "Tumia Upunguzaji" + }, "translate": { "translate": "Tafsiri", "translating": "Inatafsiri…", @@ -1553,11 +1561,20 @@ "tutorial": { "eyebrow": "Sasa wewe ni mthibitishaji", "title": "Jinsi ya kuthibitisha kampeni", - "lede": "Taarifa yako iko hewani. Hivi ndivyo unavyoweza kuiunga mkono kampeni unayoiamini \u2014 inachukua mibofyo miwili kutoka kwa kadi yoyote ya kampeni.", + "lede": "Taarifa yako iko hewani. Hivi ndivyo unavyoweza kuiunga mkono kampeni unayoiamini — inachukua mibofyo miwili kutoka kwa kadi yoyote ya kampeni.", "steps": { - "open": { "title": "Fungua menyu", "body": "Kwenye kadi yoyote ya kampeni, gusa kitufe cha nukta tatu kwenye kona ya juu kulia ya bango." }, - "verify": { "title": "Chagua \"Thibitisha kampeni hii\"", "body": "Menyu hufunua kitendo cha kuthibitisha \u2014 kinachoonekana kwa wasimamizi na wathibitishaji kama wewe pekee." }, - "confirm": { "title": "Thibitisha na umemaliza", "body": "Shuhudia kuwa kampeni ni halisi. Beji yako huungana na kadi ili wafadhili wajue unaiunga mkono." } + "open": { + "title": "Fungua menyu", + "body": "Kwenye kadi yoyote ya kampeni, gusa kitufe cha nukta tatu kwenye kona ya juu kulia ya bango." + }, + "verify": { + "title": "Chagua \"Thibitisha kampeni hii\"", + "body": "Menyu hufunua kitendo cha kuthibitisha — kinachoonekana kwa wasimamizi na wathibitishaji kama wewe pekee." + }, + "confirm": { + "title": "Thibitisha na umemaliza", + "body": "Shuhudia kuwa kampeni ni halisi. Beji yako huungana na kadi ili wafadhili wajue unaiunga mkono." + } }, "demo": { "menuVerify": "Thibitisha kampeni hii" diff --git a/src/locales/tr.json b/src/locales/tr.json index ee0a9614..6f22d193 100644 --- a/src/locales/tr.json +++ b/src/locales/tr.json @@ -51,6 +51,14 @@ "countryNoResults": "Ülke bulunamadı.", "countryGlobal": "Küresel" }, + "imageCrop": { + "title": "Görseli Kırp", + "reset": "Sıfırla", + "hint": "Yeniden konumlandırmak için sürükleyin · Yakınlaştırmak için sıkıştırın veya kaydırın", + "cancel": "İptal", + "processing": "İşleniyor…", + "apply": "Kırpmayı Uygula" + }, "translate": { "translate": "Çevir", "translating": "Çevriliyor…", @@ -1557,9 +1565,18 @@ "title": "Bir kampanya nasıl doğrulanır", "lede": "Beyanınız yayında. Güvendiğiniz bir kampanyaya nasıl kefil olacağınız işte burada — herhangi bir kampanya kartından iki dokunuşla yapılır.", "steps": { - "open": { "title": "Menüyü açın", "body": "Herhangi bir kampanya kartında, afişin sağ üst köşesindeki üç nokta düğmesine dokunun." }, - "verify": { "title": "\"Bu kampanyayı doğrula\" seçeneğini seçin", "body": "Menüde bir doğrulama işlemi belirir — yalnızca sizin gibi moderatörler ve doğrulayıcılar tarafından görülebilir." }, - "confirm": { "title": "Onaylayın ve işlem tamam", "body": "Kampanyanın gerçek olduğunu teyit edin. Rozetiniz kartta yerini alır, böylece bağışçılar arkasında durduğunuzu bilir." } + "open": { + "title": "Menüyü açın", + "body": "Herhangi bir kampanya kartında, afişin sağ üst köşesindeki üç nokta düğmesine dokunun." + }, + "verify": { + "title": "\"Bu kampanyayı doğrula\" seçeneğini seçin", + "body": "Menüde bir doğrulama işlemi belirir — yalnızca sizin gibi moderatörler ve doğrulayıcılar tarafından görülebilir." + }, + "confirm": { + "title": "Onaylayın ve işlem tamam", + "body": "Kampanyanın gerçek olduğunu teyit edin. Rozetiniz kartta yerini alır, böylece bağışçılar arkasında durduğunuzu bilir." + } }, "demo": { "menuVerify": "Bu kampanyayı doğrula" diff --git a/src/locales/zh-Hant.json b/src/locales/zh-Hant.json index 92818168..aedf3f99 100644 --- a/src/locales/zh-Hant.json +++ b/src/locales/zh-Hant.json @@ -52,6 +52,14 @@ "countryNoResults": "找不到國家。", "countryGlobal": "全球" }, + "imageCrop": { + "title": "裁剪圖片", + "reset": "重設", + "hint": "拖曳以重新定位 · 雙指捏合或捲動以縮放", + "cancel": "取消", + "processing": "處理中…", + "apply": "套用裁剪" + }, "translate": { "translate": "翻譯", "translating": "正在翻譯…", @@ -1116,9 +1124,18 @@ "title": "如何驗證一個專案", "lede": "你的聲明已上線。以下說明如何為你信任的專案背書——從任何專案卡片只需點兩下即可完成。", "steps": { - "open": { "title": "開啟選單", "body": "在任何專案卡片上,點選橫幅右上角的三點按鈕。" }, - "verify": { "title": "選擇「驗證此活動」", "body": "選單會顯示驗證操作——只有像你這樣的版主和驗證者才看得到。" }, - "confirm": { "title": "確認後即完成", "body": "證明這個專案是真實的。你的徽章會加入卡片,讓捐款者知道你為它背書。" } + "open": { + "title": "開啟選單", + "body": "在任何專案卡片上,點選橫幅右上角的三點按鈕。" + }, + "verify": { + "title": "選擇「驗證此活動」", + "body": "選單會顯示驗證操作——只有像你這樣的版主和驗證者才看得到。" + }, + "confirm": { + "title": "確認後即完成", + "body": "證明這個專案是真實的。你的徽章會加入卡片,讓捐款者知道你為它背書。" + } }, "demo": { "menuVerify": "驗證此活動" diff --git a/src/locales/zh.json b/src/locales/zh.json index 0c62e5fa..077beade 100644 --- a/src/locales/zh.json +++ b/src/locales/zh.json @@ -52,6 +52,14 @@ "countryNoResults": "未找到国家。", "countryGlobal": "全球" }, + "imageCrop": { + "title": "裁剪图片", + "reset": "重置", + "hint": "拖动以重新定位 · 双指捏合或滚动以缩放", + "cancel": "取消", + "processing": "处理中…", + "apply": "应用裁剪" + }, "translate": { "translate": "翻译", "translating": "正在翻译…", @@ -1116,9 +1124,18 @@ "title": "如何验证一个活动", "lede": "你的声明已生效。下面教你如何为信任的活动背书——从任意活动卡片只需两步即可完成。", "steps": { - "open": { "title": "打开菜单", "body": "在任意活动卡片上,点击横幅右上角的三点按钮。" }, - "verify": { "title": "选择\"验证此活动\"", "body": "菜单会显示一个验证操作——仅对你这样的版主和验证者可见。" }, - "confirm": { "title": "确认即可完成", "body": "证明该活动真实可信。你的徽章会出现在卡片上,让捐赠者知道你为它背书。" } + "open": { + "title": "打开菜单", + "body": "在任意活动卡片上,点击横幅右上角的三点按钮。" + }, + "verify": { + "title": "选择\"验证此活动\"", + "body": "菜单会显示一个验证操作——仅对你这样的版主和验证者可见。" + }, + "confirm": { + "title": "确认即可完成", + "body": "证明该活动真实可信。你的徽章会出现在卡片上,让捐赠者知道你为它背书。" + } }, "demo": { "menuVerify": "验证此活动"