@@ -384,13 +395,13 @@
{% inline "x.svg" %}
-
New Feed
+
{{ $t('new_feed') }}
-
+
-
Keyboard Shortcuts
+
{{ $t('keyboard_shortcuts') }}
| 1 2 3 |
- show unread / starred / all feeds |
- | / | focus the search bar |
+ {{ $t('kb_show_filters') }} |
+ | / | {{ $t('kb_focus_search') }} |
| |
- | j k | next / prev article |
- | l h | next / prev feed |
- | q | close article |
+ | j k | {{ $t('kb_next_prev_article') }} |
+ | l h | {{ $t('kb_next_prev_feed') }} |
+ | q | {{ $t('kb_close_article') }} |
| |
- | R | mark all read |
- | r | mark read / unread |
- | s | mark starred / unstarred |
- | o | open link |
- | i | read here |
- | f b | scroll content forward / backward |
+
| R | {{ $t('kb_mark_all_read') }} |
+ | r | {{ $t('kb_mark_read') }} |
+ | s | {{ $t('kb_mark_starred') }} |
+ | o | {{ $t('kb_open_link') }} |
+ | i | {{ $t('kb_read_here') }} |
+ | f b | {{ $t('kb_scroll_content') }} |
@@ -440,6 +451,7 @@
+
diff --git a/src/assets/javascripts/app.js b/src/assets/javascripts/app.js
index dcf5159..1ed40af 100644
--- a/src/assets/javascripts/app.js
+++ b/src/assets/javascripts/app.js
@@ -214,6 +214,7 @@ var vm = new Vue({
vm.feed_errors = errors
})
this.updateMetaTheme(app.settings.theme_name)
+ this.$setLang(app.settings.language)
},
data: function() {
var s = app.settings
@@ -271,6 +272,12 @@ var vm = new Vue({
{ title: "12h", value: 720 },
{ title: "24h", value: 1440 },
],
+
+ 'language': s.language,
+ 'languages': [
+ {code: 'en', name: 'English' },
+ {code: 'zh', name: '简体中文'},
+ ]
}
},
computed: {
@@ -836,6 +843,11 @@ var vm = new Vue({
&& !this.filteredFeedStats[feed.id]
&& (!this.itemSelectedDetails || this.itemSelectedDetails.feed_id != feed.id)
},
+ changeLanguage(lang) {
+ this.$setLang(lang)
+ this.language = lang
+ api.settings.update({language: lang})
+ }
}
})
diff --git a/src/assets/javascripts/i18n.js b/src/assets/javascripts/i18n.js
index 6eb94ec..6e3a87c 100644
--- a/src/assets/javascripts/i18n.js
+++ b/src/assets/javascripts/i18n.js
@@ -280,12 +280,11 @@
"en": "Password",
"zh": "密码"
},
- "language": {
- "en": "Language",
- "zh": "语言"
- }
};
class i18n {
+ constructor() {
+ this.lang = 'en'
+ }
setLang(lang) {
this.lang = lang
}
diff --git a/src/storage/settings.go b/src/storage/settings.go
index 21daac9..ab41a9b 100644
--- a/src/storage/settings.go
+++ b/src/storage/settings.go
@@ -17,6 +17,7 @@ func settingsDefaults() map[string]any {
"theme_font": "",
"theme_size": 1,
"refresh_rate": 0,
+ "language": "en",
}
}