Git Product home page Git Product logo

Comments (8)

kazupon avatar kazupon commented on June 7, 2024 1

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.

sybrendotinga avatar sybrendotinga commented on June 7, 2024

I've updated the issue based on my new discoveries. It has mainly to do with checking a "branch" of translations:

image

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
image

from vue-i18n-next.

sybrendotinga avatar sybrendotinga commented on June 7, 2024

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.

sybrendotinga avatar sybrendotinga commented on June 7, 2024

@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.

kazupon avatar kazupon commented on June 7, 2024

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.

sybrendotinga avatar sybrendotinga commented on June 7, 2024

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.

kazupon avatar kazupon commented on June 7, 2024

@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.

sybrendotinga avatar sybrendotinga commented on June 7, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.