i18n
This commit is contained in:
@@ -3,8 +3,10 @@
|
||||
#= require_tree ./models
|
||||
#= require_tree ./views
|
||||
#= require_tree ./routers
|
||||
#= require ./i18n
|
||||
|
||||
window.BeatHaven =
|
||||
Modules: {}
|
||||
Models: {}
|
||||
Collections: {}
|
||||
Routers: {}
|
||||
@@ -12,6 +14,8 @@ window.BeatHaven =
|
||||
|
||||
Player: null
|
||||
User: null
|
||||
I18n: null
|
||||
locales: {}
|
||||
|
||||
init: ->
|
||||
new BeatHaven.Routers.Main()
|
||||
@@ -21,6 +25,7 @@ window.BeatHaven =
|
||||
@Player = new BeatHaven.Models.Player()
|
||||
@User = new BeatHaven.Models.User()
|
||||
@VK = new BeatHaven.Models.VK()
|
||||
@I18n = new BeatHaven.Modules.I18n()
|
||||
|
||||
# @VK.init()
|
||||
|
||||
@@ -32,6 +37,7 @@ window.BeatHaven =
|
||||
false
|
||||
|
||||
# Backbone.history.navigate("/tour", true)
|
||||
@I18n.init()
|
||||
|
||||
log: (data) ->
|
||||
console.log data
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
class BeatHaven.Modules.I18n
|
||||
fallback_locale: "ru"
|
||||
|
||||
init: ->
|
||||
this.translate_app()
|
||||
|
||||
locale: ->
|
||||
return @fallback_locale unless BH.User? and BH.User.locale?
|
||||
return @fallback_locale unless BH.User.locale in ["en"]
|
||||
BH.User.locale
|
||||
|
||||
translate_app: ->
|
||||
lang_code = this.locale()
|
||||
self = this
|
||||
$("*[data-translate-contents], *[data-translate-title], *[data-translate-placeholder]").each ->
|
||||
if $(this).data("translate-contents")?
|
||||
type = "contents"
|
||||
else if $(this).data("translate-title")?
|
||||
type = "title"
|
||||
else if $(this).data("translate-placeholder")?
|
||||
type = "placeholder"
|
||||
lstr = $(this).data("translate-#{type}")
|
||||
val = self.t(lstr, lang_code)
|
||||
|
||||
switch type
|
||||
when "contents"
|
||||
$(this).html(val)
|
||||
when "title"
|
||||
$(this).attr("title", val)
|
||||
when "placeholder"
|
||||
$(this).attr("placeholder", val)
|
||||
|
||||
t: (lstr, lang_code) ->
|
||||
unless lang_code?
|
||||
lang_code = this.locale()
|
||||
eval "BH.locales.#{lang_code}['#{lstr.split(".").join("']['")}']"
|
||||
@@ -4,17 +4,27 @@
|
||||
<div class="pic">
|
||||
<img src="{{album_pic}}" alt="{{album_title}}"><br>
|
||||
<div class="bh-underlay-blue">
|
||||
<a href="" class="btn btn-bh-dark album-add"><i class="icon-plus icon-white"></i> Add to playlist</a>
|
||||
<a href="" class="btn btn-bh-dark album-add">
|
||||
<i class="icon-plus"></i>
|
||||
<span data-translate-contents="artist.album.add">{{i18n_add}}</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="bh-underlay-green">
|
||||
<a href="" class="btn btn-bh-dark album-play"><i class="icon-play icon-white"></i> Play</a>
|
||||
<a href="" class="btn btn-bh-dark album-play">
|
||||
<i class="icon-play icon-white"></i>
|
||||
<span data-translate-contents="artist.album.play">{{i18n_play}}</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<ul class="tracks">
|
||||
{{#album_tracks}}
|
||||
<li data-id="{{track_id}}">
|
||||
<a href="" class="btn btn-round track-play"><i class="icon-play"></i></a>
|
||||
<a href="" class="btn btn-round track-pause"><i class="icon-pause"></i></a>
|
||||
<a href="" class="btn btn-round track-play" data-translate-title="artist.album.track.play" title="{{i18n_play}}">
|
||||
<i class="icon-play"></i>
|
||||
</a>
|
||||
<a href="" class="btn btn-round track-pause" data-translate-title="artist.album.track.pause" title="{{i18n_pause}}">
|
||||
<i class="icon-pause"></i>
|
||||
</a>
|
||||
<div class="title">
|
||||
<div class="inner">
|
||||
<a href="{{track_url}}" class="track-link">{{track_title}}</a>
|
||||
@@ -25,7 +35,9 @@
|
||||
</div>
|
||||
</div>
|
||||
<span class="length">{{track_length}}</span>
|
||||
<a href="" class="btn btn-round track-add"><i class="icon-plus"></i></a>
|
||||
<a href="" class="btn btn-round track-add" data-translate-title="artist.album.track.add" title="{{i18n_add}}">
|
||||
<i class="icon-plus"></i>
|
||||
</a>
|
||||
</li>
|
||||
{{/album_tracks}}
|
||||
</ul>
|
||||
|
||||
@@ -12,25 +12,37 @@
|
||||
<div class="pic">
|
||||
<img src="{{album_pic}}" alt="{{album_title}}"><br>
|
||||
<div class="bh-underlay-blue">
|
||||
<a href="" class="btn btn-bh-dark album-add"><i class="icon-plus"></i> Add to playlist</a>
|
||||
<a href="" class="btn btn-bh-dark album-add">
|
||||
<i class="icon-plus"></i>
|
||||
<span data-translate-contents="artist.album.add">{{i18n_add}}</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="bh-underlay-green">
|
||||
<a href="" class="btn btn-bh-dark album-play"><i class="icon-play icon-white"></i> Play</a>
|
||||
<a href="" class="btn btn-bh-dark album-play">
|
||||
<i class="icon-play icon-white"></i>
|
||||
<span data-translate-contents="artist.album.play">{{i18n_play}}</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="title">{{album_title}} ({{album_year}})</h2>
|
||||
<ul class="tracks">
|
||||
{{#album_tracks}}
|
||||
<li data-id="{{track_id}}">
|
||||
<a href="" class="btn btn-round track-play"><i class="icon-play"></i></a>
|
||||
<a href="" class="btn btn-round track-pause"><i class="icon-pause"></i></a>
|
||||
<a href="" class="btn btn-round track-play" data-translate-title="artist.album.track.play" title="{{i18n_play}}">
|
||||
<i class="icon-play"></i>
|
||||
</a>
|
||||
<a href="" class="btn btn-round track-pause" data-translate-title="artist.album.track.pause" title="{{i18n_pause}}">
|
||||
<i class="icon-pause"></i>
|
||||
</a>
|
||||
<div class="title">
|
||||
<div class="inner">
|
||||
<a href="{{track_url}}" class="track-link">{{track_title}}</a>
|
||||
</div>
|
||||
</div>
|
||||
<span class="length">{{track_length}}</span>
|
||||
<a href="" class="btn btn-round track-add"><i class="icon-plus"></i></a>
|
||||
<a href="" class="btn btn-round track-add" data-translate-title="artist.album.track.add" title="{{i18n_add}}">
|
||||
<i class="icon-plus"></i>
|
||||
</a>
|
||||
</li>
|
||||
{{/album_tracks}}
|
||||
</ul>
|
||||
|
||||
@@ -7,7 +7,12 @@ class BeatHaven.Views.ArtistShow extends Backbone.View
|
||||
render: ->
|
||||
if typeof @model.get("artist_bio") != "undefined"
|
||||
for album_info in @model.get("artist_albums")
|
||||
album_info["i18n_add"] = BH.I18n.t("artist.album.add")
|
||||
album_info["i18n_play"] = BH.I18n.t("artist.album.play")
|
||||
for track_info in album_info.album_tracks
|
||||
track_info["i18n_add"] = BH.I18n.t("artist.album.track.add")
|
||||
track_info["i18n_play"] = BH.I18n.t("artist.album.track.play")
|
||||
track_info["i18n_pause"] = BH.I18n.t("artist.album.track.pause")
|
||||
track = new BeatHaven.Models.Track(track_info.meta)
|
||||
BeatHaven.Player.tracks.push(track)
|
||||
$(@el).html(@template.render(@model.toJSON()))
|
||||
|
||||
Reference in New Issue
Block a user