From b389d3feb9fb13bfc848335162f94ae394cc0ff6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20Lo=CC=81pez=20Guevara?= Date: Tue, 31 Jan 2023 15:30:15 -0300 Subject: [PATCH] feat(i18n): add spanish translations --- .vscode/settings.json | 13 +-- package.json | 2 +- src/boot/i18n.js | 19 +++- src/components/AsyncLoadButton.vue | 12 +- src/components/AsyncLoadLink.vue | 18 +-- .../CreatePost/AutoSizeTextarea.vue | 15 ++- src/components/CreatePost/EmojiPicker.vue | 10 +- src/components/CreatePost/PostEditor.vue | 47 ++++---- src/components/Feed/Feed.vue | 93 ++++++++------- src/components/ListPlaceholder.vue | 8 +- src/components/MainMenu/MainMenu.vue | 38 +++---- src/components/MainMenu/MoreMenu.vue | 2 +- src/components/MainMenu/ProfilePopup.vue | 36 +++--- src/components/Message/EncryptedMessage.vue | 38 ++++--- src/components/Message/MessageEditor.vue | 34 +++--- src/components/PageHeader.vue | 24 ++-- src/components/Post/HeroPost.vue | 22 ++-- src/components/Post/ListPost.vue | 30 ++--- src/components/Post/PostActions.vue | 42 +++---- src/components/SearchBox/SearchBox.vue | 25 +++-- src/components/Settings/ProfileSettings.vue | 92 ++++++++++----- src/components/Settings/RelaySettings.vue | 54 ++++++--- src/components/Sidebar/FollowingBox.vue | 26 +++-- src/components/Sidebar/WelcomeBox.vue | 37 +++--- src/components/SignIn/SignInDialog.vue | 64 +++++++---- src/components/SignIn/SignInForm.vue | 55 ++++----- src/components/SignIn/SignUpForm.vue | 38 ++++--- src/components/User/FollowButton.vue | 38 ++++--- src/components/User/LogoutDialog.vue | 49 ++++---- src/components/User/Nip05Badge.vue | 20 ++-- src/i18n/{en-US => en}/index.js | 3 +- src/i18n/es/index.js | 93 +++++++++++++++ src/i18n/index.js | 6 +- src/pages/Feed.vue | 41 +++---- src/pages/Thread.vue | 62 ++++++---- src/pages/messages/Conversation.vue | 33 ++++-- src/pages/messages/Messages.vue | 35 ++++-- src/pages/profile/Followers.vue | 23 ++-- src/pages/profile/Profile.vue | 106 ++++++++++-------- src/utils/DateUtils.js | 26 +++-- yarn.lock | 10 +- 41 files changed, 886 insertions(+), 553 deletions(-) rename src/i18n/{en-US => en}/index.js (58%) create mode 100644 src/i18n/es/index.js diff --git a/.vscode/settings.json b/.vscode/settings.json index b3bb1e4..37fb753 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,13 +3,6 @@ "editor.guides.bracketPairs": true, "editor.formatOnSave": true, "editor.defaultFormatter": "esbenp.prettier-vscode", - "editor.codeActionsOnSave": [ - "source.fixAll.eslint" - ], - "eslint.validate": [ - "javascript", - "javascriptreact", - "typescript", - "vue" - ] -} \ No newline at end of file + "editor.codeActionsOnSave": ["source.fixAll.eslint"], + "eslint.validate": ["javascript", "javascriptreact", "typescript", "vue"] +} diff --git a/package.json b/package.json index 9fe2736..9a916f8 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "bech32-buffer": "^0.2.1", "core-js": "^3.6.5", "cross-fetch": "^3.1.5", + "date-fns": "^2.29.3", "emoji-mart-vue-fast": "^12.0.1", "jdenticon": "^3.2.0", "light-bolt11-decoder": "^2.1.0", @@ -23,7 +24,6 @@ "markdown-it-emoji": "^2.0.2", "markdown-it-sub": "^1.0.0", "markdown-it-sup": "^1.0.0", - "moment": "^2.29.4", "nostr-tools": "^1.1.1", "pinia": "^2.0.11", "pinia-plugin-persistedstate": "^3.0.2", diff --git a/src/boot/i18n.js b/src/boot/i18n.js index e36a6ba..7e6d537 100644 --- a/src/boot/i18n.js +++ b/src/boot/i18n.js @@ -2,13 +2,20 @@ import { boot } from 'quasar/wrappers' import { createI18n } from 'vue-i18n' import messages from 'src/i18n' -export default boot(({ app }) => { - const i18n = createI18n({ - locale: 'en-US', - globalInjection: true, - messages - }) +const [lng = 'en'] = (navigator?.language || '').split('-') +const i18n = createI18n({ + locale: lng, + fallbackLocale: 'en', + globalInjection: true, + messages, +}) + +export default boot(({ app }) => { // Set i18n instance on app app.use(i18n) }) + +const $t = i18n.global.t + +export { $t } diff --git a/src/components/AsyncLoadButton.vue b/src/components/AsyncLoadButton.vue index c3dc02b..829133a 100644 --- a/src/components/AsyncLoadButton.vue +++ b/src/components/AsyncLoadButton.vue @@ -2,7 +2,7 @@
diff --git a/src/components/AsyncLoadLink.vue b/src/components/AsyncLoadLink.vue index 0f620ce..4d3bdc4 100644 --- a/src/components/AsyncLoadLink.vue +++ b/src/components/AsyncLoadLink.vue @@ -2,9 +2,9 @@ @@ -23,19 +23,19 @@ export default defineComponent({ }, label: { type: String, - default: 'Load more' + default: 'Load more', }, labelNoMore: { type: String, - default: 'Try again?' + default: 'Try again?', }, prefix: { type: String, - default: 'Nothing here.' + default: 'Nothing here.', }, prefixNoMore: { type: String, - default: 'Nothing found.' + default: 'Nothing found.', }, hasItems: { type: Boolean, @@ -44,7 +44,7 @@ export default defineComponent({ autoload: { type: Boolean, default: false, - } + }, }, data() { return { @@ -65,7 +65,7 @@ export default defineComponent({ this.loading = false this.$emit('loaded', result) - } + }, }, mounted() { if (this.autoload) { @@ -78,7 +78,7 @@ export default defineComponent({ }, unmounted() { if (this.observer) this.observer.disconnect() - } + }, }) diff --git a/src/components/CreatePost/AutoSizeTextarea.vue b/src/components/CreatePost/AutoSizeTextarea.vue index 842bb75..179051a 100644 --- a/src/components/CreatePost/AutoSizeTextarea.vue +++ b/src/components/CreatePost/AutoSizeTextarea.vue @@ -1,7 +1,7 @@