Git Product home page Git Product logo

devise-i18n's Introduction

devise-i18n

CI

Devise "is a flexible authentication solution for Rails based on Warden". Internationalization (aka i18n) is a "means of adapting computer software to different languages, regional differences and technical requirements of a target market".

Devise supports i18n in controllers, models, and in other areas, but it does not have support for internationalized views. devise-i18n adds this support. Devise also does not include the actual translations. devise-i18n does this too.

Installation

Add to your Gemfile:

gem 'devise-i18n'

Assuming you have not previously generated Devise's views into your project, that's all you need to do. If you have previously done this, you will need to regenerate your views (see "Customizing views" below) and then reapply whatever customizations that made you do this in the first place.

Setting your locale

You will need to set a locale in your application as described in the Rails Internationalization Guide.

If you are setting the locale per request (because your application supports multiple locales), the suggested code in that guide (using I18n.with_locale inside an around_action) will not work properly with devise-i18n. Due to a bug in warden, some error messages will not be translated. Instead, you can set the locale in a before_action:

before_action do
  I18n.locale = :es # Or whatever logic you use to choose.
end

or in middleware:

class LocaleMiddleware
  def initialize(app)
    @app = app
  end

  def call(env)
    I18n.locale = :es # Or whatever logic you use to choose.
    status, headers, body = @app.call(env)
  end
end
config.middleware.use ::LocaleMiddleware

Customizing views

The devise:i18n:views generator will copy all devise-i18n's views to your application so that you can modify the files as you wish.

rails g devise:i18n:views

You should only do this if you really need to, though, because doing this will make it so that you won't get the updated views should they change in a future version of devise-i18n. To "uncustomize" the views, just delete them, and your app will go back to grabbing devise-i18n's default views.

If you have simple_form in your Gemfile, this command will generate the corresponding views using the simple_form form builder.

Scoped views

If you need to use scoped views (for example, if you have different ones for users and admins), you can include the scope in this command.

rails g devise:i18n:views user

You will additionally need to generate the translations into your app per the following section and then add keys in each file for the scope you are using.

Customizing translations

If, for whatever reason, you want to change devise-i18n's translations, you can generate the locale file into your project with

rails g devise:i18n:locale it

which will generate config/locales/devise.views.it.yml. If you're doing this to add a missing translation or to improve an existing one, it'd be nice if you could share your suggestions with us!

Contributing translations to devise-i18n

Edit the translations directly on the devise-i18n project on Locale. That's it! The maintainer will periodically pull translations from the Locale project and push to GitHub.

Alternately, you can create a pull request on GitHub.

In general, the tone of translations should be friendly, polite, and succinct. Certain languages (including Japanese and Korean) should use a more formal tone which is the standard for customer messages in those languages.

Copyright

Copyright (c) 2011 Christopher Dell. See LICENSE.txt for further details.

devise-i18n's People

Contributors

acrogenesis avatar ahone avatar an-nasir avatar bibiki avatar cprodhomme avatar dependabot[bot] avatar douglaslise avatar foton avatar frodrigo avatar gugod avatar harrykiselev avatar hron84 avatar ignisf avatar jasonbarnabe avatar johnnyshields avatar mauriciopasquier avatar mhbcse avatar mishina2228 avatar mixmix avatar oriolgual avatar pcriv avatar pierot avatar pjomcsjava avatar roshiend avatar ryush00 avatar themilkman avatar tigrish avatar timoschilling avatar trantorliu avatar ujdhesa avatar

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.