Skip to content

Commit c61df63

Browse files
feat: add 10 new languages — German, Russian, Chinese, Marathi, Gujarati, Bengali, Tamil, Telugu, Kannada, Punjabi for v1.2.0
1 parent 2a631bb commit c61df63

4 files changed

Lines changed: 389 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
## 1.2.0
2+
3+
* Added 10 new languages — total 16 supported!
4+
* International: German (de), Russian (ru), Chinese Simplified (zh)
5+
* Indian: Marathi (mr), Gujarati (gu), Bengali (bn),
6+
Tamil (ta), Telugu (te), Kannada (kn), Punjabi (pa)
7+
* Updated `SdfLocale.supported` — now 16 locales
8+
* Updated `SdfLocale.fromCode()` — supports all 16 codes
9+
10+
## 1.1.0
11+
...
12+
113
## 1.1.0
214

315
* Added `quarter` — quarter of year (1–4)

lib/src/localization.dart

Lines changed: 298 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,266 @@ class SdfLocale {
161161
'inYears': 'في {n} سنوات',
162162
});
163163

164+
/// German
165+
static const SdfLocale de = SdfLocale(code: 'de', labels: {
166+
'justNow': 'Gerade eben',
167+
'secondsAgo': 'Sekunden her',
168+
'minuteAgo': 'vor 1 Minute',
169+
'minutesAgo': 'Minuten her',
170+
'hourAgo': 'vor 1 Stunde',
171+
'hoursAgo': 'Stunden her',
172+
'yesterday': 'Gestern',
173+
'tomorrow': 'Morgen',
174+
'daysAgo': 'Tage her',
175+
'inDays': 'in {n} Tagen',
176+
'lastWeek': 'Letzte Woche',
177+
'nextWeek': 'Nächste Woche',
178+
'weeksAgo': 'Wochen her',
179+
'inWeeks': 'in {n} Wochen',
180+
'lastMonth': 'Letzten Monat',
181+
'nextMonth': 'Nächsten Monat',
182+
'monthsAgo': 'Monate her',
183+
'inMonths': 'in {n} Monaten',
184+
'lastYear': 'Letztes Jahr',
185+
'nextYear': 'Nächstes Jahr',
186+
'yearsAgo': 'Jahre her',
187+
'inYears': 'in {n} Jahren',
188+
});
189+
190+
/// Russian
191+
static const SdfLocale ru = SdfLocale(code: 'ru', labels: {
192+
'justNow': 'Только что',
193+
'secondsAgo': 'секунд назад',
194+
'minuteAgo': '1 минуту назад',
195+
'minutesAgo': 'минут назад',
196+
'hourAgo': '1 час назад',
197+
'hoursAgo': 'часов назад',
198+
'yesterday': 'Вчера',
199+
'tomorrow': 'Завтра',
200+
'daysAgo': 'дней назад',
201+
'inDays': 'через {n} дней',
202+
'lastWeek': 'На прошлой неделе',
203+
'nextWeek': 'На следующей неделе',
204+
'weeksAgo': 'недель назад',
205+
'inWeeks': 'через {n} недель',
206+
'lastMonth': 'В прошлом месяце',
207+
'nextMonth': 'В следующем месяце',
208+
'monthsAgo': 'месяцев назад',
209+
'inMonths': 'через {n} месяцев',
210+
'lastYear': 'В прошлом году',
211+
'nextYear': 'В следующем году',
212+
'yearsAgo': 'лет назад',
213+
'inYears': 'через {n} лет',
214+
});
215+
216+
/// Chinese (Simplified)
217+
static const SdfLocale zh = SdfLocale(code: 'zh', labels: {
218+
'justNow': '刚刚',
219+
'secondsAgo': '秒前',
220+
'minuteAgo': '1分钟前',
221+
'minutesAgo': '分钟前',
222+
'hourAgo': '1小时前',
223+
'hoursAgo': '小时前',
224+
'yesterday': '昨天',
225+
'tomorrow': '明天',
226+
'daysAgo': '天前',
227+
'inDays': '{n}天后',
228+
'lastWeek': '上周',
229+
'nextWeek': '下周',
230+
'weeksAgo': '周前',
231+
'inWeeks': '{n}周后',
232+
'lastMonth': '上个月',
233+
'nextMonth': '下个月',
234+
'monthsAgo': '个月前',
235+
'inMonths': '{n}个月后',
236+
'lastYear': '去年',
237+
'nextYear': '明年',
238+
'yearsAgo': '年前',
239+
'inYears': '{n}年后',
240+
});
241+
242+
/// Marathi
243+
static const SdfLocale mr = SdfLocale(code: 'mr', labels: {
244+
'justNow': 'आत्ता',
245+
'secondsAgo': 'सेकंद पूर्वी',
246+
'minuteAgo': '1 मिनिट पूर्वी',
247+
'minutesAgo': 'मिनिटे पूर्वी',
248+
'hourAgo': '1 तास पूर्वी',
249+
'hoursAgo': 'तास पूर्वी',
250+
'yesterday': 'काल',
251+
'tomorrow': 'उद्या',
252+
'daysAgo': 'दिवस पूर्वी',
253+
'inDays': '{n} दिवसांत',
254+
'lastWeek': 'मागील आठवडा',
255+
'nextWeek': 'पुढील आठवडा',
256+
'weeksAgo': 'आठवडे पूर्वी',
257+
'inWeeks': '{n} आठवड्यांत',
258+
'lastMonth': 'मागील महिना',
259+
'nextMonth': 'पुढील महिना',
260+
'monthsAgo': 'महिने पूर्वी',
261+
'inMonths': '{n} महिन्यांत',
262+
'lastYear': 'मागील वर्ष',
263+
'nextYear': 'पुढील वर्ष',
264+
'yearsAgo': 'वर्षे पूर्वी',
265+
'inYears': '{n} वर्षांत',
266+
});
267+
268+
/// Gujarati
269+
static const SdfLocale gu = SdfLocale(code: 'gu', labels: {
270+
'justNow': 'હમણાં જ',
271+
'secondsAgo': 'સેકન્ડ પહેલાં',
272+
'minuteAgo': '1 મિનિટ પહેલાં',
273+
'minutesAgo': 'મિનિટ પહેલાં',
274+
'hourAgo': '1 કલાક પહેલાં',
275+
'hoursAgo': 'કલાક પહેલાં',
276+
'yesterday': 'ગઈ કાલે',
277+
'tomorrow': 'આવતી કાલે',
278+
'daysAgo': 'દિવસ પહેલાં',
279+
'inDays': '{n} દિવસમાં',
280+
'lastWeek': 'ગયા અઠવાડિયે',
281+
'nextWeek': 'આવતા અઠવાડિયે',
282+
'weeksAgo': 'અઠવાડિયા પહેલાં',
283+
'inWeeks': '{n} અઠવાડિયામાં',
284+
'lastMonth': 'ગયા મહિને',
285+
'nextMonth': 'આવતા મહિને',
286+
'monthsAgo': 'મહિના પહેલાં',
287+
'inMonths': '{n} મહિનામાં',
288+
'lastYear': 'ગયા વર્ષે',
289+
'nextYear': 'આવતા વર્ષે',
290+
'yearsAgo': 'વર્ષ પહેલાં',
291+
'inYears': '{n} વર્ષમાં',
292+
});
293+
294+
/// Bengali
295+
static const SdfLocale bn = SdfLocale(code: 'bn', labels: {
296+
'justNow': 'এইমাত্র',
297+
'secondsAgo': 'সেকেন্ড আগে',
298+
'minuteAgo': '১ মিনিট আগে',
299+
'minutesAgo': 'মিনিট আগে',
300+
'hourAgo': '১ ঘন্টা আগে',
301+
'hoursAgo': 'ঘন্টা আগে',
302+
'yesterday': 'গতকাল',
303+
'tomorrow': 'আগামীকাল',
304+
'daysAgo': 'দিন আগে',
305+
'inDays': '{n} দিনের মধ্যে',
306+
'lastWeek': 'গত সপ্তাহ',
307+
'nextWeek': 'আগামী সপ্তাহ',
308+
'weeksAgo': 'সপ্তাহ আগে',
309+
'inWeeks': '{n} সপ্তাহের মধ্যে',
310+
'lastMonth': 'গত মাস',
311+
'nextMonth': 'আগামী মাস',
312+
'monthsAgo': 'মাস আগে',
313+
'inMonths': '{n} মাসের মধ্যে',
314+
'lastYear': 'গত বছর',
315+
'nextYear': 'আগামী বছর',
316+
'yearsAgo': 'বছর আগে',
317+
'inYears': '{n} বছরের মধ্যে',
318+
});
319+
320+
/// Tamil
321+
static const SdfLocale ta = SdfLocale(code: 'ta', labels: {
322+
'justNow': 'இப்போதுதான்',
323+
'secondsAgo': 'வினாடிகள் முன்பு',
324+
'minuteAgo': '1 நிமிடம் முன்பு',
325+
'minutesAgo': 'நிமிடங்கள் முன்பு',
326+
'hourAgo': '1 மணி நேரம் முன்பு',
327+
'hoursAgo': 'மணி நேரம் முன்பு',
328+
'yesterday': 'நேற்று',
329+
'tomorrow': 'நாளை',
330+
'daysAgo': 'நாட்கள் முன்பு',
331+
'inDays': '{n} நாட்களில்',
332+
'lastWeek': 'கடந்த வாரம்',
333+
'nextWeek': 'அடுத்த வாரம்',
334+
'weeksAgo': 'வாரங்கள் முன்பு',
335+
'inWeeks': '{n} வாரங்களில்',
336+
'lastMonth': 'கடந்த மாதம்',
337+
'nextMonth': 'அடுத்த மாதம்',
338+
'monthsAgo': 'மாதங்கள் முன்பு',
339+
'inMonths': '{n} மாதங்களில்',
340+
'lastYear': 'கடந்த ஆண்டு',
341+
'nextYear': 'அடுத்த ஆண்டு',
342+
'yearsAgo': 'ஆண்டுகள் முன்பு',
343+
'inYears': '{n} ஆண்டுகளில்',
344+
});
345+
346+
/// Telugu
347+
static const SdfLocale te = SdfLocale(code: 'te', labels: {
348+
'justNow': 'ఇప్పుడే',
349+
'secondsAgo': 'సెకన్లు క్రితం',
350+
'minuteAgo': '1 నిమిషం క్రితం',
351+
'minutesAgo': 'నిమిషాలు క్రితం',
352+
'hourAgo': '1 గంట క్రితం',
353+
'hoursAgo': 'గంటలు క్రితం',
354+
'yesterday': 'నిన్న',
355+
'tomorrow': 'రేపు',
356+
'daysAgo': 'రోజులు క్రితం',
357+
'inDays': '{n} రోజుల్లో',
358+
'lastWeek': 'గత వారం',
359+
'nextWeek': 'వచ్చే వారం',
360+
'weeksAgo': 'వారాలు క్రితం',
361+
'inWeeks': '{n} వారాల్లో',
362+
'lastMonth': 'గత నెల',
363+
'nextMonth': 'వచ్చే నెల',
364+
'monthsAgo': 'నెలలు క్రితం',
365+
'inMonths': '{n} నెలల్లో',
366+
'lastYear': 'గత సంవత్సరం',
367+
'nextYear': 'వచ్చే సంవత్సరం',
368+
'yearsAgo': 'సంవత్సరాలు క్రితం',
369+
'inYears': '{n} సంవత్సరాల్లో',
370+
});
371+
372+
/// Kannada
373+
static const SdfLocale kn = SdfLocale(code: 'kn', labels: {
374+
'justNow': 'ಈಗಷ್ಟೇ',
375+
'secondsAgo': 'ಸೆಕೆಂಡುಗಳ ಹಿಂದೆ',
376+
'minuteAgo': '1 ನಿಮಿಷದ ಹಿಂದೆ',
377+
'minutesAgo': 'ನಿಮಿಷಗಳ ಹಿಂದೆ',
378+
'hourAgo': '1 ಗಂಟೆ ಹಿಂದೆ',
379+
'hoursAgo': 'ಗಂಟೆಗಳ ಹಿಂದೆ',
380+
'yesterday': 'ನಿನ್ನೆ',
381+
'tomorrow': 'ನಾಳೆ',
382+
'daysAgo': 'ದಿನಗಳ ಹಿಂದೆ',
383+
'inDays': '{n} ದಿನಗಳಲ್ಲಿ',
384+
'lastWeek': 'ಕಳೆದ ವಾರ',
385+
'nextWeek': 'ಮುಂದಿನ ವಾರ',
386+
'weeksAgo': 'ವಾರಗಳ ಹಿಂದೆ',
387+
'inWeeks': '{n} ವಾರಗಳಲ್ಲಿ',
388+
'lastMonth': 'ಕಳೆದ ತಿಂಗಳು',
389+
'nextMonth': 'ಮುಂದಿನ ತಿಂಗಳು',
390+
'monthsAgo': 'ತಿಂಗಳುಗಳ ಹಿಂದೆ',
391+
'inMonths': '{n} ತಿಂಗಳುಗಳಲ್ಲಿ',
392+
'lastYear': 'ಕಳೆದ ವರ್ಷ',
393+
'nextYear': 'ಮುಂದಿನ ವರ್ಷ',
394+
'yearsAgo': 'ವರ್ಷಗಳ ಹಿಂದೆ',
395+
'inYears': '{n} ವರ್ಷಗಳಲ್ಲಿ',
396+
});
397+
398+
/// Punjabi
399+
static const SdfLocale pa = SdfLocale(code: 'pa', labels: {
400+
'justNow': 'ਹੁਣੇ',
401+
'secondsAgo': 'ਸਕਿੰਟ ਪਹਿਲਾਂ',
402+
'minuteAgo': '1 ਮਿੰਟ ਪਹਿਲਾਂ',
403+
'minutesAgo': 'ਮਿੰਟ ਪਹਿਲਾਂ',
404+
'hourAgo': '1 ਘੰਟਾ ਪਹਿਲਾਂ',
405+
'hoursAgo': 'ਘੰਟੇ ਪਹਿਲਾਂ',
406+
'yesterday': 'ਕੱਲ੍ਹ',
407+
'tomorrow': 'ਕੱਲ੍ਹ',
408+
'daysAgo': 'ਦਿਨ ਪਹਿਲਾਂ',
409+
'inDays': '{n} ਦਿਨਾਂ ਵਿੱਚ',
410+
'lastWeek': 'ਪਿਛਲੇ ਹਫ਼ਤੇ',
411+
'nextWeek': 'ਅਗਲੇ ਹਫ਼ਤੇ',
412+
'weeksAgo': 'ਹਫ਼ਤੇ ਪਹਿਲਾਂ',
413+
'inWeeks': '{n} ਹਫ਼ਤਿਆਂ ਵਿੱਚ',
414+
'lastMonth': 'ਪਿਛਲੇ ਮਹੀਨੇ',
415+
'nextMonth': 'ਅਗਲੇ ਮਹੀਨੇ',
416+
'monthsAgo': 'ਮਹੀਨੇ ਪਹਿਲਾਂ',
417+
'inMonths': '{n} ਮਹੀਨਿਆਂ ਵਿੱਚ',
418+
'lastYear': 'ਪਿਛਲੇ ਸਾਲ',
419+
'nextYear': 'ਅਗਲੇ ਸਾਲ',
420+
'yearsAgo': 'ਸਾਲ ਪਹਿਲਾਂ',
421+
'inYears': '{n} ਸਾਲਾਂ ਵਿੱਚ',
422+
});
423+
164424
/// Get locale by code string
165425
/// ```dart
166426
/// SdfLocale.fromCode('hi') // Hindi
@@ -178,11 +438,48 @@ class SdfLocale {
178438
return ja;
179439
case 'ar':
180440
return ar;
441+
case 'de':
442+
return de;
443+
case 'ru':
444+
return ru;
445+
case 'zh':
446+
return zh;
447+
case 'mr':
448+
return mr;
449+
case 'gu':
450+
return gu;
451+
case 'bn':
452+
return bn;
453+
case 'ta':
454+
return ta;
455+
case 'te':
456+
return te;
457+
case 'kn':
458+
return kn;
459+
case 'pa':
460+
return pa;
181461
default:
182462
return en;
183463
}
184464
}
185465

186466
/// All available locale codes
187-
static const List<String> supported = ['en', 'hi', 'es', 'fr', 'ja', 'ar'];
467+
static const List<String> supported = [
468+
'en',
469+
'hi',
470+
'es',
471+
'fr',
472+
'ja',
473+
'ar',
474+
'de',
475+
'ru',
476+
'zh',
477+
'mr',
478+
'gu',
479+
'bn',
480+
'ta',
481+
'te',
482+
'kn',
483+
'pa',
484+
];
188485
}

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: smart_date_formatter
22
description: "A smart Flutter date formatting utility that converts DateTime into human-readable strings like '2 hours ago', 'Yesterday', 'Next Monday', and more."
3-
version: 1.1.0
3+
version: 1.2.0
44
homepage: https://github.com/harshyadavDeveloper/smart_date_formatter
55
repository: https://github.com/harshyadavDeveloper/smart_date_formatter
66
issue_tracker: https://github.com/harshyadavDeveloper/smart_date_formatter/issues

0 commit comments

Comments
 (0)