magic_locales 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +42 -0
- data/Rakefile +23 -0
- data/lib/app/controllers/magic_locales/base_controller.rb +16 -0
- data/lib/app/controllers/magic_locales/locales_controller.rb +64 -0
- data/lib/app/models/magic_locales/association.rb +59 -0
- data/lib/app/models/magic_locales/language.rb +46 -0
- data/lib/app/models/magic_locales/locale.rb +78 -0
- data/lib/app/models/magic_locales.rb +6 -0
- data/lib/app/views/magic_locales/_locale_switch.html.erb +39 -0
- data/lib/app/views/magic_locales/locales/_globalized_name_fields.html.erb +20 -0
- data/lib/app/views/magic_locales/locales/form.html.erb +47 -0
- data/lib/app/views/magic_locales/locales/index.html.erb +83 -0
- data/lib/assets/images/flags/countries/large/flag-at.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-ba.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-be.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-bg.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-by.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-ca.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-ch.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-cy.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-cz.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-de.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-dk.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-es.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-fi.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-fr.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-gb.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-gr.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-hr.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-hu.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-ie.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-it.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-li.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-lt.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-lu.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-lv.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-nl.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-no.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-pl.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-pt.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-ro.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-rs.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-ru.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-se.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-si.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-sk.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-ua.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-us.png +0 -0
- data/lib/assets/images/flags/countries/large/flag-xx.png +0 -0
- data/lib/assets/images/flags/countries/large/square-at.png +0 -0
- data/lib/assets/images/flags/countries/large/square-ba.png +0 -0
- data/lib/assets/images/flags/countries/large/square-be.png +0 -0
- data/lib/assets/images/flags/countries/large/square-bg.png +0 -0
- data/lib/assets/images/flags/countries/large/square-by.png +0 -0
- data/lib/assets/images/flags/countries/large/square-ca.png +0 -0
- data/lib/assets/images/flags/countries/large/square-ch.png +0 -0
- data/lib/assets/images/flags/countries/large/square-cy.png +0 -0
- data/lib/assets/images/flags/countries/large/square-cz.png +0 -0
- data/lib/assets/images/flags/countries/large/square-de.png +0 -0
- data/lib/assets/images/flags/countries/large/square-dk.png +0 -0
- data/lib/assets/images/flags/countries/large/square-es.png +0 -0
- data/lib/assets/images/flags/countries/large/square-fi.png +0 -0
- data/lib/assets/images/flags/countries/large/square-fr.png +0 -0
- data/lib/assets/images/flags/countries/large/square-gb.png +0 -0
- data/lib/assets/images/flags/countries/large/square-gr.png +0 -0
- data/lib/assets/images/flags/countries/large/square-hr.png +0 -0
- data/lib/assets/images/flags/countries/large/square-hu.png +0 -0
- data/lib/assets/images/flags/countries/large/square-ie.png +0 -0
- data/lib/assets/images/flags/countries/large/square-it.png +0 -0
- data/lib/assets/images/flags/countries/large/square-li.png +0 -0
- data/lib/assets/images/flags/countries/large/square-lt.png +0 -0
- data/lib/assets/images/flags/countries/large/square-lu.png +0 -0
- data/lib/assets/images/flags/countries/large/square-lv.png +0 -0
- data/lib/assets/images/flags/countries/large/square-nl.png +0 -0
- data/lib/assets/images/flags/countries/large/square-no.png +0 -0
- data/lib/assets/images/flags/countries/large/square-pl.png +0 -0
- data/lib/assets/images/flags/countries/large/square-pt.png +0 -0
- data/lib/assets/images/flags/countries/large/square-ro.png +0 -0
- data/lib/assets/images/flags/countries/large/square-rs.png +0 -0
- data/lib/assets/images/flags/countries/large/square-ru.png +0 -0
- data/lib/assets/images/flags/countries/large/square-se.png +0 -0
- data/lib/assets/images/flags/countries/large/square-si.png +0 -0
- data/lib/assets/images/flags/countries/large/square-sk.png +0 -0
- data/lib/assets/images/flags/countries/large/square-ua.png +0 -0
- data/lib/assets/images/flags/countries/large/square-us.png +0 -0
- data/lib/assets/images/flags/countries/large/square-xx.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-at.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-ba.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-be.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-bg.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-by.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-ca.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-ch.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-cy.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-cz.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-de.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-dk.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-es.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-fi.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-fr.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-gb.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-gr.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-hr.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-hu.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-ie.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-it.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-li.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-lt.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-lu.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-lv.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-nl.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-no.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-pl.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-pt.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-ro.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-rs.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-ru.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-se.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-si.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-sk.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-ua.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-us.png +0 -0
- data/lib/assets/images/flags/countries/medium/flag-xx.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-at.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-ba.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-be.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-bg.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-by.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-ca.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-ch.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-cy.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-cz.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-de.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-dk.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-es.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-fi.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-fr.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-gb.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-gr.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-hr.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-hu.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-ie.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-it.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-li.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-lt.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-lu.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-lv.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-nl.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-no.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-pl.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-pt.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-ro.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-rs.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-ru.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-se.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-si.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-sk.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-ua.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-us.png +0 -0
- data/lib/assets/images/flags/countries/medium/square-xx.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-at.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-ba.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-be.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-bg.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-by.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-ca.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-ch.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-cy.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-cz.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-de.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-dk.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-es.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-fi.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-fr.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-gb.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-gr.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-hr.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-hu.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-ie.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-it.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-li.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-lt.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-lu.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-lv.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-nl.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-no.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-pl.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-pt.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-ro.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-rs.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-ru.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-se.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-si.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-sk.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-ua.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-us.png +0 -0
- data/lib/assets/images/flags/countries/small/flag-xx.png +0 -0
- data/lib/assets/images/flags/countries/small/square-at.png +0 -0
- data/lib/assets/images/flags/countries/small/square-ba.png +0 -0
- data/lib/assets/images/flags/countries/small/square-be.png +0 -0
- data/lib/assets/images/flags/countries/small/square-bg.png +0 -0
- data/lib/assets/images/flags/countries/small/square-by.png +0 -0
- data/lib/assets/images/flags/countries/small/square-ca.png +0 -0
- data/lib/assets/images/flags/countries/small/square-ch.png +0 -0
- data/lib/assets/images/flags/countries/small/square-cy.png +0 -0
- data/lib/assets/images/flags/countries/small/square-cz.png +0 -0
- data/lib/assets/images/flags/countries/small/square-de.png +0 -0
- data/lib/assets/images/flags/countries/small/square-dk.png +0 -0
- data/lib/assets/images/flags/countries/small/square-es.png +0 -0
- data/lib/assets/images/flags/countries/small/square-fi.png +0 -0
- data/lib/assets/images/flags/countries/small/square-fr.png +0 -0
- data/lib/assets/images/flags/countries/small/square-gb.png +0 -0
- data/lib/assets/images/flags/countries/small/square-gr.png +0 -0
- data/lib/assets/images/flags/countries/small/square-hr.png +0 -0
- data/lib/assets/images/flags/countries/small/square-hu.png +0 -0
- data/lib/assets/images/flags/countries/small/square-ie.png +0 -0
- data/lib/assets/images/flags/countries/small/square-it.png +0 -0
- data/lib/assets/images/flags/countries/small/square-li.png +0 -0
- data/lib/assets/images/flags/countries/small/square-lt.png +0 -0
- data/lib/assets/images/flags/countries/small/square-lu.png +0 -0
- data/lib/assets/images/flags/countries/small/square-lv.png +0 -0
- data/lib/assets/images/flags/countries/small/square-nl.png +0 -0
- data/lib/assets/images/flags/countries/small/square-no.png +0 -0
- data/lib/assets/images/flags/countries/small/square-pl.png +0 -0
- data/lib/assets/images/flags/countries/small/square-pt.png +0 -0
- data/lib/assets/images/flags/countries/small/square-ro.png +0 -0
- data/lib/assets/images/flags/countries/small/square-rs.png +0 -0
- data/lib/assets/images/flags/countries/small/square-ru.png +0 -0
- data/lib/assets/images/flags/countries/small/square-se.png +0 -0
- data/lib/assets/images/flags/countries/small/square-si.png +0 -0
- data/lib/assets/images/flags/countries/small/square-sk.png +0 -0
- data/lib/assets/images/flags/countries/small/square-ua.png +0 -0
- data/lib/assets/images/flags/countries/small/square-us.png +0 -0
- data/lib/assets/images/flags/countries/small/square-xx.png +0 -0
- data/lib/assets/images/flags/flags_cz.png +0 -0
- data/lib/assets/images/flags/flags_de.png +0 -0
- data/lib/assets/images/flags/flags_en.png +0 -0
- data/lib/assets/images/flags/flags_es.png +0 -0
- data/lib/assets/images/flags/flags_fr.png +0 -0
- data/lib/assets/images/flags/flags_it.png +0 -0
- data/lib/assets/images/flags/flags_pl.png +0 -0
- data/lib/assets/images/flags/flags_ru.png +0 -0
- data/lib/assets/images/flags/flags_uk.png +0 -0
- data/lib/assets/images/flags/locales/large/flag-bg.png +0 -0
- data/lib/assets/images/flags/locales/large/flag-cs.png +0 -0
- data/lib/assets/images/flags/locales/large/flag-da.png +0 -0
- data/lib/assets/images/flags/locales/large/flag-de.png +0 -0
- data/lib/assets/images/flags/locales/large/flag-el.png +0 -0
- data/lib/assets/images/flags/locales/large/flag-en.png +0 -0
- data/lib/assets/images/flags/locales/large/flag-es.png +0 -0
- data/lib/assets/images/flags/locales/large/flag-fi.png +0 -0
- data/lib/assets/images/flags/locales/large/flag-fr.png +0 -0
- data/lib/assets/images/flags/locales/large/flag-hr.png +0 -0
- data/lib/assets/images/flags/locales/large/flag-hu.png +0 -0
- data/lib/assets/images/flags/locales/large/flag-it.png +0 -0
- data/lib/assets/images/flags/locales/large/flag-nl.png +0 -0
- data/lib/assets/images/flags/locales/large/flag-pl.png +0 -0
- data/lib/assets/images/flags/locales/large/flag-pt.png +0 -0
- data/lib/assets/images/flags/locales/large/flag-ru.png +0 -0
- data/lib/assets/images/flags/locales/large/flag-sv.png +0 -0
- data/lib/assets/images/flags/locales/large/flag-uk.png +0 -0
- data/lib/assets/images/flags/locales/large/flag-xx.png +0 -0
- data/lib/assets/images/flags/locales/large/square-bg.png +0 -0
- data/lib/assets/images/flags/locales/large/square-cs.png +0 -0
- data/lib/assets/images/flags/locales/large/square-da.png +0 -0
- data/lib/assets/images/flags/locales/large/square-de.png +0 -0
- data/lib/assets/images/flags/locales/large/square-el.png +0 -0
- data/lib/assets/images/flags/locales/large/square-en.png +0 -0
- data/lib/assets/images/flags/locales/large/square-es.png +0 -0
- data/lib/assets/images/flags/locales/large/square-fi.png +0 -0
- data/lib/assets/images/flags/locales/large/square-fr.png +0 -0
- data/lib/assets/images/flags/locales/large/square-hr.png +0 -0
- data/lib/assets/images/flags/locales/large/square-hu.png +0 -0
- data/lib/assets/images/flags/locales/large/square-it.png +0 -0
- data/lib/assets/images/flags/locales/large/square-nl.png +0 -0
- data/lib/assets/images/flags/locales/large/square-pl.png +0 -0
- data/lib/assets/images/flags/locales/large/square-pt.png +0 -0
- data/lib/assets/images/flags/locales/large/square-ru.png +0 -0
- data/lib/assets/images/flags/locales/large/square-sv.png +0 -0
- data/lib/assets/images/flags/locales/large/square-uk.png +0 -0
- data/lib/assets/images/flags/locales/large/square-xx.png +0 -0
- data/lib/assets/images/flags/locales/medium/flag-bg.png +0 -0
- data/lib/assets/images/flags/locales/medium/flag-cs.png +0 -0
- data/lib/assets/images/flags/locales/medium/flag-da.png +0 -0
- data/lib/assets/images/flags/locales/medium/flag-de.png +0 -0
- data/lib/assets/images/flags/locales/medium/flag-el.png +0 -0
- data/lib/assets/images/flags/locales/medium/flag-en.png +0 -0
- data/lib/assets/images/flags/locales/medium/flag-es.png +0 -0
- data/lib/assets/images/flags/locales/medium/flag-fi.png +0 -0
- data/lib/assets/images/flags/locales/medium/flag-fr.png +0 -0
- data/lib/assets/images/flags/locales/medium/flag-hr.png +0 -0
- data/lib/assets/images/flags/locales/medium/flag-hu.png +0 -0
- data/lib/assets/images/flags/locales/medium/flag-it.png +0 -0
- data/lib/assets/images/flags/locales/medium/flag-nl.png +0 -0
- data/lib/assets/images/flags/locales/medium/flag-pl.png +0 -0
- data/lib/assets/images/flags/locales/medium/flag-pt.png +0 -0
- data/lib/assets/images/flags/locales/medium/flag-ru.png +0 -0
- data/lib/assets/images/flags/locales/medium/flag-sv.png +0 -0
- data/lib/assets/images/flags/locales/medium/flag-uk.png +0 -0
- data/lib/assets/images/flags/locales/medium/flag-xx.png +0 -0
- data/lib/assets/images/flags/locales/medium/square-bg.png +0 -0
- data/lib/assets/images/flags/locales/medium/square-cs.png +0 -0
- data/lib/assets/images/flags/locales/medium/square-da.png +0 -0
- data/lib/assets/images/flags/locales/medium/square-de.png +0 -0
- data/lib/assets/images/flags/locales/medium/square-el.png +0 -0
- data/lib/assets/images/flags/locales/medium/square-en.png +0 -0
- data/lib/assets/images/flags/locales/medium/square-es.png +0 -0
- data/lib/assets/images/flags/locales/medium/square-fi.png +0 -0
- data/lib/assets/images/flags/locales/medium/square-fr.png +0 -0
- data/lib/assets/images/flags/locales/medium/square-hr.png +0 -0
- data/lib/assets/images/flags/locales/medium/square-hu.png +0 -0
- data/lib/assets/images/flags/locales/medium/square-it.png +0 -0
- data/lib/assets/images/flags/locales/medium/square-nl.png +0 -0
- data/lib/assets/images/flags/locales/medium/square-pl.png +0 -0
- data/lib/assets/images/flags/locales/medium/square-pt.png +0 -0
- data/lib/assets/images/flags/locales/medium/square-ru.png +0 -0
- data/lib/assets/images/flags/locales/medium/square-sv.png +0 -0
- data/lib/assets/images/flags/locales/medium/square-uk.png +0 -0
- data/lib/assets/images/flags/locales/medium/square-xx.png +0 -0
- data/lib/assets/images/flags/locales/small/flag-bg.png +0 -0
- data/lib/assets/images/flags/locales/small/flag-cs.png +0 -0
- data/lib/assets/images/flags/locales/small/flag-da.png +0 -0
- data/lib/assets/images/flags/locales/small/flag-de.png +0 -0
- data/lib/assets/images/flags/locales/small/flag-el.png +0 -0
- data/lib/assets/images/flags/locales/small/flag-en.png +0 -0
- data/lib/assets/images/flags/locales/small/flag-es.png +0 -0
- data/lib/assets/images/flags/locales/small/flag-fi.png +0 -0
- data/lib/assets/images/flags/locales/small/flag-fr.png +0 -0
- data/lib/assets/images/flags/locales/small/flag-hr.png +0 -0
- data/lib/assets/images/flags/locales/small/flag-hu.png +0 -0
- data/lib/assets/images/flags/locales/small/flag-it.png +0 -0
- data/lib/assets/images/flags/locales/small/flag-nl.png +0 -0
- data/lib/assets/images/flags/locales/small/flag-pl.png +0 -0
- data/lib/assets/images/flags/locales/small/flag-pt.png +0 -0
- data/lib/assets/images/flags/locales/small/flag-ru.png +0 -0
- data/lib/assets/images/flags/locales/small/flag-sv.png +0 -0
- data/lib/assets/images/flags/locales/small/flag-uk.png +0 -0
- data/lib/assets/images/flags/locales/small/flag-xx.png +0 -0
- data/lib/assets/images/flags/locales/small/square-bg.png +0 -0
- data/lib/assets/images/flags/locales/small/square-cs.png +0 -0
- data/lib/assets/images/flags/locales/small/square-da.png +0 -0
- data/lib/assets/images/flags/locales/small/square-de.png +0 -0
- data/lib/assets/images/flags/locales/small/square-el.png +0 -0
- data/lib/assets/images/flags/locales/small/square-en.png +0 -0
- data/lib/assets/images/flags/locales/small/square-es.png +0 -0
- data/lib/assets/images/flags/locales/small/square-fi.png +0 -0
- data/lib/assets/images/flags/locales/small/square-fr.png +0 -0
- data/lib/assets/images/flags/locales/small/square-hr.png +0 -0
- data/lib/assets/images/flags/locales/small/square-hu.png +0 -0
- data/lib/assets/images/flags/locales/small/square-it.png +0 -0
- data/lib/assets/images/flags/locales/small/square-nl.png +0 -0
- data/lib/assets/images/flags/locales/small/square-pl.png +0 -0
- data/lib/assets/images/flags/locales/small/square-pt.png +0 -0
- data/lib/assets/images/flags/locales/small/square-ru.png +0 -0
- data/lib/assets/images/flags/locales/small/square-sv.png +0 -0
- data/lib/assets/images/flags/locales/small/square-uk.png +0 -0
- data/lib/assets/images/flags/locales/small/square-xx.png +0 -0
- data/lib/generators/magic_locales/install_generator.rb +57 -0
- data/lib/generators/magic_locales/templates/locale_seeds.rb +253 -0
- data/lib/generators/magic_locales/templates/magic_logales_migration.rb +52 -0
- data/lib/magic_locales/flag_helper.rb +25 -0
- data/lib/magic_locales/globalized_fields.rb +50 -0
- data/lib/magic_locales/magic_locale_helper.rb +56 -0
- data/lib/magic_locales/rails.rb +14 -0
- data/lib/magic_locales/railtie.rb +14 -0
- data/lib/magic_locales/version.rb +3 -0
- data/lib/magic_locales.rb +48 -0
- data/lib/tasks/magic_locales_tasks.rake +4 -0
- data/spec/dummy/README.rdoc +28 -0
- data/spec/dummy/Rakefile +6 -0
- data/spec/dummy/app/assets/javascripts/application.js +13 -0
- data/spec/dummy/app/assets/stylesheets/application.css +15 -0
- data/spec/dummy/app/controllers/application_controller.rb +13 -0
- data/spec/dummy/app/controllers/pages_controller.rb +7 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/models/user.rb +2 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/app/views/pages/start.html.erb +4 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/bin/setup +29 -0
- data/spec/dummy/config/application.rb +32 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +41 -0
- data/spec/dummy/config/environments/production.rb +79 -0
- data/spec/dummy/config/environments/test.rb +42 -0
- data/spec/dummy/config/initializers/assets.rb +11 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +4 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/de.yml +23 -0
- data/spec/dummy/config/locales/en.yml +23 -0
- data/spec/dummy/config/routes.rb +69 -0
- data/spec/dummy/config/secrets.yml +22 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/20150326132056_create_users.rb +10 -0
- data/spec/dummy/db/migrate/20150327111103_add_magic_locales.rb +52 -0
- data/spec/dummy/db/schema.rb +55 -0
- data/spec/dummy/db/seeds/locales.rb +253 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +5867 -0
- data/spec/dummy/log/test.log +678 -0
- data/spec/dummy/public/404.html +67 -0
- data/spec/dummy/public/422.html +67 -0
- data/spec/dummy/public/500.html +66 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/024ec9501b30fe45282911b840b95ffd +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/02e9e067530411f9e8123dca02f6ff7f +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/074e9fbce40e24f8b28b1fc419afd07a +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/21f772d42fa066bbb2690192ed5ed28e +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/2411c11cae47b66bae08066a80d33e61 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/269c6b04e68cc5602d3ee011d00fcc05 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/293b3165375686f4941a8a967c3b2fec +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/370393cb1156c25fa00a39d653697c8d +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/41d8cb90d821f2faa18b0be59347d510 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/42db62a71d5a47a160d8038d54834f08 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/48f57106a764c5f5e4876c1ab8be9ca9 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/5465f2e305aaf65b93498c3a5d9aebc2 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/56e985588935cfd4d641219a1584f915 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/5735ad5d8f92eda6585edd72f471470c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/59ab73a37d5a12d11b3365666bd0d8d6 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/646c34fdfbbd07273fd5021aa010ff84 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/6a2b720a99cba7ffe285776300e1ae8a +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/6d2720be6b7611d63ad724de6855d329 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/6e13c429fec3bb2c4462ce5fccccc207 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/6e95a606c68bf03114949988a1d00a93 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/7132c3d0b265177e337d319046310c94 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/85aa152164ab917381b159865995d714 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/8f095dc51026dd316e721df9b6264f1f +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/92519516b5581b79a3f015efca646527 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/a24b7203c0701cdd550ac682572308d9 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/a5d5de529f675db47e45239d04813511 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/ace9e4bc7b337ae5b1a74c6c320c741c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/b79f7e12174354c395efcaf0d45e8a11 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/c0fb3be9dbb3bc8844922eaff0d55201 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/c1c793bef76a3aae9123e4df19d92c21 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d3d39ac7e36a2e7a3554834eaa26669c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/ef972caaba894735135ce2f663a012ce +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f03bb1af911f80ff9df0283b3a788a63 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f30844584fa4b683673368e5a23eed7f +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/fb084b448735966191ed041270ff5212 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/ffe3973c98878fae13cf4974dee3ae68 +0 -0
- data/spec/dummy/tmp/pids/server.pid +1 -0
- data/spec/models/magic_locales/association_spec.rb +60 -0
- data/spec/models/magic_locales/language_spec.rb +15 -0
- data/spec/models/magic_locales/locale_spec.rb +33 -0
- data/spec/models/user_spec.rb +14 -0
- data/spec/rails_helper.rb +51 -0
- data/spec/spec_helper.rb +87 -0
- metadata +688 -0
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'rails/generators/migration'
|
2
|
+
|
3
|
+
module MagicLocales
|
4
|
+
module Generators
|
5
|
+
class InstallGenerator < ::Rails::Generators::Base
|
6
|
+
include Rails::Generators::Migration
|
7
|
+
source_root File.expand_path('../templates', __FILE__)
|
8
|
+
desc "add magic_locales migrations"
|
9
|
+
|
10
|
+
def self.next_migration_number(path)
|
11
|
+
unless @prev_migration_nr
|
12
|
+
@prev_migration_nr = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i
|
13
|
+
else
|
14
|
+
@prev_migration_nr += 1
|
15
|
+
end
|
16
|
+
@prev_migration_nr.to_s
|
17
|
+
end
|
18
|
+
|
19
|
+
def copy_migrations
|
20
|
+
migration_template( "magic_logales_migration.rb", "db/migrate/add_magic_locales.rb" )
|
21
|
+
end
|
22
|
+
|
23
|
+
def create_seeds_folder
|
24
|
+
empty_directory( "db/seeds" )
|
25
|
+
end
|
26
|
+
|
27
|
+
desc "add country-seed file"
|
28
|
+
def copy_country_seeds
|
29
|
+
copy_file( "locale_seeds.rb", "db/seeds/locales.rb" )
|
30
|
+
end
|
31
|
+
|
32
|
+
# => desc "add magic_addresses initialitzer"
|
33
|
+
# => def copy_mgca_initialitzer
|
34
|
+
# => copy_file( "magic_initializer.rb", "config/initializers/magic_addresses.rb" )
|
35
|
+
# => end
|
36
|
+
|
37
|
+
desc "add magic_addresses routes"
|
38
|
+
def copy_mgca_routes
|
39
|
+
route <<-ROUTE
|
40
|
+
|
41
|
+
scope :mgclang, module: :magic_locales do
|
42
|
+
resources :locales do
|
43
|
+
get "trigger/:state", action: :trigger, on: :member, as: :trigger
|
44
|
+
end
|
45
|
+
get "/" => "locales#index"
|
46
|
+
end
|
47
|
+
get "/change-locale/:locale", controller: "magic_locales/locales", action: :change_locale, as: :change_locale
|
48
|
+
|
49
|
+
ROUTE
|
50
|
+
end
|
51
|
+
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,253 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
puts "MagicLocales seed default locales"
|
4
|
+
|
5
|
+
ML_SYSTEM_LOCALES = %w(cs de en it pl ru)
|
6
|
+
|
7
|
+
ML_MAGIC_LOCALES = {
|
8
|
+
"bg" => {
|
9
|
+
"translations_attributes"=>[
|
10
|
+
{:locale=>"en", :name=>"Bulgarian"},
|
11
|
+
{:locale=>"cs", :name=>"bulharština"},
|
12
|
+
{:locale=>"de", :name=>"Bulgarisch"},
|
13
|
+
{:locale=>"es", :name=>"Búlgaro"},
|
14
|
+
{:locale=>"fr", :name=>"bulgare"},
|
15
|
+
{:locale=>"it", :name=>"Bulgaro"},
|
16
|
+
{:locale=>"pl", :name=>"bułgarski"},
|
17
|
+
{:locale=>"ru", :name=>"болгарский"}
|
18
|
+
],
|
19
|
+
"natural_name"=>"Български"
|
20
|
+
},
|
21
|
+
"cs" => {
|
22
|
+
"translations_attributes"=>[
|
23
|
+
{:locale=>"en", :name=>"Czech"},
|
24
|
+
{:locale=>"cs", :name=>"čeština"},
|
25
|
+
{:locale=>"de", :name=>"Tschechisch"},
|
26
|
+
{:locale=>"es", :name=>"Checo"},
|
27
|
+
{:locale=>"fr", :name=>"tchèque"},
|
28
|
+
{:locale=>"it", :name=>"Ceco"},
|
29
|
+
{:locale=>"pl", :name=>"czeski"},
|
30
|
+
{:locale=>"ru", :name=>"чешский"}
|
31
|
+
],
|
32
|
+
"natural_name"=>"čeština"
|
33
|
+
},
|
34
|
+
"da" => {
|
35
|
+
"translations_attributes"=>[
|
36
|
+
{:locale=>"en", :name=>"Danish"},
|
37
|
+
{:locale=>"cs", :name=>"dánština"},
|
38
|
+
{:locale=>"de", :name=>"Dänisch"},
|
39
|
+
{:locale=>"es", :name=>"Danés"},
|
40
|
+
{:locale=>"fr", :name=>"danois"},
|
41
|
+
{:locale=>"it", :name=>"Danese"},
|
42
|
+
{:locale=>"pl", :name=>"duński"},
|
43
|
+
{:locale=>"ru", :name=>"датский"}
|
44
|
+
],
|
45
|
+
"natural_name"=>"dansk"
|
46
|
+
},
|
47
|
+
"nl" => {
|
48
|
+
"translations_attributes"=>[
|
49
|
+
{:locale=>"en", :name=>"Dutch"},
|
50
|
+
{:locale=>"cs", :name=>"nizozemština"},
|
51
|
+
{:locale=>"de", :name=>"Niederländisch"},
|
52
|
+
{:locale=>"es", :name=>"Holandés, Flamenco"},
|
53
|
+
{:locale=>"fr", :name=>"néerlandais"},
|
54
|
+
{:locale=>"it", :name=>"Olandese"},
|
55
|
+
{:locale=>"pl", :name=>"holenderski"},
|
56
|
+
{:locale=>"ru", :name=>"голландский"}
|
57
|
+
],
|
58
|
+
"natural_name"=>"Nederlands"
|
59
|
+
},
|
60
|
+
"en" => {
|
61
|
+
"natural_name"=>"English",
|
62
|
+
"translations_attributes"=>[
|
63
|
+
{:locale=>"en", :name=>"English"},
|
64
|
+
{:locale=>"cs", :name=>"angličtina"},
|
65
|
+
{:locale=>"de", :name=>"Englisch"},
|
66
|
+
{:locale=>"es", :name=>"Inglés"},
|
67
|
+
{:locale=>"fr", :name=>"anglais"},
|
68
|
+
{:locale=>"it", :name=>"Inglese"},
|
69
|
+
{:locale=>"pl", :name=>"angielski"},
|
70
|
+
{:locale=>"ru", :name=>"английский"}
|
71
|
+
]
|
72
|
+
},
|
73
|
+
"fi" => {
|
74
|
+
"translations_attributes"=>[
|
75
|
+
{:locale=>"en", :name=>"Finnish"},
|
76
|
+
{:locale=>"cs", :name=>"finština"},
|
77
|
+
{:locale=>"de", :name=>"Finnisch"},
|
78
|
+
{:locale=>"es", :name=>"Finés"},
|
79
|
+
{:locale=>"fr", :name=>"finnois"},
|
80
|
+
{:locale=>"it", :name=>"Finlandese"},
|
81
|
+
{:locale=>"pl", :name=>"fiński"},
|
82
|
+
{:locale=>"ru", :name=>"финский"}
|
83
|
+
],
|
84
|
+
"natural_name"=>"suomi"
|
85
|
+
},
|
86
|
+
"fr" => {
|
87
|
+
"translations_attributes"=>[
|
88
|
+
{:locale=>"en", :name=>"French"},
|
89
|
+
{:locale=>"cs", :name=>"francouzština"},
|
90
|
+
{:locale=>"de", :name=>"Französisch"},
|
91
|
+
{:locale=>"es", :name=>"Francés"},
|
92
|
+
{:locale=>"fr", :name=>"français"},
|
93
|
+
{:locale=>"it", :name=>"Francese"},
|
94
|
+
{:locale=>"pl", :name=>"francuski"},
|
95
|
+
{:locale=>"ru", :name=>"французский"}
|
96
|
+
],
|
97
|
+
"natural_name"=>"français"
|
98
|
+
},
|
99
|
+
"de" => {
|
100
|
+
"translations_attributes"=>[
|
101
|
+
{:locale=>"en", :name=>"German"},
|
102
|
+
{:locale=>"cs", :name=>"němčina"},
|
103
|
+
{:locale=>"de", :name=>"Deutsch"},
|
104
|
+
{:locale=>"es", :name=>"Alemán"},
|
105
|
+
{:locale=>"fr", :name=>"allemand"},
|
106
|
+
{:locale=>"it", :name=>"Tedesco"},
|
107
|
+
{:locale=>"pl", :name=>"niemiecki"},
|
108
|
+
{:locale=>"ru", :name=>"немецкий"}
|
109
|
+
],
|
110
|
+
"natural_name"=>"Deutsch"
|
111
|
+
},
|
112
|
+
"el" => {
|
113
|
+
"translations_attributes"=>[
|
114
|
+
{:locale=>"en", :name=>"Greek, Modern (1453-)"},
|
115
|
+
{:locale=>"cs", :name=>"řečtina, moderní (1453-)"},
|
116
|
+
{:locale=>"de", :name=>"Neugriechisch (ab 1453)"},
|
117
|
+
{:locale=>"es", :name=>"Griego Moderno (>1453)"},
|
118
|
+
{:locale=>"fr", :name=>"grec moderne (après 1453)"},
|
119
|
+
{:locale=>"it", :name=>"Greco moderno (1453-)"},
|
120
|
+
{:locale=>"pl", :name=>"grecki współczesny (1453-)"},
|
121
|
+
{:locale=>"ru", :name=>"греческий (с 1453)"}
|
122
|
+
],
|
123
|
+
"natural_name"=>"Ελληνικά"
|
124
|
+
},
|
125
|
+
"hr" => {
|
126
|
+
"translations_attributes"=>[
|
127
|
+
{:locale=>"en", :name=>"Croatian"},
|
128
|
+
{:locale=>"cs", :name=>"chorvatština"},
|
129
|
+
{:locale=>"de", :name=>"Kroatisch"},
|
130
|
+
{:locale=>"es", :name=>"Croata"},
|
131
|
+
{:locale=>"fr", :name=>"croate"},
|
132
|
+
{:locale=>"it", :name=>"Croato"},
|
133
|
+
{:locale=>"pl", :name=>"chorwacki"},
|
134
|
+
{:locale=>"ru", :name=>"хорватский"}
|
135
|
+
],
|
136
|
+
"natural_name"=>"hrvatski"
|
137
|
+
},
|
138
|
+
"hu" => {
|
139
|
+
"translations_attributes"=>[
|
140
|
+
{:locale=>"en", :name=>"Hungarian"},
|
141
|
+
{:locale=>"cs", :name=>"maďarština"},
|
142
|
+
{:locale=>"de", :name=>"Ungarisch"},
|
143
|
+
{:locale=>"es", :name=>"Húngaro"},
|
144
|
+
{:locale=>"fr", :name=>"hongrois"},
|
145
|
+
{:locale=>"it", :name=>"Ungherese"},
|
146
|
+
{:locale=>"pl", :name=>"węgierski"},
|
147
|
+
{:locale=>"ru", :name=>"венгерский"}
|
148
|
+
],
|
149
|
+
"natural_name"=>"magyar"
|
150
|
+
},
|
151
|
+
"it" => {
|
152
|
+
"translations_attributes"=>[
|
153
|
+
{:locale=>"en", :name=>"Italian"},
|
154
|
+
{:locale=>"cs", :name=>"italština"},
|
155
|
+
{:locale=>"de", :name=>"Italienisch"},
|
156
|
+
{:locale=>"es", :name=>"Italiano"},
|
157
|
+
{:locale=>"fr", :name=>"italien"},
|
158
|
+
{:locale=>"it", :name=>"Italiano"},
|
159
|
+
{:locale=>"pl", :name=>"włoski"},
|
160
|
+
{:locale=>"ru", :name=>"итальянский"}
|
161
|
+
],
|
162
|
+
"natural_name"=>"Italiano"
|
163
|
+
},
|
164
|
+
"pl" => {
|
165
|
+
"translations_attributes"=>[
|
166
|
+
{:locale=>"en", :name=>"Polish"},
|
167
|
+
{:locale=>"cs", :name=>"polština"},
|
168
|
+
{:locale=>"de", :name=>"Polnisch"},
|
169
|
+
{:locale=>"es", :name=>"Polaco"},
|
170
|
+
{:locale=>"fr", :name=>"polonais"},
|
171
|
+
{:locale=>"it", :name=>"Polacco"},
|
172
|
+
{:locale=>"pl", :name=>"polski"},
|
173
|
+
{:locale=>"ru", :name=>"польский"}
|
174
|
+
],
|
175
|
+
"natural_name"=>"polski"
|
176
|
+
},
|
177
|
+
"pt" => {
|
178
|
+
"translations_attributes"=>[
|
179
|
+
{:locale=>"en", :name=>"Portuguese"},
|
180
|
+
{:locale=>"cs", :name=>"portugalština"},
|
181
|
+
{:locale=>"de", :name=>"Portugiesisch"},
|
182
|
+
{:locale=>"es", :name=>"Portugués"},
|
183
|
+
{:locale=>"fr", :name=>"portugais"},
|
184
|
+
{:locale=>"it", :name=>"Portoghese"},
|
185
|
+
{:locale=>"pl", :name=>"portugalski"},
|
186
|
+
{:locale=>"ru", :name=>"португальский"}
|
187
|
+
],
|
188
|
+
"natural_name"=>"Português"
|
189
|
+
},
|
190
|
+
"ru" => {
|
191
|
+
"translations_attributes"=>[
|
192
|
+
{:locale=>"en", :name=>"Russian"},
|
193
|
+
{:locale=>"cs", :name=>"ruština"},
|
194
|
+
{:locale=>"de", :name=>"Russisch"},
|
195
|
+
{:locale=>"es", :name=>"Ruso"},
|
196
|
+
{:locale=>"fr", :name=>"russe"},
|
197
|
+
{:locale=>"it", :name=>"Russo"},
|
198
|
+
{:locale=>"pl", :name=>"rosyjski"},
|
199
|
+
{:locale=>"ru", :name=>"русский"}
|
200
|
+
],
|
201
|
+
"natural_name"=>"русский"
|
202
|
+
},
|
203
|
+
"es" => {
|
204
|
+
"translations_attributes"=>[
|
205
|
+
{:locale=>"en", :name=>"Spanish"},
|
206
|
+
{:locale=>"cs", :name=>"španělština"},
|
207
|
+
{:locale=>"de", :name=>"Spanisch (Kastilisch)"},
|
208
|
+
{:locale=>"es", :name=>"Español"},
|
209
|
+
{:locale=>"fr", :name=>"castillan"},
|
210
|
+
{:locale=>"it", :name=>"Spagnolo"},
|
211
|
+
{:locale=>"pl", :name=>"hiszpański"},
|
212
|
+
{:locale=>"ru", :name=>"испанский"}
|
213
|
+
],
|
214
|
+
"natural_name"=>"Español"
|
215
|
+
},
|
216
|
+
"sv" => {
|
217
|
+
"translations_attributes"=>[
|
218
|
+
{:locale=>"en", :name=>"Swedish"},
|
219
|
+
{:locale=>"cs", :name=>"švédština"},
|
220
|
+
{:locale=>"de", :name=>"Schwedisch"},
|
221
|
+
{:locale=>"es", :name=>"Sueco"},
|
222
|
+
{:locale=>"fr", :name=>"suédois"},
|
223
|
+
{:locale=>"it", :name=>"Svedese"},
|
224
|
+
{:locale=>"pl", :name=>"szwedzki"},
|
225
|
+
{:locale=>"ru", :name=>"шведский"}
|
226
|
+
],
|
227
|
+
"natural_name"=>"Svenska"
|
228
|
+
},
|
229
|
+
"uk" => {
|
230
|
+
"translations_attributes"=>[
|
231
|
+
{:locale=>"en", :name=>"Ukrainian"},
|
232
|
+
{:locale=>"cs", :name=>"ukrajinština"},
|
233
|
+
{:locale=>"de", :name=>"Ukrainisch"},
|
234
|
+
{:locale=>"es", :name=>"Ukranio"},
|
235
|
+
{:locale=>"fr", :name=>"ukrainien"},
|
236
|
+
{:locale=>"it", :name=>"Ucraino"},
|
237
|
+
{:locale=>"pl", :name=>"ukraiński"},
|
238
|
+
{:locale=>"ru", :name=>"украинский"}
|
239
|
+
],
|
240
|
+
"natural_name"=>"українська"
|
241
|
+
}
|
242
|
+
}
|
243
|
+
|
244
|
+
|
245
|
+
ML_MAGIC_LOCALES.each do |key, params|
|
246
|
+
l_state = ML_SYSTEM_LOCALES.include?( key.to_s ) ? 'active' : 'inactive'
|
247
|
+
l_state = "live" if key.to_s == I18n.default_locale.to_s
|
248
|
+
MagicLocales::Locale.create!( params.merge({ iso_code: key.to_s, locale_state: l_state }) )
|
249
|
+
end
|
250
|
+
|
251
|
+
|
252
|
+
puts "MagicLocales finished #{MagicLocales::Locale.all.count} locales"
|
253
|
+
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
class AddMagicLocales < ActiveRecord::Migration
|
3
|
+
def up
|
4
|
+
|
5
|
+
#
|
6
|
+
## Locales
|
7
|
+
create_table :mgclang_locales do |t|
|
8
|
+
# t.string :name
|
9
|
+
t.string :natural_name
|
10
|
+
t.string :iso_code
|
11
|
+
t.string :locale_state, default: "inactive"
|
12
|
+
t.timestamps
|
13
|
+
end
|
14
|
+
|
15
|
+
add_index :mgclang_locales, :iso_code, unique: true
|
16
|
+
|
17
|
+
MagicLocales::Locale.create_translation_table! :name => :string
|
18
|
+
|
19
|
+
|
20
|
+
#
|
21
|
+
## (spoken) Languages
|
22
|
+
create_table :mgclang_languages do |t|
|
23
|
+
t.string :level
|
24
|
+
t.references :owner, polymorphic: true
|
25
|
+
t.references :locale
|
26
|
+
t.timestamps
|
27
|
+
end
|
28
|
+
|
29
|
+
add_index :mgclang_languages, [:owner_type, :owner_id]
|
30
|
+
add_index :mgclang_languages, :locale_id
|
31
|
+
|
32
|
+
|
33
|
+
#
|
34
|
+
## seed default Locales
|
35
|
+
load "#{ Rails.root }/db/seeds/locales.rb"
|
36
|
+
|
37
|
+
|
38
|
+
end
|
39
|
+
def down
|
40
|
+
|
41
|
+
## Addresses
|
42
|
+
remove_index :mgclang_locales, :iso_code
|
43
|
+
drop_table :mgclang_locales
|
44
|
+
MagicAddresses::Address.drop_translation_table!
|
45
|
+
|
46
|
+
|
47
|
+
remove_index :mgclang_languages, :locale_id
|
48
|
+
remove_index :mgclang_languages, [:owner_type, :owner_id]
|
49
|
+
drop_table :mgclang_languages
|
50
|
+
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require "action_view/helpers/asset_tag_helper"
|
2
|
+
|
3
|
+
# encoding: utf-8
|
4
|
+
module FlagHelper
|
5
|
+
|
6
|
+
|
7
|
+
def flag( lcl = I18n.locale.to_s )
|
8
|
+
# raw( image_tag( "flags/flags_#{lcl}.png", class: "flag" ) )
|
9
|
+
locale_flag( lcl, "small" )
|
10
|
+
end
|
11
|
+
|
12
|
+
def locale_flag( lcl = I18n.locale.to_s, format = "small" )
|
13
|
+
format = "medium" unless %w(small medium large).include?(format)
|
14
|
+
lcl = "xx" unless %w(en bg cs da de el es fi fr hr hu it nl pl pt ru sv uk).include?( lcl.to_s.downcase )
|
15
|
+
raw( image_tag( "flags/locales/#{format}/flag-#{lcl.to_s.downcase}.png", class: "flag" ) )
|
16
|
+
end
|
17
|
+
|
18
|
+
def country_flag( lcl = I18n.locale.to_s, format = "small" )
|
19
|
+
format = "medium" unless %w(small medium large).include?(format)
|
20
|
+
lcl = "xx" unless %w(at by be ba bg ca hr cy cz dk fi fr de gr hu ie it lv li lt lu nl no pl pt ro ru rs sk si es se ch ua gb us).include?( lcl.to_s.downcase )
|
21
|
+
raw( image_tag( "flags/countries/#{format}/flag-#{lcl.to_s.downcase}.png", class: "flag" ) )
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
## https://github.com/fidel/batch_translations/
|
2
|
+
module ActionView
|
3
|
+
module Helpers
|
4
|
+
class FormBuilder
|
5
|
+
def globalize_fields_for(locale, *args, &proc)
|
6
|
+
raise ArgumentError, "Missing block" unless block_given?
|
7
|
+
@index = @index ? @index + 1 : 1
|
8
|
+
object_name = "#{@object_name}[translations_attributes][#{@index}]"
|
9
|
+
object = @object.translations.find_by_locale locale.to_s
|
10
|
+
@template.concat @template.hidden_field_tag("#{object_name}[id]", object ? object.id : "")
|
11
|
+
@template.concat @template.hidden_field_tag("#{object_name}[locale]", locale)
|
12
|
+
if @template.respond_to? :simple_fields_for
|
13
|
+
@template.simple_fields_for(object_name, object, *args, &proc)
|
14
|
+
else
|
15
|
+
@template.fields_for(object_name, object, *args, &proc)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
module Globalize
|
23
|
+
module Model
|
24
|
+
module ActiveRecord
|
25
|
+
module Translated
|
26
|
+
module Callbacks
|
27
|
+
def enable_nested_attributes
|
28
|
+
accepts_nested_attributes_for :translations
|
29
|
+
end
|
30
|
+
end
|
31
|
+
module InstanceMethods
|
32
|
+
def after_save
|
33
|
+
init_translations
|
34
|
+
end
|
35
|
+
# Builds an empty translation for each available
|
36
|
+
# locale not in use after creation
|
37
|
+
def init_translations
|
38
|
+
I18n.translated_locales.reject{|key| key == :root }.each do |locale|
|
39
|
+
translation = self.translations.find_by_locale locale.to_s
|
40
|
+
if translation.nil?
|
41
|
+
translations.build :locale => locale
|
42
|
+
save
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|