https://github.com/tigrish/devise-i18n
Translations for the devise gem
https://github.com/tigrish/devise-i18n
Last synced: 5 months ago
JSON representation
Translations for the devise gem
- Host: GitHub
- URL: https://github.com/tigrish/devise-i18n
- Owner: tigrish
- License: mit
- Created: 2011-12-15T23:39:44.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2024-10-25T16:31:10.000Z (6 months ago)
- Last Synced: 2024-10-29T23:50:36.929Z (6 months ago)
- Language: Ruby
- Homepage:
- Size: 1.55 MB
- Stars: 742
- Watchers: 17
- Forks: 535
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
Awesome Lists containing this project
- awesome-rails-gems - tigrish / devise-i18n
README
# Moved to https://github.com/devise-i18n/devise-i18n
Further work on the devise-i18n project will be done in [devise-i18n/devise-i18n](https://github.com/devise-i18n/devise-i18n). Please reference that repository for latest releases and for filing issues and pull requests.
---
# devise-i18n
[](https://github.com/tigrish/devise-i18n/actions/workflows/ci.yml)
[Devise](https://github.com/plataformatec/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 `devise-i18n` your Gemfile *after* `devise`:
```ruby
gem 'devise'
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](https://guides.rubyonrails.org/i18n.html).
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](https://github.com/wardencommunity/warden/issues/180), some error messages will not be translated. Instead, you can set the locale in a `before_action`:
```ruby
before_action do
I18n.locale = :es # Or whatever logic you use to choose.
end
```or in middleware:
```ruby
class LocaleMiddleware
def initialize(app)
@app = app
enddef call(env)
I18n.locale = :es # Or whatever logic you use to choose.
status, headers, body = @app.call(env)
end
end
```
```ruby
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.
``` sh
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.
``` sh
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
``` sh
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](https://app.localeapp.com/projects/377) 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.