I using vue-lang. It works, but not completely
ISSUE
in the JSON file there is an example of:
"messages": "You have {0} {1} messages"
and then this code as a filter
<p>{{$lang.messages | replace countmsg 'new'}}</p>
But when I do it by example so there is an error here
[Vue warn]: Failed to resolve filter: replace countmsg 'new'
MY FILES
main.js
import Vue from 'vue' import Lang from 'vue-lang' const locales = { 'cs': require('./lang/cs.json') } Vue.use(Lang, {lang: 'cs', locales: locales})
lang/cs.json
{ "messages": "You have {0} {1} messages" }
views/login.vue
<template> <p>{{$lang.messages | replace countmsg 'new'}}</p> </template> <script> export default { name: 'Login', data: function() { return { countmsg: 5 } } </script>
Still does not work. What am I doing wrong?
Advertisement
Answer
I’m not familiar with this particular library but the usual way to use a filter like this would be:
{{ $lang.messages | replace(countmsg, 'new') }}
The documentation for that filter appears to be 3 years old so it may be out of date. The syntax for calling filters was changed some time ago: https://v2.vuejs.org/v2/guide/migration.html#Filter-Argument-Syntax-changed