Added site locales

This commit is contained in:
magnolia-fan
2011-06-30 09:12:52 +04:00
parent 124e9e481e
commit 13a233ac72
26 changed files with 406 additions and 112 deletions
+2 -2
View File
@@ -29,13 +29,13 @@ class Ajax
loadSearchPage: ->
$.get '/templates/search.html', (data) ->
_ajax.setArchor '/search/'
_pages.renderSearch data
_pages.renderSearch _beathaven.localizeHTML $(data)
false
loadSettingsPage: ->
$.get '/templates/settings.html', (data) ->
_ajax.setArchor '/settings/'
_pages.renderSettings data
_pages.renderSettings _beathaven.localizeHTML $(data)
false
load404Page: ->
+28
View File
@@ -18,13 +18,16 @@ $ ->
$(window).resize ->
_beathaven.adjustSizes()
false
window.setTimeout ->
_beathaven.checkRedrawScrollbar()
false
, 500
class BeatHaven
last_height: false
lang: 'ru'
init: ->
this.adjustSizes()
@@ -44,6 +47,8 @@ class BeatHaven
_pages = new Pages()
_settings = new Settings()
false
adjustSizes: ->
$('.data-container').height $(window).height() - $('.header-container').height()
@@ -53,6 +58,7 @@ class BeatHaven
$('.data-container').scrollbar()
$('.playlist').scrollbar()
false
checkRedrawScrollbar: ->
focused_id = false
@@ -67,11 +73,33 @@ class BeatHaven
focused_id = false
window.setTimeout ->
_beathaven.checkRedrawScrollbar()
false
, 500
false
redrawScrollbar: ->
$('.data-container').html $('.data-container').find('.inner').first()
$('.data-container').scrollbar()
false
localizeHTML: (obj) ->
unless obj?
obj = $('body')
$(obj).find('[data-ls]').each ->
if _locale[$(this).attr 'data-ls']? and _locale[$(this).attr 'data-ls'][_beathaven.lang]?
if this.nodeName is 'INPUT'
$(this).val _locale[$(this).attr 'data-ls'][_beathaven.lang]
else
$(this).text _locale[$(this).attr 'data-ls'][_beathaven.lang]
return obj
ls: (id, lang) ->
unless lang?
lang = _beathaven.lang
if _locale[id]? and _locale[id][lang]?
_locale[id][lang]
else
id
String::htmlsafe = ->
+80
View File
@@ -0,0 +1,80 @@
_locale =
# Global
SEARCH:
en: "Search"
ru: "Поиск"
NEWS:
en: "News"
ru: "Новости"
ABOUT:
en: "About"
ru: "О проекте"
LOGIN:
en: "Log in"
ru: "Войти"
LOGOUT:
en: "Log out"
ru: "Выйти"
ADD_SOME_MUSIC:
en: "Add some music to playlist"
ru: "Добавьте музыку в плей-лист"
LOGIN_PLEASE:
en: "Don't forget to log in, please. It's simple."
ru: "Авторизуйтесь, пожалуйста. Это действительно просто."
REPEAT:
en: "Repeat"
ru: "Повторять"
SHUFFLE:
en: "Shuffle"
ru: "Перемешать"
EMPTY_PLAYLIST:
en: "Empty playlist"
ru: "Очистить"
HELLO:
en: "Hi there"
ru: "Привет"
# Search
ARTIST_LOADING_FAILED:
en: "Something very bad happened while we tried out to load some info about this artist. How about some other one?"
ru: "Что-то ужасное произошло пока мы собирали информацию об этом исполнителе. Может пока поищем другого?"
ARTIST_LOADING_IN_PROCESS:
en: "Artist info is loading for the first time now. Usually it takes less than a minute, please wait a bit."
ru: "Прямо сейчас мы собираем всю возможною информацию об этом исполнителе в первый раз. Обычно это занимает меньше минуты."
MISSPELLED:
en: "Misspelled?"
ru: "Опечатались?"
# Settings
SETTINGS_ACCOUNT:
en: "Account"
ru: "Аккаунт"
SETTINGS_LASTFM:
en: "Last.fm"
ru: "Last.fm"
USERNAME:
en: "Username"
ru: "Имя"
EMAIL:
en: "Email"
ru: "Почта"
LANG:
en: "Language"
ru: "Язык"
USELESS_BUTTON:
en: "Hello, my name is Useless Button"
ru: "Привет, меня зовут Бесполезная Кнопка"
NOT_CONNECTED:
en: "Not connected"
ru: "Не подключен"
CONNECT:
en: "Connect"
ru: "Подключить"
WINDOW_LANG_RELOAD:
en: "To change application language it is needed to reload page. Your current playlist will be emptied and music will stop. Do you really wish to continue?"
ru: "Чтобы изменить язык приложения, необходимо перезагрузить страницу. Ваш текущий плей-лист будет очищен и музыка остановится. Вы действительно хотите продолжить?"
# Player
ADD_TO_NOW_PLAYING:
en: "Add to Now Playing"
ru: "Добавить в плей-лист"
+1 -1
View File
@@ -21,7 +21,7 @@ class Pages
<div class="pic">
<img src="' +(if album.pic then album.pic else '/images/kitteh.png')+ '" alt="' +album.name+ ' by ' +data.artist.name+ '" width="250" height="250"/>
<div class="add-album-button-container">
<div class="add-album button gray">Add to Now Playing</div>
<div class="add-album button gray">'+_beathaven.ls('ADD_TO_NOW_PLAYING')+'</div>
</div>
</div>
<div class="tracklist"><ul></ul></div>
+2
View File
@@ -13,6 +13,8 @@ class Session
setUser: (user) ->
@user = user
_beathaven.lang = @user.lang
_beathaven.localizeHTML()
false
getUser: ->
+9 -1
View File
@@ -12,6 +12,7 @@ class Settings
if form == 'account'
$('.settings-container .form input[name$="username"]').val _session.getUser().name
$('.settings-container .form input[name$="email"]').val _session.getUser().email
$('.settings-container .form select').val _session.getUser().lang
else if form == 'lastfm'
if _session.getUser().lastfm_username
$('.form-container input[name$="username"]').first().val _session.getUser().lastfm_username
@@ -44,13 +45,20 @@ $('.lastfm-connect') .live 'click', ->
setTimeout _settings.updateLastfmLogin, 100
false
$('.settings-container .form input').live 'blur', ->
$('.settings-container .form input, .settings-container .form select').live 'blur', ->
active_tab = $('.settings-container .tabs .tab.active').attr 'data-fieldset'
if active_tab == 'account'
params =
username: $('.settings-container .form input[name$="username"]').first().val()
email: $('.settings-container .form input[name$="email"]').first().val()
lang: $('.settings-container .form select').first().val()
lang_changed = params.lang != _session.getUser().lang
if lang_changed
if not confirm _beathaven.ls 'WINDOW_LANG_RELOAD', params.lang
$('.settings-container .form select').val _session.getUser().lang
_settings.saveAccountInfo params, ->
if lang_changed
window.location.reload()
$('.header-container .hello .greating span').text (if params.username.length > 0 then params.username else '%username%')
false
false
+7 -6
View File
@@ -18,14 +18,14 @@ class Vkontakte
setTimeout ->
$('#vk_api_transport').append('<script async="async" src="http://vkontakte.ru/js/api/openapi.js"></script>')
$('#vk_api_transport').append('<script async="async" type="text/javascript" src="http://vkontakte.ru/js/api/openapi.js"></script>')
, 0
authInfo: (response) ->
if typeof response isnt 'undefined' and response.session
_session = new Session(response.session)
$('#vk_login, .auth_notice').hide()
$('#vk_login, .auth-notice').hide()
$('#vk_logout').css display: 'block'
$('#search_field').focus() if $('#search_field').length > 0
@@ -36,7 +36,7 @@ class Vkontakte
_session.query '/user/update', name: r.response, (ar2) ->
_session.setUser ar2.user
$('.header-container .hello .greating')
.html 'Tēnā koe, <span class="settings">' +(if _session.getUser().name then _session.getUser().name else '%username%')+ '</span>!'
.html _beathaven.ls('HELLO')+', <span class="settings">' +(if _session.getUser().name then _session.getUser().name else '%username%')+ '</span>!'
window._session = _session
_ajax.detectPage()
$('.fullscreen').hide();
@@ -45,7 +45,7 @@ class Vkontakte
$('.header-container .hello').show()
$('.header-container .hello .greating')
.html 'Tēnā koe, <span class="settings">' +(if _session.getUser().name then _session.getUser().name else '%username%')+ '</span>!'
.html _beathaven.ls('HELLO')+', <span class="settings">' +(if _session.getUser().name then _session.getUser().name else '%username%')+ '</span>!'
window._session = _session
_ajax.detectPage()
$('.fullscreen').hide();
@@ -58,7 +58,8 @@ class Vkontakte
else
_session = new Session({})
_session.setUser {}
$('#vk_login, .auth_notice').css display: 'block'
$('#vk_login').css display: 'block'
$('.auth-notice').css('left', $('#vk_login').offset().left).show()
$('.header-container .hello').hide()
window._session = _session
_ajax.detectPage()
@@ -128,7 +129,7 @@ class Vkontakte
@qr[query]
false
$('#vk_login').live 'click', ->
$('#vk_login, .auth-notice').live 'click', ->
VK.Auth.login (response) ->
_vkontakte.authInfo(response)
false