File tree Expand file tree Collapse file tree 7 files changed +46
-14
lines changed Expand file tree Collapse file tree 7 files changed +46
-14
lines changed Original file line number Diff line number Diff line change
1
+ package config
2
+
3
+ import java.time.LocalDate
4
+ import java.time.format.TextStyle
5
+ import java.util.Locale
6
+ import java.util.MissingResourceException
7
+ import java.util.ResourceBundle
8
+
9
+ object I18n {
10
+ private val locale = Locale .getDefault()
11
+ private val res = ResourceBundle .getBundle(" i18n.strings" , locale)
12
+
13
+
14
+ fun getString (key : Keys ): String {
15
+ return getString(key.name.lowercase())
16
+ }
17
+
18
+ fun getString (name : String ): String {
19
+ return try {
20
+ res.getString(name)
21
+ } catch (e: MissingResourceException ) {
22
+ " -"
23
+ }
24
+ }
25
+
26
+ fun getDayOfWeek (date : LocalDate ): String {
27
+ return date.dayOfWeek.getDisplayName(TextStyle .SHORT , locale)
28
+ }
29
+ }
Original file line number Diff line number Diff line change @@ -19,11 +19,6 @@ object Strings {
19
19
20
20
val website = Str (" https://github.com/bailuk/gtk-meteo" )
21
21
22
- // UX
23
- const val CLOSE = " Close"
24
- const val INFO = " Info…"
25
- const val AUTO_CENTER = " Center map when changing place"
26
-
27
22
// CSS
28
23
val linked = Str (" linked" )
29
24
val mapCenter = Str (" map-center" )
Original file line number Diff line number Diff line change 1
1
package model
2
2
3
+ import config.I18n
3
4
import lib.json.JsonMap
4
5
import java.time.LocalDate
5
6
import java.time.ZonedDateTime
6
- import java.time.format.TextStyle
7
- import java.util.*
8
7
import kotlin.collections.ArrayList
9
8
10
9
class DayModel (dateTime : ZonedDateTime ) {
@@ -15,7 +14,7 @@ class DayModel(dateTime: ZonedDateTime) {
15
14
var tempMax = - 10000.0
16
15
17
16
var symbol = " "
18
- val weekDay: String = date.dayOfWeek.getDisplayName( TextStyle . SHORT , Locale . ENGLISH )
17
+ val weekDay: String = I18n .getDayOfWeek(date )
19
18
20
19
private val samples = ArrayList <Sample >()
21
20
Original file line number Diff line number Diff line change 1
1
package view
2
2
3
- import ch.bailu.gtk.gtk.*
3
+ import ch.bailu.gtk.gtk.AboutDialog
4
+ import ch.bailu.gtk.gtk.Button
5
+ import ch.bailu.gtk.gtk.HeaderBar
6
+ import ch.bailu.gtk.gtk.License
4
7
import ch.bailu.gtk.gtk.Window
8
+ import config.I18n
5
9
import config.Strings
6
10
import lib.icons.IconMap
7
11
@@ -17,15 +21,15 @@ object About {
17
21
titlebar = createHeaderBar(this )
18
22
transientFor = window
19
23
modal = true
20
- show ()
24
+ present ()
21
25
}
22
26
}
23
27
24
28
private fun createHeaderBar (aboutDialog : AboutDialog ): HeaderBar {
25
29
return HeaderBar ().apply {
26
30
showTitleButtons = false
27
31
packEnd(Button ().apply {
28
- setLabel(Strings . CLOSE )
32
+ setLabel(I18n .getString( " close " ) )
29
33
onClicked {
30
34
aboutDialog.close()
31
35
}
Original file line number Diff line number Diff line change @@ -6,10 +6,10 @@ import ch.bailu.gtk.gtk.MenuButton
6
6
import ch.bailu.gtk.lib.handler.action.ActionHandler
7
7
import ch.bailu.gtk.type.Str
8
8
import config.Keys
9
- import config.Strings
10
9
import controller.Controller
11
10
import lib.extension.ellipsize
12
11
import model.Model
12
+ import config.I18n
13
13
14
14
class MainMenu (app : Application ) {
15
15
private var places = ArrayList <String >()
@@ -33,8 +33,8 @@ class MainMenu(app: Application) {
33
33
}
34
34
})
35
35
appendSection(Str .NULL , Menu ().apply {
36
- append(Strings . AUTO_CENTER , " app.${Keys .AUTO_CYCLE } " )
37
- append(Strings . INFO , " app.${Keys .ABOUT } " )
36
+ append(I18n .getString( Keys . AUTO_CYCLE ) , " app.${Keys .AUTO_CYCLE } " )
37
+ append(I18n .getString( Keys . ABOUT ) , " app.${Keys .ABOUT } " )
38
38
})
39
39
}
40
40
}
Original file line number Diff line number Diff line change
1
+ close =Close
2
+ about =Info…
3
+ auto_cycle =Center map when changing place
Original file line number Diff line number Diff line change
1
+ close =Schliessen
2
+ auto_center =Karte zentrieren bei Ortwechsel
You can’t perform that action at this time.
0 commit comments