Localization Meteor accounts.ui本地化

Localization Meteor accounts.ui本地化,localization,meteor,Localization,Meteor,我正在学习使用流星 是否可以轻松本地化accounts.ui组件?i18n仍在Meteor的待办事项列表中。同时,你可以自己制作一套系统。 查看他们是如何实现国际化的,例如:这是一个有点粗糙的解决方案,您可以删除现有的帐户ui包,然后手动添加它。查找meteor上的accounts ui分支,并查找accounts ui包中的所有内容,如:login\u buttons\u dialogs.html、login\u buttons.html等 然后,您可以编辑这些文件并将其直接复制到meteor

我正在学习使用流星


是否可以轻松本地化accounts.ui组件?

i18n仍在Meteor的待办事项列表中。同时,你可以自己制作一套系统。
查看他们是如何实现国际化的,例如:

这是一个有点粗糙的解决方案,您可以删除现有的
帐户ui
包,然后手动添加它。查找meteor上的
accounts ui
分支,并查找
accounts ui
包中的所有内容,如:login\u buttons\u dialogs.html、login\u buttons.html等

然后,您可以编辑这些文件并将其直接复制到meteor项目中,使用您想要的语言自定义文本


Meteor还没有实现国际化,但它已经在路线图上了。您可以使用并安装一个本地化软件包,如
simple-i18n
,与手动编辑的
accounts ui
文件结合使用,为用户提供多种语言的体验,或者只需提供不同语言的accounts ui。

以下是我使用的技巧。简单但有效:

Template.header.rendered = function() {
  $('#login-sign-in-link').text('Přihlásit se ▾');
  $('.login-close-text').text('Zavřít nabídku');
  $('.sign-in-text-google').text('Přihlásit se přes Google');
  $('.sign-in-text-facebook').text('Přihlásit se přes FB');
  //etc...
};

法语:

/**
*丑陋的翻译
*TODO:使用i18n解决方案
*/
Template.header.rendered=函数(){
$(“#登录登录链接”).text('Connexion▾');
$('.login close text').text('Fermer');
$(“#登录用户名或电子邮件标签”).text('Pseudo ou email');
$(“#登录密码标签”).text('Mot de passe(mdp)');
$(“#注册链接”).text('Créer un compte');
$(“#忘记密码链接”).text('Mdp oubli');
$(“#登录按钮忘记密码”).text('Récupération');
$(“#返回登录链接”).text('Connexion');
$(“#登录用户名标签”).text('Pseudo');
$(“#登录按钮打开更改密码”).text('Changer de mdp');
$(“#登录按钮注销”).text('Deconnexion');
if($('#登录按钮密码').text().indexOf('Sign-in')!=-1){
$(“#登录按钮密码”).text('Connexion');
}否则{
$(“#登录按钮密码”).text('Créer le compte');
}
$('.login button').addClass('btn btn warning');
$('.login button').removeClass('login-button登录按钮表单提交');
if($('.message.error message').text().indexOf('用户名长度必须至少为3个字符)!=-1){
$('.message.error message').text('Le login doit faire plus de 3 caractères');
}else if($('.message.error message').text().indexOf('error password')!=-1('.message.error message').text().indexOf('User not found')!=-1){
$('.message.error message').text('登录不正确');
}
$(“#登录旧密码标签”).text('Mot de passe actuel');
$(“#登录按钮确实更改密码”).text('Changer le mot de passe');
$(“#重置密码新密码标签”).text('Nouveau mot de passe');
$(“#登录按钮重置密码按钮”).text('Changer');
如果($('.message.info message').text().indexOf('Email sent')!=-1)$('.message.info message').text('Email emission');
$(“#刚刚验证了解除按钮”).parent().html('Email vérifiéMasquer');
};

德语,包括所有标签。
这主要是根据Pascoual的文章改编的,但是,按钮仍然是格式化的,一些额外的标签被翻译…
如果您发现一个标签仍然不是translatet,请在评论中报告这一点

  /**
   * Accounts-ui ugly translation
   * TODO : use i18n solution
   */
Template.login.rendered = function() {
  $('#login-sign-in-link').text('Einloggen');
  $('.login-close-text').text('Schliessen');
  $('#login-username-or-email-label').text('Benutzername oder Email');
  $('#login-password-label').text('Passwort');
  $('#signup-link').text('Konto erstellen');
  $('#forgot-password-link').text('Passwort vergessen');
  $('#login-buttons-forgot-password').text('Wiederherstellen');
  $('#back-to-login-link').text('Zurück');
  $('#login-username-label').text('Benutzername');
  $('#login-buttons-open-change-password').text('Passwort ändern');
  $('#login-buttons-logout').text('Logout');
  $('#reset-password-new-password-label').text('Neues Passwort');
  $('#login-old-password-label').text('Aktuelles Passwort');
  $('#login-password-label').text('Neues Passwort');
  $('#login-buttons-do-change-password').text('Passwort ändern');
  if ($('#login-buttons-password').text().indexOf('Sign in') != -1) {
    $('#login-buttons-password').text('Einloggen');
  } else {
    $('#login-buttons-password').text('Konto erstellen');
  }

  if ($('.message.error-message').text().indexOf('Username must be at least 3 characters long') != -1) {
    $('.message.error-message').text('Benutzername muss mindestens 3 Zeichen lang sein');
  } else if ($('.message.error-message').text().indexOf('Incorrect password') != -1 || $('.message.error-message').text().indexOf('User not found') != -1) {
    $('.message.error-message').text('Benutzername oder Passwort falsch');
  }
};
葡萄牙语(PT-BR)

Template.layout.rendered=function(){
$(“#登录登录链接”).text('login▾');
$('.login close text').text('Fechar');
$(“#登录用户名或电子邮件标签”).text('Nome de usuário ou e-mail');
$(“#登录密码标签”).text('Senha');
$(“#注册链接”).text('Criar uma conta');
$(“#忘记密码链接”).text('Esqueceu a senha?');
$(“#登录按钮忘记密码”).text('reciperar');
$(“#返回登录链接”).text('login');
$(“#登录用户名标签”).text('Usuário para login');
$(“#登录按钮打开更改密码”).text('Alterar senha');
$(“#登录按钮注销”).text('logout');
if($('#登录按钮密码').text().indexOf('Sign-in')!=-1){
$(“#登录按钮密码”).text('login');
}否则{
$(“#登录按钮密码”).text('Criar conta');
}
$('.login button').addClass('btn btn warning');
$('.login button').removeClass('login-button登录按钮表单提交');
if($('.message.error message').text().indexOf('用户名长度必须至少为3个字符)!=-1){
$('.message.error message').text('Usuário deve ter pelo menos 3个字符');
}else if($('.message.error message').text().indexOf('error password')!=-1('.message.error message').text().indexOf('User not found')!=-1){
$('.message.error message').text('Usuário/senha errado');
}
$(“#登录旧密码标签”).text('Senha atual');
$(“#登录按钮确实更改密码”).text('altera a senha');
$(“#重置密码新密码标签”).text('Nova senha');
$(“#登录按钮重置密码按钮”).text('Alterar');
如果($('.message.info message').text().indexOf('Email sent')!=-1)$('.message.info message').text('E-mail enviado');
$(“#刚刚验证了关闭按钮”).parent().html('Email-verificado-Ocultar');
};

小心孩子们!
$('.login CLOSE text')中的CLOSE是动词…TO CLOSE
这并不意味着“接近”,正如我在上面的一些答案中所读到的。

你可以考虑使用

它支持:

accountsUIBootstrap3.setLanguage('ru')


最简单的方法是用户帐户点击软件包:

它基于tapi18n,您只需在客户端添加以下配置:

T9n.setLanguage('<yourLanguage>')
T9n.setLanguage(“”)

我不知道是否发生了变化,但
呈现的
回调对此不起作用(至少对我来说是这样)。下拉列表中的元素似乎只有在单击它之后才能创建,因此在单击下拉列表后在控制台上键入一行
Template.layout.rendered = function() {
  $('#login-sign-in-link').text('Login ▾');
  $('.login-close-text').text('Fechar');
  $('#login-username-or-email-label').text('Nome de usuário ou e-mail');
  $('#login-password-label').text('Senha');
  $('#signup-link').text('Criar uma conta');
  $('#forgot-password-link').text('Esqueceu a senha?');
  $('#login-buttons-forgot-password').text('Recuperar');
  $('#back-to-login-link').text('Login');
  $('#login-username-label').text('Usuário para login');
  $('#login-buttons-open-change-password').text('Alterar senha');
  $('#login-buttons-logout').text('Logout');
  if ($('#login-buttons-password').text().indexOf('Sign in') != -1) {
    $('#login-buttons-password').text('Login');
  } else {
    $('#login-buttons-password').text('Criar conta');
  }
  $('.login-button').addClass('btn btn-warning');
  $('.login-button').removeClass('login-button login-button-form-submit');
  if ($('.message.error-message').text().indexOf('Username must be at least 3 characters long') != -1) {
    $('.message.error-message').text('Usuário deve ter pelo menos 3 caracteres');
  } else if ($('.message.error-message').text().indexOf('Incorrect password') != -1 || $('.message.error-message').text().indexOf('User not found') != -1) {
    $('.message.error-message').text('Usuário/senha errado(s)');
  }
  $('#login-old-password-label').text('Senha atual');
  $('#login-buttons-do-change-password').text('Alterar a senha');
  $('#reset-password-new-password-label').text('Nova senha');
  $('#login-buttons-reset-password-button').text('Alterar');
  if ($('.message.info-message').text().indexOf('Email sent') != -1) $('.message.info-message').text('E-mail enviado');
  $('#just-verified-dismiss-button').parent().html('Email verificado <div class="btn btn-warning" id="just-verified-dismiss-button">Ocultar</div>');
};
T9n.setLanguage('<yourLanguage>')