lalala 4.0.0.dev.219 → 4.0.0.dev.224
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/images/lalala/overlay-logo.png +0 -0
- data/app/assets/javascripts/lalala/modules/helpers.module.js +40 -0
- data/app/assets/javascripts/lalala/modules/init.module.js +4 -2
- data/app/assets/javascripts/lalala/modules/locale_chooser.module.js +4 -0
- data/app/assets/javascripts/lalala/modules/login.module.js +66 -0
- data/app/assets/stylesheets/lalala/base/_mixins.css.scss +19 -0
- data/app/assets/stylesheets/lalala/modules/_login.css.scss +153 -31
- data/app/assets/stylesheets/lalala/modules/_title-bar.css.scss +25 -2
- data/app/views/active_admin/devise/sessions/new.html.erb +43 -0
- data/config/locales/en.yml +512 -0
- data/lib/lalala/ext_i18n.rb +1 -0
- data/lib/lalala/ext_i18n/name_for_locale.rb +9 -0
- data/lib/lalala/version.rb +1 -1
- data/lib/lalala/views/title_bar.rb +2 -2
- data/test/dummy/app/models/article.rb +5 -2
- data/test/dummy/config/application.rb +2 -1
- data/test/dummy/config/locales/en.yml +0 -3
- data/test/dummy/config/locales/nl.yml +2 -0
- data/test/dummy/db/migrate/20131121092946_make_articles_translatable.rb +19 -0
- data/test/dummy/db/schema.rb +12 -2
- data/test/integration/aricles_test.rb +3 -3
- metadata +13 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a7314e8f7a9befcc525c6329eeba49e2b2086ac9
|
4
|
+
data.tar.gz: 8e22778b81fc3a18e08931add4f53da8a11aa6d2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 511a431c0045a716b6cd1a1814e36045dfb00262246c32dcc09c4d9fb8d003f915198322f56b3a9299f57a8a24a12a56de43d045aa96f4ea872e3480c8d9c297
|
7
|
+
data.tar.gz: 408a133d383a8c593b37e12389237d7318f8a18c5fd3afa6ae359e34009978dec815e9ff1f055e42a72aa9cdc78ec576da3b3696812e10591cf84f3ce7758030
|
Binary file
|
@@ -0,0 +1,40 @@
|
|
1
|
+
//
|
2
|
+
// Debounce (from underscore.js)
|
3
|
+
//
|
4
|
+
exports.debounce = function(func, wait, immediate) {
|
5
|
+
var timeout, args, context, timestamp, result;
|
6
|
+
|
7
|
+
// get time helper
|
8
|
+
var getTime = (Date.now || function() {
|
9
|
+
return new Date().getTime();
|
10
|
+
});
|
11
|
+
|
12
|
+
// debounce
|
13
|
+
return function() {
|
14
|
+
context = this;
|
15
|
+
args = arguments;
|
16
|
+
timestamp = getTime();
|
17
|
+
var later = function() {
|
18
|
+
var last = getTime() - timestamp;
|
19
|
+
if (last < wait) {
|
20
|
+
timeout = setTimeout(later, wait - last);
|
21
|
+
} else {
|
22
|
+
timeout = null;
|
23
|
+
if (!immediate) {
|
24
|
+
result = func.apply(context, args);
|
25
|
+
context = args = null;
|
26
|
+
}
|
27
|
+
}
|
28
|
+
};
|
29
|
+
var callNow = immediate && !timeout;
|
30
|
+
if (!timeout) {
|
31
|
+
timeout = setTimeout(later, wait);
|
32
|
+
}
|
33
|
+
if (callNow) {
|
34
|
+
result = func.apply(context, args);
|
35
|
+
context = args = null;
|
36
|
+
}
|
37
|
+
|
38
|
+
return result;
|
39
|
+
};
|
40
|
+
};
|
@@ -3,9 +3,11 @@ var console = require('browser/console'),
|
|
3
3
|
editor = require('lalala/modules/editor'),
|
4
4
|
grid = require('lalala/modules/grid'),
|
5
5
|
locale_chooser = require("lalala/modules/locale_chooser"),
|
6
|
-
sorted_pages_tree = require("lalala/modules/sorted_pages_tree")
|
6
|
+
sorted_pages_tree = require("lalala/modules/sorted_pages_tree"),
|
7
|
+
login = require("lalala/modules/login");
|
7
8
|
|
8
|
-
$(function(){
|
9
|
+
$(function() {
|
10
|
+
login.init();
|
9
11
|
locale_chooser.init();
|
10
12
|
editor.init();
|
11
13
|
calendar.init();
|
@@ -1,6 +1,7 @@
|
|
1
1
|
var storage = require("lalala/modules/storage"),
|
2
2
|
$chooser;
|
3
3
|
|
4
|
+
|
4
5
|
exports.init = function(){
|
5
6
|
$chooser = $('.locale_chooser select').first();
|
6
7
|
|
@@ -9,6 +10,7 @@ exports.init = function(){
|
|
9
10
|
}
|
10
11
|
};
|
11
12
|
|
13
|
+
|
12
14
|
function setup() {
|
13
15
|
var locale = storage.locale,
|
14
16
|
default_locale;
|
@@ -35,10 +37,12 @@ function setup() {
|
|
35
37
|
$chooser.on('change', on_switch_locale);
|
36
38
|
}
|
37
39
|
|
40
|
+
|
38
41
|
function on_switch_locale(e) {
|
39
42
|
switch_locale($(this).val());
|
40
43
|
}
|
41
44
|
|
45
|
+
|
42
46
|
function switch_locale(locale) {
|
43
47
|
var translated = $(".translated[data-locale]"),
|
44
48
|
current = translated.filter("*[data-locale="+locale+"]"),
|
@@ -0,0 +1,66 @@
|
|
1
|
+
var Helpers = require("./helpers");
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
function Login(el) {
|
6
|
+
this.$el = $(el);
|
7
|
+
this.$tryout = this.$el.find(".text.tryout");
|
8
|
+
|
9
|
+
this.bind_events();
|
10
|
+
this.$el.find("input").trigger("change");
|
11
|
+
}
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
//
|
16
|
+
// Events
|
17
|
+
//
|
18
|
+
Login.prototype.bind_events = function() {
|
19
|
+
this.$el.on("change", "input", $.proxy(this.input_change_handler, this));
|
20
|
+
this.$el.on("keyup", "input", Helpers.debounce($.proxy(this.input_keyup_handler, this), 250));
|
21
|
+
};
|
22
|
+
|
23
|
+
|
24
|
+
Login.prototype.input_change_handler = function(e) {
|
25
|
+
var $trgt, text, width;
|
26
|
+
|
27
|
+
// input element
|
28
|
+
$trgt = $(e.currentTarget);
|
29
|
+
|
30
|
+
// text
|
31
|
+
text = $trgt.val();
|
32
|
+
|
33
|
+
if ($trgt.attr("type") == "password") {
|
34
|
+
text = new Array(text.length + 1).join("⦁");
|
35
|
+
}
|
36
|
+
|
37
|
+
this.$tryout.text(text);
|
38
|
+
|
39
|
+
// width
|
40
|
+
if (!e.currentTarget.original_width) {
|
41
|
+
e.currentTarget.original_width = $trgt.width();
|
42
|
+
}
|
43
|
+
|
44
|
+
width = this.$tryout.width();
|
45
|
+
if (width < e.currentTarget.original_width) {
|
46
|
+
width = e.currentTarget.original_width;
|
47
|
+
}
|
48
|
+
|
49
|
+
$trgt.width(width);
|
50
|
+
};
|
51
|
+
|
52
|
+
|
53
|
+
Login.prototype.input_keyup_handler = function(e) {
|
54
|
+
$(e.currentTarget).trigger("change");
|
55
|
+
};
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
//
|
60
|
+
// Exports
|
61
|
+
//
|
62
|
+
exports.init = function() {
|
63
|
+
$(".mod-login").each(function() {
|
64
|
+
new Login(this);
|
65
|
+
});
|
66
|
+
};
|
@@ -55,3 +55,22 @@
|
|
55
55
|
right: $offset;
|
56
56
|
top: $offset;
|
57
57
|
}
|
58
|
+
|
59
|
+
|
60
|
+
//
|
61
|
+
// PLACEHOLDER STYLES (mixin)
|
62
|
+
// ----------------------
|
63
|
+
//
|
64
|
+
// Apply styles to the placeholder
|
65
|
+
//
|
66
|
+
// Usage:
|
67
|
+
// input, textarea {
|
68
|
+
// @include placeholder-styles { color: #aaa; }
|
69
|
+
// }
|
70
|
+
//
|
71
|
+
@mixin placeholder-styles {
|
72
|
+
&::-webkit-input-placeholder { @content }
|
73
|
+
&:-moz-placeholder { @content }
|
74
|
+
&::-moz-placeholder { @content }
|
75
|
+
&:-ms-input-placeholder { @content }
|
76
|
+
}
|
@@ -1,61 +1,183 @@
|
|
1
1
|
.active_admin.logged_out.new {
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
position: absolute;
|
9
|
-
top: 50%;
|
10
|
-
width: 400px;
|
3
|
+
//
|
4
|
+
// Containers
|
5
|
+
//
|
6
|
+
#wrapper, #content_wrapper, #active_admin_content {
|
7
|
+
@include spiderman;
|
11
8
|
}
|
12
9
|
|
13
10
|
#active_admin_content {
|
14
11
|
background-color: transparent;
|
15
12
|
padding: 0;
|
13
|
+
text-align: center;
|
16
14
|
width: auto;
|
17
15
|
}
|
18
16
|
|
19
|
-
|
20
|
-
|
17
|
+
#active_admin_content:before {
|
18
|
+
content: '';
|
19
|
+
display: inline-block;
|
20
|
+
height: 100%;
|
21
|
+
vertical-align: middle;
|
22
|
+
margin-right: -0.25em; /* Adjusts for spacing */
|
23
|
+
}
|
24
|
+
|
25
|
+
.mod-login {
|
26
|
+
display: inline-block;
|
27
|
+
text-align: left;
|
28
|
+
vertical-align: middle;
|
29
|
+
width: 650px;
|
30
|
+
}
|
31
|
+
|
32
|
+
|
33
|
+
//
|
34
|
+
// Text
|
35
|
+
//
|
36
|
+
.text {
|
21
37
|
color: white;
|
22
|
-
font-size:
|
38
|
+
font-size: 50px;
|
23
39
|
font-weight: bold;
|
40
|
+
line-height: 52px;
|
41
|
+
margin-bottom: 10px;
|
42
|
+
text-shadow: 1px 1px rgba(black, .325);
|
24
43
|
}
|
25
44
|
|
26
|
-
|
27
|
-
|
45
|
+
span.text {
|
46
|
+
display: inline-block;
|
47
|
+
}
|
48
|
+
|
49
|
+
.text.tryout {
|
50
|
+
left: 0;
|
51
|
+
position: fixed;
|
52
|
+
top: 99%;
|
53
|
+
top: -moz-calc(100% - 1px);
|
54
|
+
top: -webkit-calc(100% - 1px);
|
55
|
+
top: calc(100% - 1px);
|
56
|
+
visibility: hidden;
|
57
|
+
width: auto;
|
58
|
+
}
|
59
|
+
|
60
|
+
label,
|
61
|
+
.flash {
|
62
|
+
display: none;
|
63
|
+
}
|
64
|
+
|
65
|
+
//
|
66
|
+
// Input fields
|
67
|
+
//
|
68
|
+
.input {
|
69
|
+
margin: -4px 0 0;
|
70
|
+
}
|
71
|
+
|
72
|
+
.inputs {
|
73
|
+
margin: 14px 0 0;
|
74
|
+
white-space: nowrap;
|
75
|
+
}
|
76
|
+
|
77
|
+
.inputs > ol > li {
|
78
|
+
display: inline-block;
|
79
|
+
margin-right: 13px;
|
80
|
+
}
|
81
|
+
|
82
|
+
.inputs .text {
|
83
|
+
position: relative;
|
84
|
+
top: -2px;
|
28
85
|
}
|
29
86
|
|
30
|
-
input[type=email],
|
31
|
-
input[type=password] {
|
32
|
-
@include
|
33
|
-
background-color
|
34
|
-
|
87
|
+
input[type="email"],
|
88
|
+
input[type="password"] {
|
89
|
+
@include box-sizing(border-box);
|
90
|
+
@include transition(background-color 600ms, border-color 600ms);
|
91
|
+
|
92
|
+
background: none;
|
93
|
+
border: 0;
|
94
|
+
border-bottom: 2px solid rgba($blue, .5);
|
95
|
+
border-radius: 0;
|
96
|
+
box-shadow: none;
|
97
|
+
color: lighten($blue, 10);
|
98
|
+
display: inline-block;
|
99
|
+
font-size: 50px;
|
35
100
|
font-weight: bold;
|
36
|
-
|
101
|
+
height: 66px;
|
102
|
+
line-height: 56px;
|
103
|
+
padding: 0;
|
104
|
+
position: relative;
|
105
|
+
top: -2px;
|
106
|
+
width: 120px;
|
37
107
|
|
38
|
-
|
39
|
-
|
40
|
-
color:
|
108
|
+
@include placeholder-styles {
|
109
|
+
@include transition(color 600ms, text-shadow 600ms);
|
110
|
+
color: white;
|
111
|
+
text-shadow: 1px 1px rgba(black, .325);
|
112
|
+
text-transform: lowercase;
|
41
113
|
}
|
114
|
+
}
|
42
115
|
|
116
|
+
input[type="password"] {
|
117
|
+
width: 233px;
|
43
118
|
}
|
44
119
|
|
45
|
-
|
46
|
-
|
120
|
+
input[type="email"],
|
121
|
+
input[type="password"] { &:focus {
|
122
|
+
@include placeholder-styles {
|
123
|
+
color: rgba(white, .75);
|
124
|
+
text-shadow: 1px 1px rgba(black, .05);
|
125
|
+
}
|
126
|
+
}}
|
127
|
+
|
128
|
+
//
|
129
|
+
// Actions
|
130
|
+
//
|
131
|
+
.actions {
|
132
|
+
margin: 90px 0 0 -50px;
|
133
|
+
position: relative;
|
134
|
+
|
135
|
+
button, .version {
|
136
|
+
@include transition(background-color 600ms);
|
137
|
+
}
|
47
138
|
}
|
48
139
|
|
49
|
-
|
50
|
-
background
|
51
|
-
|
52
|
-
|
53
|
-
|
140
|
+
.actions button {
|
141
|
+
background: #bbb image-url("lalala/overlay-logo.png") 0 0;
|
142
|
+
border: 0;
|
143
|
+
border-radius: 10px;
|
144
|
+
cursor: pointer;
|
145
|
+
display: block;
|
146
|
+
height: 90px;
|
147
|
+
outline: none;
|
148
|
+
text-indent: -9999px;
|
149
|
+
width: 280px;
|
54
150
|
}
|
55
151
|
|
56
|
-
.
|
152
|
+
.actions button.error {
|
153
|
+
&, & + .version { background-color: $button_red; }
|
154
|
+
}
|
155
|
+
|
156
|
+
.actions button.glow,
|
157
|
+
.actions button:focus,
|
158
|
+
.actions button:hover { &, & + .version {
|
159
|
+
background-color: rgba($blue, .5);
|
160
|
+
}}
|
161
|
+
|
162
|
+
.actions .version {
|
163
|
+
@include background-image(
|
164
|
+
linear-gradient(rgba(black, 0), rgba(black, .125))
|
165
|
+
);
|
166
|
+
|
167
|
+
background-color: #bbb;
|
168
|
+
border-bottom: 1px solid rgba(black, .25);
|
169
|
+
border-radius: 10px;
|
170
|
+
color: white;
|
171
|
+
display: inline-block;
|
172
|
+
font-size: 10px;
|
173
|
+
font-weight: bold;
|
174
|
+
height: 16px;
|
175
|
+
left: 235px;
|
176
|
+
line-height: 16px;
|
177
|
+
padding: 1px 9px 0;
|
57
178
|
position: absolute;
|
58
|
-
|
179
|
+
text-shadow: 1px 1px rgba(black, .3);
|
180
|
+
top: -19px;
|
59
181
|
}
|
60
182
|
|
61
183
|
}
|
@@ -30,8 +30,31 @@
|
|
30
30
|
}
|
31
31
|
|
32
32
|
.locale_chooser {
|
33
|
+
border-left: 1px solid #dcdcdc;
|
33
34
|
float: right;
|
34
|
-
|
35
|
+
}
|
36
|
+
}
|
37
|
+
|
38
|
+
//
|
39
|
+
// Locale chooser
|
40
|
+
//
|
41
|
+
.locale_chooser select {
|
42
|
+
@include appearance(none);
|
43
|
+
|
44
|
+
border: 0;
|
45
|
+
border-radius: 0;
|
46
|
+
color: black;
|
47
|
+
cursor: pointer;
|
48
|
+
display: inline-block;
|
49
|
+
font-weight: bold;
|
50
|
+
height: $top_nav_height;
|
51
|
+
line-height: $top_nav_height + 2;
|
52
|
+
padding: 0 24px;
|
53
|
+
vertical-align: top;
|
54
|
+
|
55
|
+
&:focus {
|
56
|
+
border: none;
|
57
|
+
box-shadow: none;
|
35
58
|
}
|
36
59
|
}
|
37
60
|
|
@@ -59,7 +82,7 @@
|
|
59
82
|
}
|
60
83
|
|
61
84
|
//
|
62
|
-
//
|
85
|
+
// Current page title
|
63
86
|
//
|
64
87
|
h2 {
|
65
88
|
color: gray(211);
|
@@ -0,0 +1,43 @@
|
|
1
|
+
<div class="mod-login">
|
2
|
+
<% scope = Devise::Mapping.find_scope!(resource_name) %>
|
3
|
+
<%= active_admin_form_for(resource, :as => resource_name, :url => send(:"#{scope}_session_path"), :html => { :id => "session_new" }) do |f|
|
4
|
+
alert = flash.now[:alert]
|
5
|
+
button_css_class = (alert && alert.to_s.downcase.include?("invalid")) ? "error" : ""
|
6
|
+
|
7
|
+
f.form_buffers.last << raw(<<-EOS
|
8
|
+
<div class="text">
|
9
|
+
#{ t("login.a") }
|
10
|
+
</div>
|
11
|
+
EOS
|
12
|
+
)
|
13
|
+
|
14
|
+
f.inputs do
|
15
|
+
resource.class.authentication_keys.each { |key|
|
16
|
+
f.input key, input_html: {
|
17
|
+
placeholder: t('active_admin.devise.login.title'),
|
18
|
+
autofocus: true
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
22
|
+
f.form_buffers.last << raw("<span class=\"text\">#{ t("login.b") }</span>")
|
23
|
+
f.form_buffers.last << raw("<br>")
|
24
|
+
|
25
|
+
f.input :password, input_html: {
|
26
|
+
placeholder: "Password"
|
27
|
+
}
|
28
|
+
|
29
|
+
f.form_buffers.last << raw("<span class=\"text\">#{ t("login.c") }</span>")
|
30
|
+
end
|
31
|
+
|
32
|
+
f.form_buffers.last << raw(<<-EOS
|
33
|
+
<fieldset class="actions">
|
34
|
+
<button type="submit" class="#{ button_css_class }">#{ t('active_admin.devise.login.submit') }</button>
|
35
|
+
<span class="version">VERSION #{ Lalala::BUILD_VERSION }</span>
|
36
|
+
</fieldset>
|
37
|
+
EOS
|
38
|
+
)
|
39
|
+
end
|
40
|
+
%>
|
41
|
+
|
42
|
+
<div class="text tryout"></div>
|
43
|
+
</div>
|
@@ -0,0 +1,512 @@
|
|
1
|
+
en:
|
2
|
+
login:
|
3
|
+
a: "Hello you,<br> can I have your"
|
4
|
+
b: "and"
|
5
|
+
c: "?"
|
6
|
+
|
7
|
+
i18n:
|
8
|
+
languages:
|
9
|
+
ab: "Abkhazian"
|
10
|
+
ace: "Achinese"
|
11
|
+
ach: "Acoli"
|
12
|
+
ada: "Adangme"
|
13
|
+
ady: "Adyghe"
|
14
|
+
ae: "Avestan"
|
15
|
+
af: "Afrikaans"
|
16
|
+
afa: "Afro-Asiatic Language"
|
17
|
+
afh: "Afrihili"
|
18
|
+
ain: "Ainu"
|
19
|
+
ak: "Akan"
|
20
|
+
akk: "Akkadian"
|
21
|
+
ale: "Aleut"
|
22
|
+
alg: "Algonquian Language"
|
23
|
+
alt: "Southern Altai"
|
24
|
+
am: "Amharic"
|
25
|
+
an: "Aragonese"
|
26
|
+
ang: "Old English"
|
27
|
+
anp: "Angika"
|
28
|
+
apa: "Apache Language"
|
29
|
+
ar: "Arabic"
|
30
|
+
arc: "Aramaic"
|
31
|
+
arn: "Araucanian"
|
32
|
+
arp: "Arapaho"
|
33
|
+
art: "Artificial Language"
|
34
|
+
arw: "Arawak"
|
35
|
+
as: "Assamese"
|
36
|
+
ast: "Asturian"
|
37
|
+
ath: "Athapascan Language"
|
38
|
+
aus: "Australian Language"
|
39
|
+
av: "Avaric"
|
40
|
+
awa: "Awadhi"
|
41
|
+
ay: "Aymara"
|
42
|
+
az: "Azerbaijani"
|
43
|
+
ba: "Bashkir"
|
44
|
+
bad: "Banda"
|
45
|
+
bai: "Bamileke Language"
|
46
|
+
bal: "Baluchi"
|
47
|
+
ban: "Balinese"
|
48
|
+
bas: "Basa"
|
49
|
+
bat: "Baltic Language"
|
50
|
+
be: "Belarusian"
|
51
|
+
bej: "Beja"
|
52
|
+
bem: "Bemba"
|
53
|
+
ber: "Berber"
|
54
|
+
bg: "Bulgarian"
|
55
|
+
bh: "Bihari"
|
56
|
+
bho: "Bhojpuri"
|
57
|
+
bi: "Bislama"
|
58
|
+
bik: "Bikol"
|
59
|
+
bin: "Bini"
|
60
|
+
bla: "Siksika"
|
61
|
+
bm: "Bambara"
|
62
|
+
bn: "Bengali"
|
63
|
+
bnt: "Bantu"
|
64
|
+
bo: "Tibetan"
|
65
|
+
br: "Breton"
|
66
|
+
bra: "Braj"
|
67
|
+
bs: "Bosnian"
|
68
|
+
btk: "Batak"
|
69
|
+
bua: "Buriat"
|
70
|
+
bug: "Buginese"
|
71
|
+
byn: "Blin"
|
72
|
+
ca: "Catalan"
|
73
|
+
cad: "Caddo"
|
74
|
+
cai: "Central American Indian Language"
|
75
|
+
car: "Carib"
|
76
|
+
cau: "Caucasian Language"
|
77
|
+
cch: "Atsam"
|
78
|
+
ce: "Chechen"
|
79
|
+
ceb: "Cebuano"
|
80
|
+
cel: "Celtic Language"
|
81
|
+
ch: "Chamorro"
|
82
|
+
chb: "Chibcha"
|
83
|
+
chg: "Chagatai"
|
84
|
+
chk: "Chuukese"
|
85
|
+
chm: "Mari"
|
86
|
+
chn: "Chinook Jargon"
|
87
|
+
cho: "Choctaw"
|
88
|
+
chp: "Chipewyan"
|
89
|
+
chr: "Cherokee"
|
90
|
+
chy: "Cheyenne"
|
91
|
+
cmc: "Chamic Language"
|
92
|
+
co: "Corsican"
|
93
|
+
cop: "Coptic"
|
94
|
+
cpe: "English-based Creole or Pidgin"
|
95
|
+
cpf: "French-based Creole or Pidgin"
|
96
|
+
cpp: "Portuguese-based Creole or Pidgin"
|
97
|
+
cr: "Cree"
|
98
|
+
crh: "Crimean Turkish"
|
99
|
+
crp: "Creole or Pidgin"
|
100
|
+
cs: "Czech"
|
101
|
+
csb: "Kashubian"
|
102
|
+
cu: "Church Slavic"
|
103
|
+
cus: "Cushitic Language"
|
104
|
+
cv: "Chuvash"
|
105
|
+
cy: "Welsh"
|
106
|
+
da: "Danish"
|
107
|
+
dak: "Dakota"
|
108
|
+
dar: "Dargwa"
|
109
|
+
day: "Dayak"
|
110
|
+
de: "German"
|
111
|
+
"de-AT": "Austrian German"
|
112
|
+
"de-CH": "Swiss High German"
|
113
|
+
del: "Delaware"
|
114
|
+
den: "Slave"
|
115
|
+
dgr: "Dogrib"
|
116
|
+
din: "Dinka"
|
117
|
+
doi: "Dogri"
|
118
|
+
dra: "Dravidian Language"
|
119
|
+
dsb: "Lower Sorbian"
|
120
|
+
dua: "Duala"
|
121
|
+
dum: "Middle Dutch"
|
122
|
+
dv: "Divehi"
|
123
|
+
dyu: "Dyula"
|
124
|
+
dz: "Dzongkha"
|
125
|
+
ee: "Ewe"
|
126
|
+
efi: "Efik"
|
127
|
+
egy: "Ancient Egyptian"
|
128
|
+
eka: "Ekajuk"
|
129
|
+
el: "Greek"
|
130
|
+
elx: "Elamite"
|
131
|
+
en: "English"
|
132
|
+
"en-AU": "Australian English"
|
133
|
+
"en-CA": "Canadian English"
|
134
|
+
"en-GB": "British English"
|
135
|
+
"en-US": "U.S. English"
|
136
|
+
enm: "Middle English"
|
137
|
+
eo: "Esperanto"
|
138
|
+
es: "Spanish"
|
139
|
+
"es-ES": "Iberian Spanish"
|
140
|
+
et: "Estonian"
|
141
|
+
eu: "Basque"
|
142
|
+
ewo: "Ewondo"
|
143
|
+
fa: "Persian"
|
144
|
+
fan: "Fang"
|
145
|
+
fat: "Fanti"
|
146
|
+
ff: "Fulah"
|
147
|
+
fi: "Finnish"
|
148
|
+
fil: "Filipino"
|
149
|
+
fiu: "Finno-Ugrian Language"
|
150
|
+
fj: "Fijian"
|
151
|
+
fo: "Faroese"
|
152
|
+
fon: "Fon"
|
153
|
+
fr: "French"
|
154
|
+
"fr-CA": "Canadian French"
|
155
|
+
"fr-CH": "Swiss French"
|
156
|
+
frm: "Middle French"
|
157
|
+
fro: "Old French"
|
158
|
+
frr: "Northern Frisian"
|
159
|
+
frs: "Eastern Frisian"
|
160
|
+
fur: "Friulian"
|
161
|
+
fy: "Western Frisian"
|
162
|
+
ga: "Irish"
|
163
|
+
gaa: "Ga"
|
164
|
+
gay: "Gayo"
|
165
|
+
gba: "Gbaya"
|
166
|
+
gd: "Scottish Gaelic"
|
167
|
+
gem: "Germanic Language"
|
168
|
+
gez: "Geez"
|
169
|
+
gil: "Gilbertese"
|
170
|
+
gl: "Galician"
|
171
|
+
gmh: "Middle High German"
|
172
|
+
gn: "Guarani"
|
173
|
+
goh: "Old High German"
|
174
|
+
gon: "Gondi"
|
175
|
+
gor: "Gorontalo"
|
176
|
+
got: "Gothic"
|
177
|
+
grb: "Grebo"
|
178
|
+
grc: "Ancient Greek"
|
179
|
+
gsw: "Swiss German"
|
180
|
+
gu: "Gujarati"
|
181
|
+
gv: "Manx"
|
182
|
+
gwi: "Gwichʼin"
|
183
|
+
ha: "Hausa"
|
184
|
+
hai: "Haida"
|
185
|
+
haw: "Hawaiian"
|
186
|
+
he: "Hebrew"
|
187
|
+
hi: "Hindi"
|
188
|
+
hil: "Hiligaynon"
|
189
|
+
him: "Himachali"
|
190
|
+
hit: "Hittite"
|
191
|
+
hmn: "Hmong"
|
192
|
+
ho: "Hiri Motu"
|
193
|
+
hr: "Croatian"
|
194
|
+
hsb: "Upper Sorbian"
|
195
|
+
ht: "Haitian"
|
196
|
+
hu: "Hungarian"
|
197
|
+
hup: "Hupa"
|
198
|
+
hy: "Armenian"
|
199
|
+
hz: "Herero"
|
200
|
+
ia: "Interlingua"
|
201
|
+
iba: "Iban"
|
202
|
+
id: "Indonesian"
|
203
|
+
ie: "Interlingue"
|
204
|
+
ig: "Igbo"
|
205
|
+
ii: "Sichuan Yi"
|
206
|
+
ijo: "Ijo"
|
207
|
+
ik: "Inupiaq"
|
208
|
+
ilo: "Iloko"
|
209
|
+
inc: "Indic Language"
|
210
|
+
ine: "Indo-European Language"
|
211
|
+
inh: "Ingush"
|
212
|
+
io: "Ido"
|
213
|
+
ira: "Iranian Language"
|
214
|
+
iro: "Iroquoian Language"
|
215
|
+
is: "Icelandic"
|
216
|
+
it: "Italian"
|
217
|
+
iu: "Inuktitut"
|
218
|
+
ja: "Japanese"
|
219
|
+
jbo: "Lojban"
|
220
|
+
jpr: "Judeo-Persian"
|
221
|
+
jrb: "Judeo-Arabic"
|
222
|
+
jv: "Javanese"
|
223
|
+
ka: "Georgian"
|
224
|
+
kaa: "Kara-Kalpak"
|
225
|
+
kab: "Kabyle"
|
226
|
+
kac: "Kachin"
|
227
|
+
kaj: "Jju"
|
228
|
+
kam: "Kamba"
|
229
|
+
kar: "Karen"
|
230
|
+
kaw: "Kawi"
|
231
|
+
kbd: "Kabardian"
|
232
|
+
kcg: "Tyap"
|
233
|
+
kfo: "Koro"
|
234
|
+
kg: "Kongo"
|
235
|
+
kha: "Khasi"
|
236
|
+
khi: "Khoisan Language"
|
237
|
+
kho: "Khotanese"
|
238
|
+
ki: "Kikuyu"
|
239
|
+
kj: "Kuanyama"
|
240
|
+
kk: "Kazakh"
|
241
|
+
kl: "Kalaallisut"
|
242
|
+
km: "Khmer"
|
243
|
+
kmb: "Kimbundu"
|
244
|
+
kn: "Kannada"
|
245
|
+
ko: "Korean"
|
246
|
+
kok: "Konkani"
|
247
|
+
kos: "Kosraean"
|
248
|
+
kpe: "Kpelle"
|
249
|
+
kr: "Kanuri"
|
250
|
+
krc: "Karachay-Balkar"
|
251
|
+
krl: "Karelian"
|
252
|
+
kro: "Kru"
|
253
|
+
kru: "Kurukh"
|
254
|
+
ks: "Kashmiri"
|
255
|
+
ku: "Kurdish"
|
256
|
+
kum: "Kumyk"
|
257
|
+
kut: "Kutenai"
|
258
|
+
kv: "Komi"
|
259
|
+
kw: "Cornish"
|
260
|
+
ky: "Kirghiz"
|
261
|
+
la: "Latin"
|
262
|
+
lad: "Ladino"
|
263
|
+
lah: "Lahnda"
|
264
|
+
lam: "Lamba"
|
265
|
+
lb: "Luxembourgish"
|
266
|
+
lez: "Lezghian"
|
267
|
+
lg: "Ganda"
|
268
|
+
li: "Limburgish"
|
269
|
+
ln: "Lingala"
|
270
|
+
lo: "Lao"
|
271
|
+
lol: "Mongo"
|
272
|
+
loz: "Lozi"
|
273
|
+
lt: "Lithuanian"
|
274
|
+
lu: "Luba-Katanga"
|
275
|
+
lua: "Luba-Lulua"
|
276
|
+
lui: "Luiseno"
|
277
|
+
lun: "Lunda"
|
278
|
+
luo: "Luo"
|
279
|
+
lus: "Lushai"
|
280
|
+
lv: "Latvian"
|
281
|
+
mad: "Madurese"
|
282
|
+
mag: "Magahi"
|
283
|
+
mai: "Maithili"
|
284
|
+
mak: "Makasar"
|
285
|
+
man: "Mandingo"
|
286
|
+
map: "Austronesian Language"
|
287
|
+
mas: "Masai"
|
288
|
+
mdf: "Moksha"
|
289
|
+
mdr: "Mandar"
|
290
|
+
men: "Mende"
|
291
|
+
mg: "Malagasy"
|
292
|
+
mga: "Middle Irish"
|
293
|
+
mh: "Marshallese"
|
294
|
+
mi: "Maori"
|
295
|
+
mic: "Micmac"
|
296
|
+
min: "Minangkabau"
|
297
|
+
mis: "Miscellaneous Language"
|
298
|
+
mk: "Macedonian"
|
299
|
+
mkh: "Mon-Khmer Language"
|
300
|
+
ml: "Malayalam"
|
301
|
+
mn: "Mongolian"
|
302
|
+
mnc: "Manchu"
|
303
|
+
mni: "Manipuri"
|
304
|
+
mno: "Manobo Language"
|
305
|
+
mo: "Moldavian"
|
306
|
+
moh: "Mohawk"
|
307
|
+
mos: "Mossi"
|
308
|
+
mr: "Marathi"
|
309
|
+
ms: "Malay"
|
310
|
+
mt: "Maltese"
|
311
|
+
mul: "Multiple Languages"
|
312
|
+
mun: "Munda Language"
|
313
|
+
mus: "Creek"
|
314
|
+
mwl: "Mirandese"
|
315
|
+
mwr: "Marwari"
|
316
|
+
my: "Burmese"
|
317
|
+
myn: "Mayan Language"
|
318
|
+
myv: "Erzya"
|
319
|
+
na: "Nauru"
|
320
|
+
nah: "Nahuatl"
|
321
|
+
nai: "North American Indian Language"
|
322
|
+
nap: "Neapolitan"
|
323
|
+
nb: "Norwegian Bokmål"
|
324
|
+
nd: "North Ndebele"
|
325
|
+
nds: "Low German"
|
326
|
+
ne: "Nepali"
|
327
|
+
new: "Newari"
|
328
|
+
ng: "Ndonga"
|
329
|
+
nia: "Nias"
|
330
|
+
nic: "Niger-Kordofanian Language"
|
331
|
+
niu: "Niuean"
|
332
|
+
nl: "Dutch"
|
333
|
+
"nl-BE": "Flemish"
|
334
|
+
nn: "Norwegian Nynorsk"
|
335
|
+
no: "Norwegian"
|
336
|
+
nog: "Nogai"
|
337
|
+
non: "Old Norse"
|
338
|
+
nqo: "N’Ko"
|
339
|
+
nr: "South Ndebele"
|
340
|
+
nso: "Northern Sotho"
|
341
|
+
nub: "Nubian Language"
|
342
|
+
nv: "Navajo"
|
343
|
+
nwc: "Classical Newari"
|
344
|
+
ny: "Nyanja"
|
345
|
+
nym: "Nyamwezi"
|
346
|
+
nyn: "Nyankole"
|
347
|
+
nyo: "Nyoro"
|
348
|
+
nzi: "Nzima"
|
349
|
+
oc: "Occitan"
|
350
|
+
oj: "Ojibwa"
|
351
|
+
om: "Oromo"
|
352
|
+
or: "Oriya"
|
353
|
+
os: "Ossetic"
|
354
|
+
osa: "Osage"
|
355
|
+
ota: "Ottoman Turkish"
|
356
|
+
oto: "Otomian Language"
|
357
|
+
pa: "Punjabi"
|
358
|
+
paa: "Papuan Language"
|
359
|
+
pag: "Pangasinan"
|
360
|
+
pal: "Pahlavi"
|
361
|
+
pam: "Pampanga"
|
362
|
+
pap: "Papiamento"
|
363
|
+
pau: "Palauan"
|
364
|
+
peo: "Old Persian"
|
365
|
+
phi: "Philippine Language"
|
366
|
+
phn: "Phoenician"
|
367
|
+
pi: "Pali"
|
368
|
+
pl: "Polish"
|
369
|
+
pon: "Pohnpeian"
|
370
|
+
pra: "Prakrit Language"
|
371
|
+
pro: "Old Provençal"
|
372
|
+
ps: "Pashto"
|
373
|
+
pt: "Portuguese"
|
374
|
+
"pt-BR": "Brazilian Portuguese"
|
375
|
+
"pt-PT": "Iberian Portuguese"
|
376
|
+
qu: "Quechua"
|
377
|
+
raj: "Rajasthani"
|
378
|
+
rap: "Rapanui"
|
379
|
+
rar: "Rarotongan"
|
380
|
+
rm: "Rhaeto-Romance"
|
381
|
+
rn: "Rundi"
|
382
|
+
ro: "Romanian"
|
383
|
+
roa: "Romance Language"
|
384
|
+
rom: "Romany"
|
385
|
+
ru: "Russian"
|
386
|
+
rup: "Aromanian"
|
387
|
+
rw: "Kinyarwanda"
|
388
|
+
sa: "Sanskrit"
|
389
|
+
sad: "Sandawe"
|
390
|
+
sah: "Yakut"
|
391
|
+
sai: "South American Indian Language"
|
392
|
+
sal: "Salishan Language"
|
393
|
+
sam: "Samaritan Aramaic"
|
394
|
+
sas: "Sasak"
|
395
|
+
sat: "Santali"
|
396
|
+
sc: "Sardinian"
|
397
|
+
scn: "Sicilian"
|
398
|
+
sco: "Scots"
|
399
|
+
sd: "Sindhi"
|
400
|
+
se: "Northern Sami"
|
401
|
+
sel: "Selkup"
|
402
|
+
sem: "Semitic Language"
|
403
|
+
sg: "Sango"
|
404
|
+
sga: "Old Irish"
|
405
|
+
sgn: "Sign Language"
|
406
|
+
sh: "Serbo-Croatian"
|
407
|
+
shn: "Shan"
|
408
|
+
si: "Sinhala"
|
409
|
+
sid: "Sidamo"
|
410
|
+
sio: "Siouan Language"
|
411
|
+
sit: "Sino-Tibetan Language"
|
412
|
+
sk: "Slovak"
|
413
|
+
sl: "Slovenian"
|
414
|
+
sla: "Slavic Language"
|
415
|
+
sm: "Samoan"
|
416
|
+
sma: "Southern Sami"
|
417
|
+
smi: "Sami Language"
|
418
|
+
smj: "Lule Sami"
|
419
|
+
smn: "Inari Sami"
|
420
|
+
sms: "Skolt Sami"
|
421
|
+
sn: "Shona"
|
422
|
+
snk: "Soninke"
|
423
|
+
so: "Somali"
|
424
|
+
sog: "Sogdien"
|
425
|
+
son: "Songhai"
|
426
|
+
sq: "Albanian"
|
427
|
+
sr: "Serbian"
|
428
|
+
srn: "Sranan Tongo"
|
429
|
+
srr: "Serer"
|
430
|
+
ss: "Swati"
|
431
|
+
ssa: "Nilo-Saharan Language"
|
432
|
+
st: "Southern Sotho"
|
433
|
+
su: "Sundanese"
|
434
|
+
suk: "Sukuma"
|
435
|
+
sus: "Susu"
|
436
|
+
sux: "Sumerian"
|
437
|
+
sv: "Swedish"
|
438
|
+
sw: "Swahili"
|
439
|
+
syc: "Classical Syriac"
|
440
|
+
syr: "Syriac"
|
441
|
+
ta: "Tamil"
|
442
|
+
tai: "Tai Language"
|
443
|
+
te: "Telugu"
|
444
|
+
tem: "Timne"
|
445
|
+
ter: "Tereno"
|
446
|
+
tet: "Tetum"
|
447
|
+
tg: "Tajik"
|
448
|
+
th: "Thai"
|
449
|
+
ti: "Tigrinya"
|
450
|
+
tig: "Tigre"
|
451
|
+
tiv: "Tiv"
|
452
|
+
tk: "Turkmen"
|
453
|
+
tkl: "Tokelau"
|
454
|
+
tl: "Tagalog"
|
455
|
+
tlh: "Klingon"
|
456
|
+
tli: "Tlingit"
|
457
|
+
tmh: "Tamashek"
|
458
|
+
tn: "Tswana"
|
459
|
+
to: "Tonga"
|
460
|
+
tog: "Nyasa Tonga"
|
461
|
+
tpi: "Tok Pisin"
|
462
|
+
tr: "Turkish"
|
463
|
+
trv: "Taroko"
|
464
|
+
ts: "Tsonga"
|
465
|
+
tsi: "Tsimshian"
|
466
|
+
tt: "Tatar"
|
467
|
+
tum: "Tumbuka"
|
468
|
+
tup: "Tupi Language"
|
469
|
+
tut: "Altaic Language"
|
470
|
+
tvl: "Tuvalu"
|
471
|
+
tw: "Twi"
|
472
|
+
ty: "Tahitian"
|
473
|
+
tyv: "Tuvinian"
|
474
|
+
udm: "Udmurt"
|
475
|
+
ug: "Uighur"
|
476
|
+
uga: "Ugaritic"
|
477
|
+
uk: "Ukrainian"
|
478
|
+
umb: "Umbundu"
|
479
|
+
und: "Unknown or Invalid Language"
|
480
|
+
ur: "Urdu"
|
481
|
+
uz: "Uzbek"
|
482
|
+
vai: "Vai"
|
483
|
+
ve: "Venda"
|
484
|
+
vi: "Vietnamese"
|
485
|
+
vo: "Volapük"
|
486
|
+
vot: "Votic"
|
487
|
+
wa: "Walloon"
|
488
|
+
wak: "Wakashan Language"
|
489
|
+
wal: "Walamo"
|
490
|
+
war: "Waray"
|
491
|
+
was: "Washo"
|
492
|
+
wen: "Sorbian Language"
|
493
|
+
wo: "Wolof"
|
494
|
+
xal: "Kalmyk"
|
495
|
+
xh: "Xhosa"
|
496
|
+
yao: "Yao"
|
497
|
+
yap: "Yapese"
|
498
|
+
yi: "Yiddish"
|
499
|
+
yo: "Yoruba"
|
500
|
+
ypk: "Yupik Language"
|
501
|
+
za: "Zhuang"
|
502
|
+
zap: "Zapotec"
|
503
|
+
zbl: "Blissymbols"
|
504
|
+
zen: "Zenaga"
|
505
|
+
zh: "Chinese"
|
506
|
+
zh-Hans: "Simplified Chinese"
|
507
|
+
zh-Hant: "Traditional Chinese"
|
508
|
+
znd: "Zande"
|
509
|
+
zu: "Zulu"
|
510
|
+
zun: "Zuni"
|
511
|
+
zxx: "No linguistic content"
|
512
|
+
zza: "Zaza"
|
data/lib/lalala/ext_i18n.rb
CHANGED
data/lib/lalala/version.rb
CHANGED
@@ -14,14 +14,14 @@ class Lalala::Views::TitleBar < ActiveAdmin::Views::TitleBar
|
|
14
14
|
locales.sort!
|
15
15
|
|
16
16
|
div :class => "locale_chooser" do
|
17
|
-
select do
|
17
|
+
select(class: "bypass-chosen") do
|
18
18
|
|
19
19
|
locales.each do |locale|
|
20
20
|
opts = { :value => locale.to_s }
|
21
21
|
opts[:'data-default'] = "true" if I18n.default_locale == locale
|
22
22
|
opts[:'data-current'] = "true" if I18n.locale == locale
|
23
23
|
option opts do
|
24
|
-
text_node locale
|
24
|
+
text_node Lalala::ExtI18n::NameForLocale.name_for_locale(locale)
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
@@ -27,7 +27,8 @@ module Dummy
|
|
27
27
|
|
28
28
|
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
|
29
29
|
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
|
30
|
-
|
30
|
+
config.i18n.default_locale = :en
|
31
|
+
config.i18n.available_locales = [:en, :nl]
|
31
32
|
|
32
33
|
# Configure the default encoding used in templates for Ruby 1.9.
|
33
34
|
config.encoding = "utf-8"
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class MakeArticlesTranslatable < ActiveRecord::Migration
|
2
|
+
def up
|
3
|
+
change_table :articles do |t|
|
4
|
+
t.remove :title
|
5
|
+
t.remove :body
|
6
|
+
end
|
7
|
+
|
8
|
+
Article.create_translation_table!(title: :string, body: :text)
|
9
|
+
end
|
10
|
+
|
11
|
+
def down
|
12
|
+
change_table :articles do |t|
|
13
|
+
t.string :title
|
14
|
+
t.text :body
|
15
|
+
end
|
16
|
+
|
17
|
+
drop_table :article_translations
|
18
|
+
end
|
19
|
+
end
|
data/test/dummy/db/schema.rb
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
#
|
12
12
|
# It's strongly recommended to check this file into your version control system.
|
13
13
|
|
14
|
-
ActiveRecord::Schema.define(:version =>
|
14
|
+
ActiveRecord::Schema.define(:version => 20131121092946) do
|
15
15
|
|
16
16
|
create_table "active_admin_comments", :force => true do |t|
|
17
17
|
t.string "resource_id", :null => false
|
@@ -47,11 +47,21 @@ ActiveRecord::Schema.define(:version => 20131113134503) do
|
|
47
47
|
add_index "admin_users", ["email"], :name => "index_admin_users_on_email", :unique => true
|
48
48
|
add_index "admin_users", ["reset_password_token"], :name => "index_admin_users_on_reset_password_token", :unique => true
|
49
49
|
|
50
|
-
create_table "
|
50
|
+
create_table "article_translations", :force => true do |t|
|
51
|
+
t.integer "article_id"
|
52
|
+
t.string "locale"
|
51
53
|
t.string "title"
|
52
54
|
t.text "body"
|
53
55
|
t.datetime "created_at", :null => false
|
54
56
|
t.datetime "updated_at", :null => false
|
57
|
+
end
|
58
|
+
|
59
|
+
add_index "article_translations", ["article_id"], :name => "index_article_translations_on_article_id"
|
60
|
+
add_index "article_translations", ["locale"], :name => "index_article_translations_on_locale"
|
61
|
+
|
62
|
+
create_table "articles", :force => true do |t|
|
63
|
+
t.datetime "created_at", :null => false
|
64
|
+
t.datetime "updated_at", :null => false
|
55
65
|
t.string "category"
|
56
66
|
end
|
57
67
|
|
@@ -7,11 +7,11 @@ class ArticlesTest < ActionDispatch::IntegrationTest
|
|
7
7
|
end
|
8
8
|
|
9
9
|
test 'list articles' do
|
10
|
-
Article.create!(title: "Hello World")
|
10
|
+
article = Article.create!(title: "Hello World")
|
11
11
|
|
12
12
|
click_on('Articles')
|
13
13
|
assert_equal 200, page.status_code
|
14
|
-
assert page.
|
14
|
+
assert page.assert_selector('a.resource_id_link', text: article.id.to_s)
|
15
15
|
end
|
16
16
|
|
17
17
|
test 'create article' do
|
@@ -19,7 +19,7 @@ class ArticlesTest < ActionDispatch::IntegrationTest
|
|
19
19
|
click_on('New Article')
|
20
20
|
assert_equal('/lalala/articles/new', current_path)
|
21
21
|
|
22
|
-
|
22
|
+
first('input[name="article[translations_writer][en][title]"]').set('My Article')
|
23
23
|
attach_file('Image', File.expand_path('../../fixtures/files/image.png', __FILE__))
|
24
24
|
click_on('Create Article')
|
25
25
|
page.save_page
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lalala
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.0.dev.
|
4
|
+
version: 4.0.0.dev.224
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Simon Menke
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2013-11-
|
16
|
+
date: 2013-11-21 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: activeadmin
|
@@ -1294,6 +1294,7 @@ files:
|
|
1294
1294
|
- app/assets/images/lalala/icons/zoom.png
|
1295
1295
|
- app/assets/images/lalala/icons/zoom_in.png
|
1296
1296
|
- app/assets/images/lalala/icons/zoom_out.png
|
1297
|
+
- app/assets/images/lalala/overlay-logo.png
|
1297
1298
|
- app/assets/images/lalala/users/default.jpg
|
1298
1299
|
- app/assets/javascripts/browser/console.module.js
|
1299
1300
|
- app/assets/javascripts/browser/document.module.js
|
@@ -1311,8 +1312,10 @@ files:
|
|
1311
1312
|
- app/assets/javascripts/lalala/modules/calendar.module.js
|
1312
1313
|
- app/assets/javascripts/lalala/modules/editor.module.js
|
1313
1314
|
- app/assets/javascripts/lalala/modules/grid.module.js
|
1315
|
+
- app/assets/javascripts/lalala/modules/helpers.module.js
|
1314
1316
|
- app/assets/javascripts/lalala/modules/init.module.js
|
1315
1317
|
- app/assets/javascripts/lalala/modules/locale_chooser.module.js
|
1318
|
+
- app/assets/javascripts/lalala/modules/login.module.js
|
1316
1319
|
- app/assets/javascripts/lalala/modules/sorted_pages_tree.module.js
|
1317
1320
|
- app/assets/javascripts/lalala/modules/storage.module.js
|
1318
1321
|
- app/assets/stylesheets/lalala/_base.css.scss
|
@@ -1354,6 +1357,7 @@ files:
|
|
1354
1357
|
- app/models/lalala/file_asset.rb
|
1355
1358
|
- app/models/lalala/image_asset.rb
|
1356
1359
|
- app/models/lalala/page.rb
|
1360
|
+
- app/views/active_admin/devise/sessions/new.html.erb
|
1357
1361
|
- app/views/lalala/markdown/cheatsheet.html.erb
|
1358
1362
|
- app/views/lalala/markdown/preview.html.erb
|
1359
1363
|
- app/views/lalala/public/errors/internal_server_error.html.erb
|
@@ -1365,6 +1369,7 @@ files:
|
|
1365
1369
|
- config/initializers/carrierwave.rb
|
1366
1370
|
- config/initializers/database.rb
|
1367
1371
|
- config/initializers/devise.rb
|
1372
|
+
- config/locales/en.yml
|
1368
1373
|
- config/routes.rb
|
1369
1374
|
- db/migrate/20130321140345_devise_create_admin_users.rb
|
1370
1375
|
- db/migrate/20130321140351_create_admin_notes.rb
|
@@ -1421,6 +1426,7 @@ files:
|
|
1421
1426
|
- lib/lalala/ext_i18n.rb
|
1422
1427
|
- lib/lalala/ext_i18n/input_helper.rb
|
1423
1428
|
- lib/lalala/ext_i18n/locale_source.rb
|
1429
|
+
- lib/lalala/ext_i18n/name_for_locale.rb
|
1424
1430
|
- lib/lalala/ext_i18n/negotiation_adapter.rb
|
1425
1431
|
- lib/lalala/ext_i18n/test_negotiation_adapter.rb
|
1426
1432
|
- lib/lalala/ext_rack.rb
|
@@ -1501,11 +1507,13 @@ files:
|
|
1501
1507
|
- test/dummy/config/initializers/session_store.rb
|
1502
1508
|
- test/dummy/config/initializers/wrap_parameters.rb
|
1503
1509
|
- test/dummy/config/locales/en.yml
|
1510
|
+
- test/dummy/config/locales/nl.yml
|
1504
1511
|
- test/dummy/config/routes.rb
|
1505
1512
|
- test/dummy/db/.gitkeep
|
1506
1513
|
- test/dummy/db/migrate/20130528092721_create_articles.rb
|
1507
1514
|
- test/dummy/db/migrate/20130729125648_create_home_page.rb
|
1508
1515
|
- test/dummy/db/migrate/20131113134503_add_category_to_articles.rb
|
1516
|
+
- test/dummy/db/migrate/20131121092946_make_articles_translatable.rb
|
1509
1517
|
- test/dummy/db/schema.rb
|
1510
1518
|
- test/dummy/lib/assets/.gitkeep
|
1511
1519
|
- test/dummy/log/.gitkeep
|
@@ -1544,7 +1552,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1544
1552
|
version: 1.3.1
|
1545
1553
|
requirements: []
|
1546
1554
|
rubyforge_project:
|
1547
|
-
rubygems_version: 2.
|
1555
|
+
rubygems_version: 2.1.11
|
1548
1556
|
signing_key:
|
1549
1557
|
specification_version: 4
|
1550
1558
|
summary: 'Lalala: Probably the best CMS in the world.'
|
@@ -1592,11 +1600,13 @@ test_files:
|
|
1592
1600
|
- test/dummy/config/initializers/session_store.rb
|
1593
1601
|
- test/dummy/config/initializers/wrap_parameters.rb
|
1594
1602
|
- test/dummy/config/locales/en.yml
|
1603
|
+
- test/dummy/config/locales/nl.yml
|
1595
1604
|
- test/dummy/config/routes.rb
|
1596
1605
|
- test/dummy/db/.gitkeep
|
1597
1606
|
- test/dummy/db/migrate/20130528092721_create_articles.rb
|
1598
1607
|
- test/dummy/db/migrate/20130729125648_create_home_page.rb
|
1599
1608
|
- test/dummy/db/migrate/20131113134503_add_category_to_articles.rb
|
1609
|
+
- test/dummy/db/migrate/20131121092946_make_articles_translatable.rb
|
1600
1610
|
- test/dummy/db/schema.rb
|
1601
1611
|
- test/dummy/lib/assets/.gitkeep
|
1602
1612
|
- test/dummy/log/.gitkeep
|