Translate the image crop dialog and verify-tutorial goal label
The crop modal used in the verifier 'set up your organization' onboarding step had hardcoded English controls (Reset, the reposition/zoom hint, Cancel, Processing, Apply Crop, and the default title). Route them through a new top-level imageCrop namespace and add translations for all sixteen locales. The VerifyTutorial demo card's 'of … goal' label was also hardcoded; reuse the existing campaignsDetail.ofGoal key.
This commit is contained in:
@@ -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<Point>({ x: 0, y: 0 });
|
||||
const [zoom, setZoom] = useState(1);
|
||||
const [croppedAreaPixels, setCroppedAreaPixels] = useState<Area | null>(null);
|
||||
@@ -87,7 +89,7 @@ export function ImageCropDialog({ open, imageSrc, aspect, title = 'Crop Image',
|
||||
<Dialog open={open} onOpenChange={(v) => { if (!v) onCancel(); }}>
|
||||
<DialogContent className="sm:max-w-lg p-0 gap-0 overflow-hidden">
|
||||
<DialogHeader className="px-5 pt-5 pb-3">
|
||||
<DialogTitle className="text-base">{title}</DialogTitle>
|
||||
<DialogTitle className="text-base">{title ?? t('imageCrop.title')}</DialogTitle>
|
||||
</DialogHeader>
|
||||
|
||||
{/* Cropper area */}
|
||||
@@ -138,18 +140,18 @@ export function ImageCropDialog({ open, imageSrc, aspect, title = 'Crop Image',
|
||||
<div className="flex justify-between items-center">
|
||||
<Button variant="ghost" size="sm" onClick={handleReset} className="text-xs gap-1.5 h-8">
|
||||
<RotateCcw className="size-3" />
|
||||
Reset
|
||||
{t('imageCrop.reset')}
|
||||
</Button>
|
||||
<p className="text-xs text-muted-foreground">Drag to reposition · Pinch or scroll to zoom</p>
|
||||
<p className="text-xs text-muted-foreground">{t('imageCrop.hint')}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<DialogFooter className="px-5 pb-5 gap-2 flex-row justify-end">
|
||||
<Button variant="outline" onClick={onCancel} disabled={isProcessing} size="sm">
|
||||
Cancel
|
||||
{t('imageCrop.cancel')}
|
||||
</Button>
|
||||
<Button onClick={handleConfirm} disabled={isProcessing} size="sm">
|
||||
{isProcessing ? 'Processing…' : 'Apply Crop'}
|
||||
{isProcessing ? t('imageCrop.processing') : t('imageCrop.apply')}
|
||||
</Button>
|
||||
</DialogFooter>
|
||||
</DialogContent>
|
||||
|
||||
@@ -299,7 +299,7 @@ function DemoStage({
|
||||
</div>
|
||||
<div className="flex items-baseline justify-between gap-2 text-sm">
|
||||
<span className="font-semibold">{DEMO_CAMPAIGN.raisedLabel}</span>
|
||||
<span className="text-muted-foreground">of {DEMO_CAMPAIGN.goalLabel} goal</span>
|
||||
<span className="text-muted-foreground">{t('campaignsDetail.ofGoal', { amount: DEMO_CAMPAIGN.goalLabel })}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
+20
-3
@@ -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": "وثّق هذه الحملة"
|
||||
|
||||
@@ -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…",
|
||||
|
||||
@@ -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…",
|
||||
|
||||
+21
-4
@@ -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": "بارگذاری فایل",
|
||||
|
||||
@@ -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…",
|
||||
|
||||
+20
-3
@@ -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": "इस अभियान को सत्यापित करें"
|
||||
|
||||
+20
-3
@@ -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"
|
||||
|
||||
+21
-4
@@ -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": "ផ្ទុកឯកសារឡើង",
|
||||
|
||||
+21
-4
@@ -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": "فایل پورته کړئ",
|
||||
|
||||
@@ -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…",
|
||||
|
||||
@@ -52,6 +52,14 @@
|
||||
"countryNoResults": "Страны не найдены.",
|
||||
"countryGlobal": "Глобально"
|
||||
},
|
||||
"imageCrop": {
|
||||
"title": "Обрезать изображение",
|
||||
"reset": "Сбросить",
|
||||
"hint": "Перетащите, чтобы переместить · Сведите пальцы или прокрутите для масштаба",
|
||||
"cancel": "Отмена",
|
||||
"processing": "Обработка…",
|
||||
"apply": "Применить обрезку"
|
||||
},
|
||||
"translate": {
|
||||
"translate": "Перевести",
|
||||
"translating": "Перевод…",
|
||||
|
||||
+20
-3
@@ -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"
|
||||
|
||||
+21
-4
@@ -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"
|
||||
|
||||
+20
-3
@@ -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"
|
||||
|
||||
@@ -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": "驗證此活動"
|
||||
|
||||
+20
-3
@@ -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": "验证此活动"
|
||||
|
||||
Reference in New Issue
Block a user