Skip to content

Commit 00b74cb

Browse files
feat: merge pull request #8 from shaurya-8055/feat/multi_language
Feat/multi language
2 parents 1829bf5 + 73ae017 commit 00b74cb

25 files changed

+2373
-99
lines changed

android/app/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ android {
3030
applicationId = "com.example.the_wallpaper_company"
3131
// You can update the following values to match your application needs.
3232
// For more information, see: https://flutter.dev/to/review-gradle-config.
33-
minSdk = 23
33+
minSdk = flutter.minSdkVersion
3434
targetSdk = flutter.targetSdkVersion
3535
versionCode = flutter.versionCode
3636
versionName = flutter.versionName
@@ -60,4 +60,4 @@ dependencies {
6060
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.5")
6161

6262
// Other dependencies for your project...
63-
}
63+
}

l10n.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
arb-dir: lib/l10n
2+
template-arb-file: app_en.arb
3+
output-localization-file: app_localizations.dart
4+
output-class: AppLocalizations
Lines changed: 252 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,252 @@
1+
import 'package:flutter/material.dart';
2+
import '../providers/language_provider.dart';
3+
4+
class AppLocalizations {
5+
final Locale locale;
6+
7+
AppLocalizations(this.locale);
8+
9+
static AppLocalizations? of(BuildContext context) {
10+
return Localizations.of<AppLocalizations>(context, AppLocalizations);
11+
}
12+
13+
static const LocalizationsDelegate<AppLocalizations> delegate =
14+
_AppLocalizationsDelegate();
15+
16+
// App strings
17+
String get appTitle {
18+
switch (locale.languageCode) {
19+
case 'hi':
20+
return 'द वॉलपेपर कंपनी';
21+
default:
22+
return 'The Wallpaper Co.';
23+
}
24+
}
25+
26+
String get searchHint {
27+
switch (locale.languageCode) {
28+
case 'hi':
29+
return 'शीर्षक या श्रेणी द्वारा वॉलपेपर खोजें...';
30+
default:
31+
return 'Search wallpapers by title or category...';
32+
}
33+
}
34+
35+
String get home {
36+
switch (locale.languageCode) {
37+
case 'hi':
38+
return 'होम';
39+
default:
40+
return 'Home';
41+
}
42+
}
43+
44+
String get favorites {
45+
switch (locale.languageCode) {
46+
case 'hi':
47+
return 'पसंदीदा';
48+
default:
49+
return 'Favorites';
50+
}
51+
}
52+
53+
String get all {
54+
switch (locale.languageCode) {
55+
case 'hi':
56+
return 'सभी';
57+
default:
58+
return 'All';
59+
}
60+
}
61+
62+
String get nature {
63+
switch (locale.languageCode) {
64+
case 'hi':
65+
return 'प्रकृति';
66+
default:
67+
return 'Nature';
68+
}
69+
}
70+
71+
String get abstract {
72+
switch (locale.languageCode) {
73+
case 'hi':
74+
return 'अमूर्त';
75+
default:
76+
return 'Abstract';
77+
}
78+
}
79+
80+
String get urban {
81+
switch (locale.languageCode) {
82+
case 'hi':
83+
return 'शहरी';
84+
default:
85+
return 'Urban';
86+
}
87+
}
88+
89+
String get minimal {
90+
switch (locale.languageCode) {
91+
case 'hi':
92+
return 'न्यूनतम';
93+
default:
94+
return 'Minimal';
95+
}
96+
}
97+
98+
String get space {
99+
switch (locale.languageCode) {
100+
case 'hi':
101+
return 'अंतरिक्ष';
102+
default:
103+
return 'Space';
104+
}
105+
}
106+
107+
String get animals {
108+
switch (locale.languageCode) {
109+
case 'hi':
110+
return 'जानवर';
111+
default:
112+
return 'Animals';
113+
}
114+
}
115+
116+
String get art {
117+
switch (locale.languageCode) {
118+
case 'hi':
119+
return 'कला';
120+
default:
121+
return 'Art';
122+
}
123+
}
124+
125+
String get cars {
126+
switch (locale.languageCode) {
127+
case 'hi':
128+
return 'कारें';
129+
default:
130+
return 'Cars';
131+
}
132+
}
133+
134+
String get noResultsTitle {
135+
switch (locale.languageCode) {
136+
case 'hi':
137+
return 'कोई वॉलपेपर नहीं मिला';
138+
default:
139+
return 'No wallpapers found';
140+
}
141+
}
142+
143+
String noResultsMessage(String query) {
144+
switch (locale.languageCode) {
145+
case 'hi':
146+
return '"$query" के लिए कोई परिणाम नहीं';
147+
default:
148+
return 'No results for "$query"';
149+
}
150+
}
151+
152+
String get clearSearch {
153+
switch (locale.languageCode) {
154+
case 'hi':
155+
return 'खोज साफ़ करें';
156+
default:
157+
return 'Clear Search';
158+
}
159+
}
160+
161+
String get download {
162+
switch (locale.languageCode) {
163+
case 'hi':
164+
return 'डाउनलोड';
165+
default:
166+
return 'Download';
167+
}
168+
}
169+
170+
String get setWallpaper {
171+
switch (locale.languageCode) {
172+
case 'hi':
173+
return 'वॉलपेपर सेट करें';
174+
default:
175+
return 'Set Wallpaper';
176+
}
177+
}
178+
179+
String get share {
180+
switch (locale.languageCode) {
181+
case 'hi':
182+
return 'साझा करें';
183+
default:
184+
return 'Share';
185+
}
186+
}
187+
188+
String get loading {
189+
switch (locale.languageCode) {
190+
case 'hi':
191+
return 'लोड हो रहा है...';
192+
default:
193+
return 'Loading...';
194+
}
195+
}
196+
197+
String get error {
198+
switch (locale.languageCode) {
199+
case 'hi':
200+
return 'त्रुटि';
201+
default:
202+
return 'Error';
203+
}
204+
}
205+
206+
String get retry {
207+
switch (locale.languageCode) {
208+
case 'hi':
209+
return 'पुनः प्रयास करें';
210+
default:
211+
return 'Retry';
212+
}
213+
}
214+
215+
String get noFavorites {
216+
switch (locale.languageCode) {
217+
case 'hi':
218+
return 'अभी तक कोई पसंदीदा नहीं';
219+
default:
220+
return 'No favorites yet';
221+
}
222+
}
223+
224+
String get noFavoritesMessage {
225+
switch (locale.languageCode) {
226+
case 'hi':
227+
return 'यहाँ देखने के लिए कुछ वॉलपेपर को अपने पसंदीदा में जोड़ें';
228+
default:
229+
return 'Add some wallpapers to your favorites to see them here';
230+
}
231+
}
232+
}
233+
234+
class _AppLocalizationsDelegate
235+
extends LocalizationsDelegate<AppLocalizations> {
236+
const _AppLocalizationsDelegate();
237+
238+
@override
239+
bool isSupported(Locale locale) {
240+
return LanguageProvider.supportedLocales
241+
.map((l) => l.languageCode)
242+
.contains(locale.languageCode);
243+
}
244+
245+
@override
246+
Future<AppLocalizations> load(Locale locale) async {
247+
return AppLocalizations(locale);
248+
}
249+
250+
@override
251+
bool shouldReload(_AppLocalizationsDelegate old) => false;
252+
}

0 commit comments

Comments
 (0)