diff --git a/client/entry.coffee b/client/entry.coffee index 1db65489..9dc61f74 100644 --- a/client/entry.coffee +++ b/client/entry.coffee @@ -7,6 +7,10 @@ AccountsEntry = config: (appConfig) -> @settings = _.extend(@settings, appConfig) + i18n.setDefaultLanguage "en_US" + if appConfig.language + i18n.setLanguage appConfig.language + if appConfig.signUpTemplate Router.routes = _.reject Router.routes, (e, i) -> e.name is 'entrySignUp' diff --git a/client/i18n/english.coffee b/client/i18n/english.coffee new file mode 100644 index 00000000..101a53f7 --- /dev/null +++ b/client/i18n/english.coffee @@ -0,0 +1,37 @@ +en = + signIn: "Sign In" + signin: "sign in" + signOut: "Sign Out" + signUp: "Sign Up" + OR: "OR" + forgotPassword: "Forgot your Password?" + emailAddress: "Email Address" + emailResetLink: "Email Reset Link" + dontHaveAnAccount: "Don't have an account?" + resetYourPassword: "Reset your Password" + updateYourPassword: "Update your password" + password: "Password" + usernameOrEmail: "Username or email" + email: "Email" + ifYouAlreadyHaveAnAccount: "If you already have an account" + signUpWithYourEmailAddress: "Sign up with your email address" + username: "Username" + optional: "Optional" + signupCode: "Signup Code" + clickAgree: "By clicking Sign up, you agree to our" + privacyPolicy: "Privacy Policy" + terms: "Terms of Use" + sign: "Sign" + with: "with" + + error: + minChar: "7 character minimum password." + pwOneLetter: "Password requires 1 letter." + pwOneDigit: "Password must have at least one digit." + uernameRequired: "Username is required" + emailRequired: "Email is required" + signupCodeRequired: "Signup code is required" + signupCodeIncorrect: "Signup code is incorrect" + unknown: "Unknown error" + +i18n.map "en", en diff --git a/client/i18n/spanish.coffee b/client/i18n/spanish.coffee new file mode 100644 index 00000000..01f3728b --- /dev/null +++ b/client/i18n/spanish.coffee @@ -0,0 +1,36 @@ +es = + signIn: "Entrar" + signOut: "Salir" + signUp: "Suscribir" + OR: "O" + forgotPassword: "Contraseña olvidada?" + emailAddress: "Dirección de Email" + emailResetLink: "Reiniciar Email" + dontHaveAnAccount: "No tenés una cuenta?" + resetYourPassword: "Resetear tu contraseña" + updateYourPassword: "Actualizar tu contraseña" + password: "Contraseña" + usernameOrEmail: "Usuario o email" + email: "Email" + ifYouAlreadyHaveAnAccount: "Si ya tenés una cuanta" + signUpWithYourEmailAddress: "Suscribir con tu email" + username: "Usuario" + optional: "Opcional" + signupCode: "Codigo para suscribir" + clickAgree: "Si haces clic en Sucribir estas de acuerdo con la" + privacyPolicy: "Póliza de Privacidad" + terms: "Terminos de Uso" + sign: "Ingresar" + with: "con" + + error: + minChar: "7 carácteres minimo." + pwOneLetter: "Minimo una letra." + pwOneDigit: "Minimo un dígito." + uernameRequired: "Usuario es necesario" + emailRequired: "Email es necesario" + signupCodeRequired: "Codigo para suscribir es necesario" + signupCodeIncorrect: "Codigo para suscribir no coincide" + unknown: "Error desconocido" + +i18n.map "es", es diff --git a/client/views/accountButtons/accountButtons.html b/client/views/accountButtons/accountButtons.html index 8c0af060..210d4f61 100644 --- a/client/views/accountButtons/accountButtons.html +++ b/client/views/accountButtons/accountButtons.html @@ -12,19 +12,19 @@ {{/if}} {{#if wrapLinks}}
  • {{/if}} - Sign Out + {{i18n "signOut"}} {{#if wrapLinks}}
  • {{/if}} {{else}} {{#if wrapLinks}}
  • {{/if}} - Sign In + {{i18n "signIn"}} {{#if wrapLinks}}
  • {{/if}} {{#unless wrapLinks}}or{{/unless}} {{#if wrapLinks}}
  • {{/if}} - Sign Up + {{i18n "signUp"}} {{#if wrapLinks}}
  • {{/if}} {{/if}} diff --git a/client/views/forgotPassword/forgotPassword.html b/client/views/forgotPassword/forgotPassword.html index 4fe9240f..fb929aec 100644 --- a/client/views/forgotPassword/forgotPassword.html +++ b/client/views/forgotPassword/forgotPassword.html @@ -10,14 +10,14 @@ {{#if error}}
    {{error}}
    {{/if}} -

    Forgot your Password?

    +

    {{i18n 'forgotPassword'}}

    - +
    - +
    -

    Don't have an account? Sign up

    +

    {{i18n 'dontHaveAnAccount'}} {{i18n 'signUp'}}

    diff --git a/client/views/resetPassword/resetPassword.html b/client/views/resetPassword/resetPassword.html index 8fe0ace6..02861c20 100644 --- a/client/views/resetPassword/resetPassword.html +++ b/client/views/resetPassword/resetPassword.html @@ -10,14 +10,14 @@ {{#if error}}
    {{error}}
    {{/if}} -

    Reset your Password

    +

    {{i18n "resetYourPassword"}}

    - +
    -

    Don't have an account? Sign up

    +

    {{i18n "dontHaveAnAccount"}} {{i18n "signUp"}}

    diff --git a/client/views/signIn/signIn.coffee b/client/views/signIn/signIn.coffee index c94bf50c..03d39816 100644 --- a/client/views/signIn/signIn.coffee +++ b/client/views/signIn/signIn.coffee @@ -8,13 +8,14 @@ Template.entrySignIn.helpers emailPlaceholder: -> fields = Accounts.ui._options.passwordSignupFields + console.log "hi" if _.contains([ 'USERNAME_AND_EMAIL' 'USERNAME_AND_OPTIONAL_EMAIL' ], fields) - return 'Username or email' + return i18n("usernameOrEmail") - return 'Email' + return i18n("email") logo: -> AccountsEntry.settings.logo diff --git a/client/views/signIn/signIn.html b/client/views/signIn/signIn.html index 61262285..6098c944 100644 --- a/client/views/signIn/signIn.html +++ b/client/views/signIn/signIn.html @@ -13,14 +13,14 @@ {{> entrySocial}} {{/each}}
    - OR + {{i18n "OR"}}
    {{/if}} {{> entryError}} {{#unless otherLoginServices}}
    -

    Sign In

    +

    {{i18n "signIn"}}

    {{/unless}}
    @@ -28,12 +28,12 @@

    Sign In

    - +
    -

    Forgot password?

    - +

    {{i18n "forgotPassword"}}

    +
    -

    Don't have an account? Sign up

    +

    {{i18n "dontHaveAnAccount"}} {{i18n "signUp"}}

    diff --git a/client/views/signUp/signUp.coffee b/client/views/signUp/signUp.coffee index 06698854..f87cf2c7 100644 --- a/client/views/signUp/signUp.coffee +++ b/client/views/signUp/signUp.coffee @@ -68,11 +68,11 @@ Template.entrySignUp.events errMsg = [] msg = false if password.length < 7 - errMsg.push "7 character minimum password." + errMsg.push i18n("error.minChar") if password.search(/[a-z]/i) < 0 - errMsg.push "Password requires 1 letter." + errMsg.push i18n("error.pwOneLetter") if password.search(/[0-9]/) < 0 - errMsg.push "Password must have at least one digit." + errMsg.push i18n("error.pwOneDigit") if errMsg.length > 0 msg = "" @@ -97,17 +97,18 @@ Template.entrySignUp.events 'USERNAME_ONLY'], fields) if usernameRequired && email.length is 0 - Session.set('entryError', 'Username is required') + Session.set('entryError', i18n("error.uernameRequired")) return if emailRequired && email.length is 0 - Session.set('entryError', 'Email is required') + Session.set('entryError', i18n("error.emailRequired")) return if AccountsEntry.settings.showSignupCode && signupCode.length is 0 - Session.set('entryError', 'Signup code is required') + Session.set('entryError', i18n("error.signupCodeRequired")) return + Meteor.call('entryValidateSignupCode', signupCode, (err, valid) -> if err console.log err @@ -130,7 +131,7 @@ Template.entrySignUp.events Router.go AccountsEntry.settings.dashboardRoute ) else - Session.set('entryError', 'Signup code is incorrect') + Session.set('entryError', i18n("error.signupCodeIncorrect")) return ) diff --git a/client/views/signUp/signUp.html b/client/views/signUp/signUp.html index 474d7414..977095f8 100644 --- a/client/views/signUp/signUp.html +++ b/client/views/signUp/signUp.html @@ -9,7 +9,7 @@

    Create an Account

    {{#if otherLoginServices}} -

    If you already have an account sign in.

    +

    {{i18n "ifYouAlreadyHaveAnAccount"}} {{i18n "signin"}}.

    {{#each loginServices}} {{> entrySocial}} @@ -17,53 +17,53 @@

    Create an Account

    {{else}} -

    If you already have an account sign in.

    +

    {{i18n "ifYouAlreadyHaveAnAccount"}}t {{i18n "signin"}}.

    {{/if}} {{> entryError}}
    {{#if showUsername}}
    - +
    {{/if}} {{#if showEmail}}
    - - + +
    {{/if}}
    - +
    {{#if showSignupCode}}
    - +
    {{/if}} - +
    {{#if both}} -

    By clicking Sign up, you agree to our - Privacy Policy and - Terms of Use. +

    {{i18n "clickAgree"}} + {{i18n "privacyPolicy"}} and + {{i18n "terms"}}.

    {{else}} {{#unless neither}} -

    By clicking Sign up, you agree to our - {{#if privacyUrl}}Privacy Policy.{{/if}} - {{#if termsUrl}}Terms of Use.{{/if}} +

    {{i18n "clickAgree"}} + {{#if privacyUrl}}{{i18n "privacyPolicy"}}.{{/if}} + {{#if termsUrl}}{{i18n "terms"}}.{{/if}}

    {{/unless}} {{/if}} diff --git a/client/views/social/social.coffee b/client/views/social/social.coffee index f057843c..fb6b7584 100644 --- a/client/views/social/social.coffee +++ b/client/views/social/social.coffee @@ -19,7 +19,7 @@ Template.entrySocial.events loginButtonsSession.configureService(serviceName) else # FIX THIS - loginButtonsSession.errorMessage(err.reason || "Unknown error") + loginButtonsSession.errorMessage(err.reason || i18n("error.unknown")) loginWithService = Meteor["loginWith" + capitalize(serviceName)] options = {} diff --git a/client/views/social/social.html b/client/views/social/social.html index 5e3cc2b4..61efbd33 100644 --- a/client/views/social/social.html +++ b/client/views/social/social.html @@ -1,8 +1,8 @@ diff --git a/package.js b/package.js index 3c6759ce..813fac3b 100644 --- a/package.js +++ b/package.js @@ -36,7 +36,9 @@ Package.on_use(function(api) { 'client/views/error/error.html', 'client/views/error/error.coffee', 'client/views/accountButtons/accountButtons.html', - 'client/views/accountButtons/accountButtons.coffee' + 'client/views/accountButtons/accountButtons.coffee', + 'client/i18n/english.coffee', + 'client/i18n/spanish.coffee' ], 'client'); // SERVER @@ -55,6 +57,8 @@ Package.on_use(function(api) { api.imply('accounts-base', ['client', 'server']); api.export('AccountsEntry', ['client', 'server']); api.use('iron-router', ['client', 'server']); + api.use('just-i18n', ['client']); + api.use('headers', ['client']); api.add_files(['shared/router.coffee'], ['client', 'server']); }); diff --git a/smart.json b/smart.json index 598f1305..8255ff50 100644 --- a/smart.json +++ b/smart.json @@ -6,6 +6,7 @@ "version": "0.4.4", "git": "https://github.com/BeDifferential/accounts-entry.git", "packages": { - "iron-router": "0.6.1" + "iron-router": "0.6.1", + "just-i18n": {} } }