44 spacing: 15
55
66 MDLabel:
7- text: ' Python Password '
7+ text: app.info[ ' name ' ]
88 font_style: ' Button'
99 theme_text_color: ' Primary'
1010 size_hint_y: None
2525
2626 OneLineIconListItem:
2727 icon_color: ' black'
28- text: ' Passwords '
28+ text: app.tr( ' passwords ' )
2929 on_press: root.change_screen(' passwords' )
3030 IconLeftWidget:
3131 icon: ' shield-lock-outline'
3232
3333 OneLineIconListItem:
34- text: ' Settings '
34+ text: app.tr( ' settings ' )
3535 on_press: root.change_screen(' settings' )
3636 IconLeftWidget:
3737 icon: ' cogs'
3838
3939 OneLineIconListItem:
40- text: ' Info '
40+ text: app.tr( ' info ' )
4141 on_press: root.change_screen(' info' )
4242 IconLeftWidget:
4343 icon: ' information-outline'
4444
4545 MDRoundFlatIconButton:
46- text: ' Switch theme'
46+ text: app.tr(' language' )
47+ size_hint_x: 1
48+ background_palette: ' Primary'
49+ text_color: app.text_color_rgba
50+ icon: ' flag-outline'
51+ on_release: root.change_screen(' languages' )
52+
53+ MDRoundFlatIconButton:
54+ text: app.tr(' switch_theme' )
55+ size_hint_x: 1
4756 background_palette: ' Primary'
4857 text_color: app.text_color_rgba
4958 icon: ' theme-light-dark'
5665Screen:
5766 MDToolbar:
5867 id : toolbar
59- title: ' Python Password '
68+ title: app.info[ ' name ' ]
6069 pos_hint: {' top' : 1 }
6170 elevation: 10
6271 left_action_items: [[' menu' , lambda x : nav_drawer.set_state(' open' )]]
@@ -94,8 +103,8 @@ Screen:
94103
95104 MDTextField:
96105 id : password_alias
97- hint_text: ' Password alias '
98- helper_text: ' 3+ characters long. '
106+ hint_text: app.tr( ' password_alias ' )
107+ helper_text: app.tr( ' x_characters_long ' , txt_format = ' 3 ' )
99108 helper_text_mode: ' on_error'
100109 mode: ' rectangle'
101110 required: False
@@ -104,8 +113,8 @@ Screen:
104113
105114 MDTextField:
106115 id : password_value
107- hint_text: ' Password value '
108- helper_text: ' 6+ characters long. '
116+ hint_text: app.tr( ' password_value ' )
117+ helper_text: app.tr( ' x_characters_long ' , txt_format = ' 6 ' )
109118 helper_text_mode: ' on_error'
110119 mode: ' rectangle'
111120 required: False
@@ -114,16 +123,16 @@ Screen:
114123
115124 MDFillRoundFlatIconButton:
116125 size_hint_x: 1
117- text: ' Add password '
126+ text: app.tr( ' save_password ' )
118127 icon: ' key-plus'
119128 on_press: app.add_password()
120129
121130 MDSeparator:
122131
123132 MDTextField:
124133 id : del_password_alias
125- hint_text: ' Password alias '
126- helper_text: ' 3+ characters long. '
134+ hint_text: app.tr( ' password_alias ' )
135+ helper_text: app.tr( ' x_characters_long ' , txt_format = ' 3 ' )
127136 helper_text_mode: ' on_error'
128137 mode: ' rectangle'
129138 required: False
@@ -132,7 +141,7 @@ Screen:
132141
133142 MDFillRoundFlatIconButton:
134143 size_hint_x: 1
135- text: ' Remove password '
144+ text: app.tr( ' remove_password ' )
136145 icon: ' key-minus'
137146 on_release: app.del_password()
138147
@@ -149,7 +158,7 @@ Screen:
149158
150159 MDFillRoundFlatIconButton:
151160 size_hint_x: 1
152- text: ' Refresh '
161+ text: app.tr( ' refresh ' )
153162 icon: ' refresh'
154163 on_release: app.update_passwords_list()
155164
@@ -167,7 +176,7 @@ Screen:
167176 BoxLayout:
168177
169178 MDLabel:
170- text: ' Change alpha password '
179+ text: app.tr( ' change_master ' , txt_format = app.tr( ' alpha' ))
171180 theme_text_color: ' Primary'
172181 halign: ' center'
173182
@@ -177,8 +186,8 @@ Screen:
177186
178187 MDTextField:
179188 id : alpha_change
180- hint_text: ' New alpha password '
181- helper_text: ' 6+ characters long. '
189+ hint_text: app.tr( ' new_master ' , txt_format = app.tr( ' alpha' ))
190+ helper_text: app.tr( ' x_characters_long ' , txt_format = ' 6 ' )
182191 helper_text_mode: ' on_error'
183192 mode: ' rectangle'
184193 required: False
@@ -192,13 +201,13 @@ Screen:
192201
193202 MDFillRoundFlatIconButton:
194203 id : btn_alpha_change
195- text: ' Save '
204+ text: app.tr( ' save ' )
196205 icon: ' checkbox-marked-outline'
197206 on_release: app.change_master(' alpha' )
198207
199208 MDFillRoundFlatIconButton:
200209 id : btn_alpha_reset
201- text: ' Reset '
210+ text: app.tr( ' reset ' )
202211 icon: ' lock-reset'
203212 on_release: app.reset_alpha()
204213
@@ -207,7 +216,7 @@ Screen:
207216 BoxLayout:
208217
209218 MDLabel:
210- text: ' Change beta password '
219+ text: app.tr( ' change_master ' , txt_format = app.tr( ' beta' ))
211220 theme_text_color: ' Primary'
212221 halign: ' center'
213222
@@ -217,8 +226,8 @@ Screen:
217226
218227 MDTextField:
219228 id : beta_change
220- hint_text: ' New beta password '
221- helper_text: ' 6+ characters long. '
229+ hint_text: app.tr( ' new_master ' , txt_format = app.tr( ' beta' ))
230+ helper_text: app.tr( ' x_characters_long ' , txt_format = ' 6 ' )
222231 helper_text_mode: ' on_error'
223232 mode: ' rectangle'
224233 required: False
@@ -231,12 +240,12 @@ Screen:
231240 spacing: 15
232241
233242 MDFillRoundFlatIconButton:
234- text: ' Save '
243+ text: app.tr( ' save ' )
235244 icon: ' checkbox-marked-outline'
236245 on_release: app.change_master(' beta' )
237246
238247 MDFillRoundFlatIconButton:
239- text: ' Reset '
248+ text: app.tr( ' reset ' )
240249 icon: ' lock-reset'
241250 on_release: app.reset_beta()
242251
@@ -249,12 +258,12 @@ Screen:
249258 Widget:
250259
251260 MDFillRoundFlatIconButton:
252- text: ' Export backup '
261+ text: app.tr( ' export_backup ' )
253262 icon: ' database-export'
254263 on_release: app.backup_export()
255264
256265 MDFillRoundFlatIconButton:
257- text: ' Import backup '
266+ text: app.tr( ' import_backup ' )
258267 icon: ' database-import'
259268 on_release: app.backup_import()
260269
@@ -276,7 +285,7 @@ Screen:
276285 orientation: ' vertical'
277286
278287 MDLabel:
279- text: ' About the program '
288+ text: app.tr( ' about ' )
280289 theme_text_color: ' Primary'
281290 size_hint: (1 , None )
282291 height: ' 30dp'
@@ -287,34 +296,34 @@ Screen:
287296
288297 TwoLineListItem:
289298 text: app.info[' name' ]
290- secondary_text: ' Name '
299+ secondary_text: app.tr( ' name ' )
291300 on_release: app.detailed_info(' name' )
292301
293302 TwoLineListItem:
294303 text: app.info[' version' ]
295- secondary_text: ' Version '
304+ secondary_text: app.tr( ' version ' )
296305 on_release: app.detailed_info(' version' )
297306
298307 TwoLineListItem:
299308 text: app.info[' author' ]
300- secondary_text: ' Author '
309+ secondary_text: app.tr( ' author ' )
301310 on_release: app.detailed_info(' author' )
302311
303312 TwoLineListItem:
304313 text: app.info[' icon' ]
305- secondary_text: ' Program icon'
314+ secondary_text: app.tr( ' icon' )
306315 on_release: app.detailed_info(' icon' )
307316
308317 TwoLineListItem:
309- text: app.info[' rd_party ' ]
310- secondary_text: ' 3rd party software '
311- on_release: app.detailed_info(' rd_party ' )
318+ text: app.info[' 3rd_party ' ]
319+ secondary_text: app.tr( ' 3rd_party ' )
320+ on_release: app.detailed_info(' 3rd_party ' )
312321
313322 BoxLayout:
314323 orientation: ' vertical'
315324
316325 MDLabel:
317- text: ' Useful links'
326+ text: app.tr( ' links' )
318327 theme_text_color: ' Primary'
319328 size_hint: (1 , None )
320329 height: ' 30dp'
@@ -324,29 +333,60 @@ Screen:
324333 MDList:
325334
326335 TwoLineAvatarListItem:
327- text: ' GitHub repository '
336+ text: app.tr( ' github ' )
328337 secondary_text: ' '
329338 on_release: app.open_url(app.info[' github' ])
330339
331340 IconLeftWidget:
332341 icon: ' github-circle'
333342
334343 TwoLineAvatarListItem:
335- text: ' FAQ '
344+ text: app.tr( ' faq ' )
336345 secondary_text: ' '
337346 on_release: app.open_url(app.info[' faq' ])
338347
339348 IconLeftWidget:
340349 icon: ' comment-question-outline'
341350
342351 TwoLineAvatarIconListItem:
343- text: ' Mail '
352+ text: app.tr( ' mail ' )
344353 secondary_text: ' '
345354 on_release: app.open_url(app.info[' mail' ])
346355
347356 IconLeftWidget:
348357 icon: ' email-outline'
349358
359+ Screen:
360+ name: ' languages'
361+
362+ BoxLayout:
363+ size_hint: (1 , None )
364+ height: root.height - toolbar.height
365+ orientation: ' vertical'
366+ spacing: 30
367+ padding: (150 , 45 )
368+
369+ MDLabel:
370+ text: app.tr(' available_languages' )
371+ theme_text_color: ' Primary'
372+ size_hint_y: None
373+ halign: ' center'
374+ valign: ' middle'
375+ height: 14
376+
377+ MDSeparator:
378+
379+ ScrollView:
380+ MDList:
381+ id : languages_list
382+
383+ MDSeparator:
384+
385+ MDFillRoundFlatIconButton:
386+ text: app.tr(' add_language' )
387+ icon: ' flag-plus-outline'
388+ on_release: app.add_language()
389+
350390 MDNavigationDrawer:
351391 md_bg_color: app.theme_cls.bg_dark
352392 id : nav_drawer
0 commit comments