Как перевести валидационный массаж с помощью ngx-tranlate в Ionic4

Я настраиваю свое приложение ionic4 для работы с двумя языками ar и en, используя ngx-translate literary, и у меня есть два файла JSON en.json nad ar.json с такой структурой

{
  "LOGIN": {
  "login": "Login",
  "emailOrPhone":"EMAIL OR PHONE",
  "password":"PASSWORD",
  "emailOrPhonePlac":"Enter Email Address or Phone",
  "passwordPlac":"Enter Password",
  "facebook":"Facebook",
  "google":"Google"
},
 "REGISTRATION": {
  "signUp":"Sign Up",
  "name":"Name",
  "email":"Email",
  "mobile":"Mobile",
  "password":"Password",
  "address":"Address",
  "namePlac":"Enter user name",
  "emailPlac":"Enter email address",
  "mobilePlac":"Enter mobile number",
  "passwordPlac":"Enter password",
  "addressPlac":"Enter address"
 }
}

и я добавляю, что это в html файле

{{ 'REGISTRATION.name' | translate:params}}

до сих пор это работает нормально, но теперь проблема в том, как перевести сообщение проверки формы с этой структурой.

validation_messages = {
 name: [
   { type: "required", message: "name" },
   {
     type: "pattern",
     message: "Your User name  must contain Aa  letters only ."
   },
   {
     type: "minlength",
     message: "User name must be at least 5 characters long."
   }
 ],
 email: [
   { type: "required", message: "Email is required." },
   {
     type: "pattern",
     message: "Your Email must contain @ and letters number is 
optional."
   },
   { type: "email", message: "Your Email not valid." }
 ],
 mobile: [{ type: "required", message: "Mobile number is required." 
     }],
password: [
  { type: "required", message: "Password is required." },
  {
    type: "minlength",
    message: "Password must be at least 5 characters long."
  }
]
}; 

Я добавляю это в HTML

{{validation.message }}

Это возвращает только английский язык, и теперь это отлично работает, как перевести это на два языка, а также с сообщением динамической проверки, таким как объект структуры validation_messages

I Обычный перевод Я заменяю имя строки на {{'REGISTRATION.name' | translate: params}}

Теперь как заменить {{validation.message}} на что-нибудь подобное.


person Mohamed Gadallah    schedule 04.09.2019    source источник


Ответы (1)


Привет всем, я предлагаю что-то, может быть, не самое лучшее, но оно отлично работает со мной в 3 шага, шаг 1: я добавлю ключ в качестве значения сообщения validation_messages, измененного в этой структуре.

validation_messages = {
name: [
  { type: "required", message: "nameRequired" },
  {
    type: "pattern",
    message: "namePattern"
  },
  {
    type: "minlength",
    message: "nameMinlenth"
  }
],
email: [
  { type: "required", message: "emailRequired" },
  {
    type: "pattern",
    message: "emailPattern"
  },
  { type: "email", message: "emailEmail" }
],
mobile: [{ type: "required", message: "mobileRequired" }],
password: [
  { type: "required", message: "passwordRequired" },
  {
    type: "minlength",
    message: "passwordMinlength"
  }
]
  };

Шаг 2: добавьте все сообщения проверки к ключам в файлах en и ar JSON Как это

  {
 "LOGIN": {
  "login": "Login",
  "emailOrPhone":"EMAIL OR PHONE",
  "password":"PASSWORD",
  "emailOrPhonePlac":"Enter Email Address or Phone",
  "passwordPlac":"Enter Password",
  "facebook":"Facebook",
  "google":"Google" 
},
 "REGISTRATION": {
  "signUp":"Sign Up",
  "name":"Name",
  "email":"Email",
  "mobile":"Mobile",
  "password":"Password",
  "address":"Address",
  "namePlac":"Enter user name",
  "emailPlac":"Enter email address",
  "mobilePlac":"Enter mobile number",
  "passwordPlac":"Enter password",
  "addressPlac":"Enter address",
  "nameRequired":"User name is required.",
  "namePattern":"Your User name  must contain Aa  letters only .",
  "nameMinlenth":"User name must be at least 5 characters long.",
  "emailRequired":"Email is required.",
  "emailPattern":"Your Email must contain @ and letters number is optional.",
  "emailEmail":"Your Email not valid.",
  "mobileRequired":"Mobile number is required.",
  "passwordRequired":"Password is required.",
  "passwordMinlength":"Password must be at least 5 characters long."
 }
}

шаг 3: в html файле заменить

{{validation.message }}

to

{{ 'REGISTRATION.'+validation.message | translate:params}}

это все, и это нормально для меня.

введите описание изображения здесь

введите описание изображения здесь

person Mohamed Gadallah    schedule 04.09.2019