localizer_rails 0.1.0

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.
Files changed (260) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +191 -0
  4. data/Rakefile +34 -0
  5. data/app/assets/images/flags/ad.png +0 -0
  6. data/app/assets/images/flags/ae.png +0 -0
  7. data/app/assets/images/flags/af.png +0 -0
  8. data/app/assets/images/flags/ag.png +0 -0
  9. data/app/assets/images/flags/ai.png +0 -0
  10. data/app/assets/images/flags/al.png +0 -0
  11. data/app/assets/images/flags/am.png +0 -0
  12. data/app/assets/images/flags/an.png +0 -0
  13. data/app/assets/images/flags/ao.png +0 -0
  14. data/app/assets/images/flags/ar.png +0 -0
  15. data/app/assets/images/flags/as.png +0 -0
  16. data/app/assets/images/flags/at.png +0 -0
  17. data/app/assets/images/flags/au.png +0 -0
  18. data/app/assets/images/flags/aw.png +0 -0
  19. data/app/assets/images/flags/ax.png +0 -0
  20. data/app/assets/images/flags/az.png +0 -0
  21. data/app/assets/images/flags/ba.png +0 -0
  22. data/app/assets/images/flags/bb.png +0 -0
  23. data/app/assets/images/flags/bd.png +0 -0
  24. data/app/assets/images/flags/be.png +0 -0
  25. data/app/assets/images/flags/bf.png +0 -0
  26. data/app/assets/images/flags/bg.png +0 -0
  27. data/app/assets/images/flags/bh.png +0 -0
  28. data/app/assets/images/flags/bi.png +0 -0
  29. data/app/assets/images/flags/bj.png +0 -0
  30. data/app/assets/images/flags/bm.png +0 -0
  31. data/app/assets/images/flags/bn.png +0 -0
  32. data/app/assets/images/flags/bo.png +0 -0
  33. data/app/assets/images/flags/br.png +0 -0
  34. data/app/assets/images/flags/bs.png +0 -0
  35. data/app/assets/images/flags/bt.png +0 -0
  36. data/app/assets/images/flags/bv.png +0 -0
  37. data/app/assets/images/flags/bw.png +0 -0
  38. data/app/assets/images/flags/by.png +0 -0
  39. data/app/assets/images/flags/bz.png +0 -0
  40. data/app/assets/images/flags/ca.png +0 -0
  41. data/app/assets/images/flags/cc.png +0 -0
  42. data/app/assets/images/flags/cd.png +0 -0
  43. data/app/assets/images/flags/cf.png +0 -0
  44. data/app/assets/images/flags/cg.png +0 -0
  45. data/app/assets/images/flags/ch.png +0 -0
  46. data/app/assets/images/flags/ci.png +0 -0
  47. data/app/assets/images/flags/ck.png +0 -0
  48. data/app/assets/images/flags/cl.png +0 -0
  49. data/app/assets/images/flags/cm.png +0 -0
  50. data/app/assets/images/flags/cn.png +0 -0
  51. data/app/assets/images/flags/co.png +0 -0
  52. data/app/assets/images/flags/cr.png +0 -0
  53. data/app/assets/images/flags/cs.png +0 -0
  54. data/app/assets/images/flags/cu.png +0 -0
  55. data/app/assets/images/flags/cv.png +0 -0
  56. data/app/assets/images/flags/cx.png +0 -0
  57. data/app/assets/images/flags/cy.png +0 -0
  58. data/app/assets/images/flags/cz.png +0 -0
  59. data/app/assets/images/flags/de.png +0 -0
  60. data/app/assets/images/flags/dj.png +0 -0
  61. data/app/assets/images/flags/dk.png +0 -0
  62. data/app/assets/images/flags/dm.png +0 -0
  63. data/app/assets/images/flags/do.png +0 -0
  64. data/app/assets/images/flags/dz.png +0 -0
  65. data/app/assets/images/flags/ec.png +0 -0
  66. data/app/assets/images/flags/ee.png +0 -0
  67. data/app/assets/images/flags/eg.png +0 -0
  68. data/app/assets/images/flags/eh.png +0 -0
  69. data/app/assets/images/flags/en.png +0 -0
  70. data/app/assets/images/flags/er.png +0 -0
  71. data/app/assets/images/flags/es.png +0 -0
  72. data/app/assets/images/flags/et.png +0 -0
  73. data/app/assets/images/flags/fam.png +0 -0
  74. data/app/assets/images/flags/fi.png +0 -0
  75. data/app/assets/images/flags/fj.png +0 -0
  76. data/app/assets/images/flags/fk.png +0 -0
  77. data/app/assets/images/flags/fm.png +0 -0
  78. data/app/assets/images/flags/fo.png +0 -0
  79. data/app/assets/images/flags/fr.png +0 -0
  80. data/app/assets/images/flags/ga.png +0 -0
  81. data/app/assets/images/flags/gb.png +0 -0
  82. data/app/assets/images/flags/gd.png +0 -0
  83. data/app/assets/images/flags/ge.png +0 -0
  84. data/app/assets/images/flags/gh.png +0 -0
  85. data/app/assets/images/flags/gi.png +0 -0
  86. data/app/assets/images/flags/gl.png +0 -0
  87. data/app/assets/images/flags/gm.png +0 -0
  88. data/app/assets/images/flags/gn.png +0 -0
  89. data/app/assets/images/flags/gp.png +0 -0
  90. data/app/assets/images/flags/gq.png +0 -0
  91. data/app/assets/images/flags/gr.png +0 -0
  92. data/app/assets/images/flags/gs.png +0 -0
  93. data/app/assets/images/flags/gt.png +0 -0
  94. data/app/assets/images/flags/gu.png +0 -0
  95. data/app/assets/images/flags/gw.png +0 -0
  96. data/app/assets/images/flags/gy.png +0 -0
  97. data/app/assets/images/flags/hk.png +0 -0
  98. data/app/assets/images/flags/hn.png +0 -0
  99. data/app/assets/images/flags/hr.png +0 -0
  100. data/app/assets/images/flags/ht.png +0 -0
  101. data/app/assets/images/flags/hu.png +0 -0
  102. data/app/assets/images/flags/id.png +0 -0
  103. data/app/assets/images/flags/ie.png +0 -0
  104. data/app/assets/images/flags/il.png +0 -0
  105. data/app/assets/images/flags/in.png +0 -0
  106. data/app/assets/images/flags/io.png +0 -0
  107. data/app/assets/images/flags/iq.png +0 -0
  108. data/app/assets/images/flags/ir.png +0 -0
  109. data/app/assets/images/flags/is.png +0 -0
  110. data/app/assets/images/flags/it.png +0 -0
  111. data/app/assets/images/flags/jm.png +0 -0
  112. data/app/assets/images/flags/jo.png +0 -0
  113. data/app/assets/images/flags/jp.png +0 -0
  114. data/app/assets/images/flags/ke.png +0 -0
  115. data/app/assets/images/flags/kg.png +0 -0
  116. data/app/assets/images/flags/kh.png +0 -0
  117. data/app/assets/images/flags/ki.png +0 -0
  118. data/app/assets/images/flags/km.png +0 -0
  119. data/app/assets/images/flags/kn.png +0 -0
  120. data/app/assets/images/flags/kp.png +0 -0
  121. data/app/assets/images/flags/kr.png +0 -0
  122. data/app/assets/images/flags/kw.png +0 -0
  123. data/app/assets/images/flags/ky.png +0 -0
  124. data/app/assets/images/flags/kz.png +0 -0
  125. data/app/assets/images/flags/la.png +0 -0
  126. data/app/assets/images/flags/lb.png +0 -0
  127. data/app/assets/images/flags/lc.png +0 -0
  128. data/app/assets/images/flags/li.png +0 -0
  129. data/app/assets/images/flags/lk.png +0 -0
  130. data/app/assets/images/flags/lr.png +0 -0
  131. data/app/assets/images/flags/ls.png +0 -0
  132. data/app/assets/images/flags/lt.png +0 -0
  133. data/app/assets/images/flags/lu.png +0 -0
  134. data/app/assets/images/flags/lv.png +0 -0
  135. data/app/assets/images/flags/ly.png +0 -0
  136. data/app/assets/images/flags/ma.png +0 -0
  137. data/app/assets/images/flags/mc.png +0 -0
  138. data/app/assets/images/flags/md.png +0 -0
  139. data/app/assets/images/flags/mg.png +0 -0
  140. data/app/assets/images/flags/mh.png +0 -0
  141. data/app/assets/images/flags/mk.png +0 -0
  142. data/app/assets/images/flags/ml.png +0 -0
  143. data/app/assets/images/flags/mm.png +0 -0
  144. data/app/assets/images/flags/mn.png +0 -0
  145. data/app/assets/images/flags/mo.png +0 -0
  146. data/app/assets/images/flags/mp.png +0 -0
  147. data/app/assets/images/flags/mq.png +0 -0
  148. data/app/assets/images/flags/mr.png +0 -0
  149. data/app/assets/images/flags/ms.png +0 -0
  150. data/app/assets/images/flags/mt.png +0 -0
  151. data/app/assets/images/flags/mu.png +0 -0
  152. data/app/assets/images/flags/mv.png +0 -0
  153. data/app/assets/images/flags/mw.png +0 -0
  154. data/app/assets/images/flags/mx.png +0 -0
  155. data/app/assets/images/flags/my.png +0 -0
  156. data/app/assets/images/flags/mz.png +0 -0
  157. data/app/assets/images/flags/na.png +0 -0
  158. data/app/assets/images/flags/nc.png +0 -0
  159. data/app/assets/images/flags/ne.png +0 -0
  160. data/app/assets/images/flags/nf.png +0 -0
  161. data/app/assets/images/flags/ng.png +0 -0
  162. data/app/assets/images/flags/ni.png +0 -0
  163. data/app/assets/images/flags/nl.png +0 -0
  164. data/app/assets/images/flags/no.png +0 -0
  165. data/app/assets/images/flags/np.png +0 -0
  166. data/app/assets/images/flags/nr.png +0 -0
  167. data/app/assets/images/flags/nu.png +0 -0
  168. data/app/assets/images/flags/nz.png +0 -0
  169. data/app/assets/images/flags/om.png +0 -0
  170. data/app/assets/images/flags/pa.png +0 -0
  171. data/app/assets/images/flags/pe.png +0 -0
  172. data/app/assets/images/flags/pf.png +0 -0
  173. data/app/assets/images/flags/pg.png +0 -0
  174. data/app/assets/images/flags/ph.png +0 -0
  175. data/app/assets/images/flags/pk.png +0 -0
  176. data/app/assets/images/flags/pl.png +0 -0
  177. data/app/assets/images/flags/pm.png +0 -0
  178. data/app/assets/images/flags/pn.png +0 -0
  179. data/app/assets/images/flags/pr.png +0 -0
  180. data/app/assets/images/flags/ps.png +0 -0
  181. data/app/assets/images/flags/pt.png +0 -0
  182. data/app/assets/images/flags/pw.png +0 -0
  183. data/app/assets/images/flags/py.png +0 -0
  184. data/app/assets/images/flags/qa.png +0 -0
  185. data/app/assets/images/flags/ro.png +0 -0
  186. data/app/assets/images/flags/ru.png +0 -0
  187. data/app/assets/images/flags/rw.png +0 -0
  188. data/app/assets/images/flags/sa.png +0 -0
  189. data/app/assets/images/flags/sb.png +0 -0
  190. data/app/assets/images/flags/sc.png +0 -0
  191. data/app/assets/images/flags/sd.png +0 -0
  192. data/app/assets/images/flags/se.png +0 -0
  193. data/app/assets/images/flags/sg.png +0 -0
  194. data/app/assets/images/flags/sh.png +0 -0
  195. data/app/assets/images/flags/si.png +0 -0
  196. data/app/assets/images/flags/sk.png +0 -0
  197. data/app/assets/images/flags/sl.png +0 -0
  198. data/app/assets/images/flags/sm.png +0 -0
  199. data/app/assets/images/flags/sn.png +0 -0
  200. data/app/assets/images/flags/so.png +0 -0
  201. data/app/assets/images/flags/sr.png +0 -0
  202. data/app/assets/images/flags/st.png +0 -0
  203. data/app/assets/images/flags/sv.png +0 -0
  204. data/app/assets/images/flags/sy.png +0 -0
  205. data/app/assets/images/flags/sz.png +0 -0
  206. data/app/assets/images/flags/tc.png +0 -0
  207. data/app/assets/images/flags/td.png +0 -0
  208. data/app/assets/images/flags/tf.png +0 -0
  209. data/app/assets/images/flags/tg.png +0 -0
  210. data/app/assets/images/flags/th.png +0 -0
  211. data/app/assets/images/flags/tj.png +0 -0
  212. data/app/assets/images/flags/tk.png +0 -0
  213. data/app/assets/images/flags/tl.png +0 -0
  214. data/app/assets/images/flags/tm.png +0 -0
  215. data/app/assets/images/flags/tn.png +0 -0
  216. data/app/assets/images/flags/to.png +0 -0
  217. data/app/assets/images/flags/tr.png +0 -0
  218. data/app/assets/images/flags/tt.png +0 -0
  219. data/app/assets/images/flags/tv.png +0 -0
  220. data/app/assets/images/flags/tw.png +0 -0
  221. data/app/assets/images/flags/tz.png +0 -0
  222. data/app/assets/images/flags/ua.png +0 -0
  223. data/app/assets/images/flags/ug.png +0 -0
  224. data/app/assets/images/flags/um.png +0 -0
  225. data/app/assets/images/flags/us.png +0 -0
  226. data/app/assets/images/flags/uy.png +0 -0
  227. data/app/assets/images/flags/uz.png +0 -0
  228. data/app/assets/images/flags/va.png +0 -0
  229. data/app/assets/images/flags/vc.png +0 -0
  230. data/app/assets/images/flags/ve.png +0 -0
  231. data/app/assets/images/flags/vg.png +0 -0
  232. data/app/assets/images/flags/vi.png +0 -0
  233. data/app/assets/images/flags/vn.png +0 -0
  234. data/app/assets/images/flags/vu.png +0 -0
  235. data/app/assets/images/flags/wales.png +0 -0
  236. data/app/assets/images/flags/wf.png +0 -0
  237. data/app/assets/images/flags/ws.png +0 -0
  238. data/app/assets/images/flags/ye.png +0 -0
  239. data/app/assets/images/flags/yt.png +0 -0
  240. data/app/assets/images/flags/za.png +0 -0
  241. data/app/assets/images/flags/zm.png +0 -0
  242. data/app/assets/images/flags/zw.png +0 -0
  243. data/app/assets/stylesheets/localizer_rails/localizer_rails.css.scss +74 -0
  244. data/app/assets/stylesheets/localizer_rails.css +8 -0
  245. data/app/helpers/localizer_rails/localizer_rails_helper.rb +29 -0
  246. data/app/views/localizer_rails/_elements.html.erb +4 -0
  247. data/app/views/localizer_rails/_item.bootstrap.html.erb +18 -0
  248. data/app/views/localizer_rails/_item.html.erb +18 -0
  249. data/app/views/localizer_rails/_language_menu.html.erb +8 -0
  250. data/config/localizer_rails/lang_countries.yml +1018 -0
  251. data/lib/generators/localizer_rails/localizer_rails_generator.rb +119 -0
  252. data/lib/generators/localizer_rails/templates/_header.html.erb +33 -0
  253. data/lib/generators/localizer_rails/templates/kaminari_action_view_extension.rb +30 -0
  254. data/lib/generators/localizer_rails/templates/localizer_rails_prefs.rb +22 -0
  255. data/lib/localizer_rails/engine.rb +15 -0
  256. data/lib/localizer_rails/set_locale.rb +9 -0
  257. data/lib/localizer_rails/version.rb +3 -0
  258. data/lib/localizer_rails.rb +126 -0
  259. data/lib/tasks/localizer_tasks.rake +4 -0
  260. metadata +331 -0
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,74 @@
1
+ .dropdown-menu.locale_menu > li > a span ~ span,
2
+ .dropdown-menu.locale_menu > li > span.loc_menu_active span ~ span {
3
+ margin-left: 4px;
4
+ }
5
+ .dropdown-menu.locale_menu > li {
6
+ white-space: nowrap;
7
+ &.active {
8
+ pointer-events: none;
9
+ & > a {
10
+ pointer-events: none;
11
+ }
12
+ }
13
+ & .menu_flag img {
14
+ vertical-align: baseline;
15
+ border: 1px solid white;
16
+ }
17
+ & > a.loc_menu, & .loc_menu_active {
18
+ padding: 3px 20px;
19
+ }
20
+ & span.loc_menu_active {
21
+ display: block;
22
+ font-style: italic;
23
+ cursor: default;
24
+ &:before {
25
+ content: '\2022';
26
+ color: red;
27
+ font-weight: 800;
28
+ position: relative;
29
+ line-height: 0;
30
+ padding-right: 4px;
31
+ margin-left: -12px;
32
+ width: 26px;
33
+ }
34
+ }
35
+ & span.loc_menu.disabled {
36
+ color: gray;
37
+ }
38
+ & > a.loc_menu {
39
+ &:before {
40
+ content: '\2022';
41
+ visibility: hidden;
42
+ font-weight: 800;
43
+ position: relative;
44
+ padding-right: 4px;
45
+ margin-left: -12px;
46
+ width: 26px;
47
+ }
48
+ }
49
+ }
50
+
51
+ @media (max-width: 767px) {
52
+ .dropdown-menu.locale_menu > li {
53
+ & > span.loc_menu.disabled {
54
+ padding: 5px 15px 5px 25px;
55
+ }
56
+ }
57
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > span.disabled {
58
+ color: #ccc;
59
+ }
60
+ .navbar-default .navbar-nav .open .dropdown-menu > li > span.disabled {
61
+ color: #bbb;
62
+ }
63
+ }
64
+
65
+ ul.scroll-menu {
66
+ overflow: auto;
67
+ -webkit-overflow-scrolling: touch;
68
+ -moz-overflow-scrolling: touch;
69
+ -ms-overflow-scrolling: touch;
70
+ -o-overflow-scrolling: touch;
71
+ overflow-scrolling: touch;
72
+ height: auto;
73
+ max-height: 400px;
74
+ }
@@ -0,0 +1,8 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into localizer.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ *=# require_tree .
6
+ *= require_tree ./localizer_rails
7
+ *= require_self
8
+ */
@@ -0,0 +1,29 @@
1
+ module LocalizerRails
2
+ module LocalizerRailsHelper
3
+
4
+ def country_or_lang_code(code_sym, lang_name)
5
+ # FLAG images
6
+ lang_name[:country_code].blank? ? code_sym.to_s : lang_name[:country_code].downcase
7
+ end
8
+
9
+ def get_lang_name(lang_name)
10
+ which_lang = LocalizerRails::Conf.display_local_language ? :lang_local : :lang_default
11
+ lang_name[which_lang].split(',').first
12
+ end
13
+
14
+ def country_code(lang_name, enclose = [])
15
+ # ex: enclose = ['(',')']
16
+ country_code = lang_name[:country_code].upcase
17
+ enclose_string_within(country_code, enclose)
18
+ end
19
+
20
+ def render_elements(code_sym, lang_name)
21
+ render :partial => 'localizer_rails/elements', :locals => { :code_sym => code_sym, :lang_name => lang_name }
22
+ end
23
+
24
+ def enclose_string_within(str, arr)
25
+ str.blank? || arr.blank? || (arr.count != 2) ? str : "#{arr[0]}#{str}#{arr[1]}"
26
+ end
27
+
28
+ end
29
+ end
@@ -0,0 +1,4 @@
1
+ <span class="menu_flag"><%= image_tag("flags/#{country_or_lang_code(code_sym, lang_name)}.png", :alt => '') %></span>
2
+ <span class="lang_name"><%= get_lang_name(lang_name) %></span>
3
+ <%# remove second argument (array) if ISO code is not to be encased: %>
4
+ <span class="country_code"><%= country_code(lang_name,['[ ',' ]']) %></span>
@@ -0,0 +1,18 @@
1
+ <% if current_page?(page_url) %>
2
+
3
+ <li class="active">
4
+ <a href="<%= page_url %>" disabled="disabled" >
5
+ <%= render_elements(code_sym, lang_name) %>
6
+ </a>
7
+ </li>
8
+
9
+ <% else %>
10
+
11
+ <li>
12
+ <a href="<%= page_url %>" >
13
+ <%= render_elements(code_sym, lang_name) %>
14
+ </a>
15
+ </li>
16
+
17
+ <% end %>
18
+
@@ -0,0 +1,18 @@
1
+ <% if current_page?(page_url) %>
2
+
3
+ <li class="loc_menu_active">
4
+ <span class="loc_menu_active disabled">
5
+ <%= render_elements(code_sym, lang_name) %>
6
+ </span>
7
+ </li>
8
+
9
+ <% else %>
10
+
11
+ <li>
12
+ <a href="<%= page_url %>" class="loc_menu" >
13
+ <%= render_elements(code_sym, lang_name) %>
14
+ </a>
15
+ </li>
16
+
17
+ <% end %>
18
+
@@ -0,0 +1,8 @@
1
+ <% bootstrap = '.bootstrap' unless LocalizerRails.use_bootstrap.blank? %>
2
+
3
+ <% LocalizerRails.active_locales_map.each do |code_sym, lang_name| %>
4
+
5
+ <%= render :partial => "localizer_rails/item#{bootstrap}",
6
+ :locals => { :code_sym => code_sym, :lang_name => lang_name, :page_url => url_for(:locale => code_sym) } %>
7
+
8
+ <% end %>