Comments (8)
vue-i18n v9 is giving us tm
for getting object or array.
https://vue-i18n.intlify.dev/guide/migration/breaking.html#translation-api-return-value
Like the code you presented, we can check if there is a branch by using computed
.
from vue-i18n-next.
I've updated the issue based on my new discoveries. It has mainly to do with checking a "branch" of translations:
In this scenario te('editor')
will return false
, but te('editor.actions.cancel.label')
will return true
:
{{ te('editor') }} // false
{{ te('editor.actions.cancel.label') }} // true
from vue-i18n-next.
Reading more about this, I've found that this works:
const translations = computed(() => tm('editor'))
const showTools = computed(() => Object.keys(translations.value).length >= 1)
But, maybe that is not the nicest solution, because it adds a lot more operations than it previously was
from vue-i18n-next.
@kazupon It seems very related to #1602
I've added a very simple Stackblitz reproduction: https://stackblitz.com/edit/vitejs-vite-gyzvu8?file=src%2FApp.vue
te
is broken after updating to 9.6. You can install 9.5 in de stackblitz and all checks become true
again.
from vue-i18n-next.
Thank you for your reporting!
te('common') -> false
te('common.actions') -> false
This is the result of your reproduction above, which is the correct behavior.
Until now, true was returned even if the value of the key was not translatable, i.e., not a string.
So, I've fixed in #1559
I will put this notice in te
API documentation.
Thanks!
from vue-i18n-next.
Hi @kazupon is there an alternative? Or can one be provided? Because our applications rely on this check and therefore are now broken on this version.
from vue-i18n-next.
@sybrendotinga
I'll give translateExistCompatible
option, a compatibility flag that will result in pre-9.6 behavior. You can specify that option to createI18n
.
We will remove that option in the next major version v10, so please migrate at some point.
from vue-i18n-next.
That would be great, thank you. Nonetheless, we would still appreciate an alternative after that. Can vue-i18n
provide an alternaive to check if a branch exists (aka is an object)? Or should we build something like this ourself?
const translations = computed(() => tm('editor'))
const showTools = computed(() => Object.keys(translations.value).length >= 1)
from vue-i18n-next.
Related Issues (20)
- add possible errors on API docs HOT 3
- Modifiers for interpolated values
- How to use named interpolation in html HOT 1
- [v9.10.0] `@intlify/message-compiler` publishing missing TypeScript reference HOT 4
- Message compiler still ships with dist with runtime only HOT 3
- te function returns false although fallback exists HOT 5
- Using a implicit fallback throws a warning in the console HOT 1
- Incorrect tm return type HOT 1
- Foolproofing and trigger error, when locale is not set. HOT 2
- regression: wrong `d.ts` of `@intlify/message-compiler` HOT 1
- Hyphens in placeholders causing error `Unterminated closing brace` in vue-i18n@9 HOT 1
- Guide leads to a 404 HOT 4
- Getting 'Cannot read properties of undefined (reading 't')' error in core-base.mjs::formatParts HOT 3
- Linked messages doesn't support chinese character as key HOT 1
- Property "$tc" was accessed during render but is not defined on instance. HOT 1
- Shortcut and more readable syntax for `v-t`: allow `<h1 v-t>Hello</h1>` which will be similar to `<h1 v-t="Hello"></h1>` HOT 4
- CSP Violation when `unsafe-eval` is not set HOT 2
- Key paths containing javascript built-ins are handled inconsistently HOT 3
- Interpolations get lost HOT 2
- SSR without NODE_ENV loads devtools and causes memory leak HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vue-i18n-next.