Skip to content

Commit

Permalink
refactor(i18n): use strings for content
Browse files Browse the repository at this point in the history
  • Loading branch information
paglias committed May 6, 2014
1 parent 626352e commit d242ee3
Show file tree
Hide file tree
Showing 12 changed files with 72 additions and 52 deletions.
4 changes: 2 additions & 2 deletions public/js/controllers/inventoryCtrl.js
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ habitrpg.controller("InventoryCtrl", ['$rootScope', '$scope', '$window', 'User',
var food = $scope.selectedFood
if (food.key == 'Saddle') {
if (!$window.confirm(window.env.t('useSaddle', {pet: pet}))) return;
} else if (!$window.confirm(window.env.t('feedPet', {name: petDisplayName, article: food.article, text: food.text}))) {
} else if (!$window.confirm(window.env.t('feedPet', {name: petDisplayName, article: food.article, text: food.text()}))) {
return;
}
User.user.ops.feed({params:{pet: pet, food: food.key}});
Expand All @@ -124,7 +124,7 @@ habitrpg.controller("InventoryCtrl", ['$rootScope', '$scope', '$window', 'User',
var item = Content.quests[quest];
var completedPrevious = !item.previous || (User.user.achievements.quests && User.user.achievements.quests[item.previous]);
if (!completedPrevious)
return alert(window.env.t('mustComplete', {quest: $rootScope.Content.quests[item.previous].text}));
return alert(window.env.t('mustComplete', {quest: $rootScope.Content.quests[item.previous].text()}));
if (item.lvl && item.lvl > user.stats.lvl)
return alert(window.env.t('mustLevel', {level: item.lvl}));
$rootScope.selectedQuest = item;
Expand Down
8 changes: 4 additions & 4 deletions public/js/controllers/rootCtrl.js
Original file line number Diff line number Diff line change
Expand Up @@ -204,11 +204,11 @@ habitrpg.controller("RootCtrl", ['$scope', '$rootScope', '$location', 'User', '$

$http.post('/api/v2/user/class/cast/'+spell.key+'?targetType='+type+'&targetId='+targetId)
.success(function(){
var msg = window.env.t('youCast', {spell: spell.text});
var msg = window.env.t('youCast', {spell: spell.text()});
switch (type) {
case 'task': msg = window.env.t('youCastTarget', {spell: spell.text, target: target.text});break;
case 'user': msg = window.env.t('youCastTarget', {spell: spell.text, target: target.profile.name});break;
case 'party': msg = window.env.t('youCastParty', {spell: spell.text});break;
case 'task': msg = window.env.t('youCastTarget', {spell: spell.text(), target: target.text});break;
case 'user': msg = window.env.t('youCastTarget', {spell: spell.text(), target: target.profile.name});break;
case 'party': msg = window.env.t('youCastParty', {spell: spell.text()});break;
}
Notification.text(msg);
});
Expand Down
2 changes: 1 addition & 1 deletion src/controllers/user.js
Original file line number Diff line number Diff line change
Expand Up @@ -336,7 +336,7 @@ api.cast = function(req, res, next) {

if (group) {
series.push(function(cb2){
var message = '`'+user.profile.name+' casts '+spell.text + (targetType=='user' ? ' on '+found.profile.name : ' for the party')+'.`';
var message = '`'+user.profile.name+' casts '+spell.text() + (targetType=='user' ? ' on '+found.profile.name : ' for the party')+'.`';
group.sendChat(message);
group.save(cb2);
})
Expand Down
31 changes: 26 additions & 5 deletions src/models/user.js
Original file line number Diff line number Diff line change
Expand Up @@ -305,14 +305,14 @@ var UserSchema = new Schema({
id: { type: String, 'default': shared.uuid },
name: String,
challenge: String
}], 'default': shared.content.userDefaults.tags},
}]},

challenges: [{type: 'String', ref:'Challenge'}],

habits: {type:[TaskSchemas.HabitSchema], 'default': shared.content.userDefaults.habits},
dailys: {type:[TaskSchemas.DailySchema], 'default': shared.content.userDefaults.dailys},
todos: {type:[TaskSchemas.TodoSchema], 'default': shared.content.userDefaults.todos},
rewards: {type:[TaskSchemas.RewardSchema], 'default': shared.content.userDefaults.rewards},
habits: {type:[TaskSchemas.HabitSchema]},
dailys: {type:[TaskSchemas.DailySchema]},
todos: {type:[TaskSchemas.TodoSchema]},
rewards: {type:[TaskSchemas.RewardSchema]},

extra: Schema.Types.Mixed

Expand Down Expand Up @@ -348,6 +348,27 @@ UserSchema.post('init', function(doc){

UserSchema.pre('save', function(next) {

// Populate new users with default content
if (this.isNew){
//TODO for some reason this doesn't work here: `_.merge(this, shared.content.userDefaults);`
var self = this;

_.each('habits', 'dailys', 'todos', 'rewards', 'tags', function(taskType){
self.taskType = _.map(shared.content.userDefaults[taskType], function(task){
var newTask = task;

// Render task's text and notes in user's language
newTask.text = task.text();
newTask.notes = task.notes();

return newTask;
});
});

// tasks automatically get id=helpers.uuid() from TaskSchema id.default, but tags are Schema.Types.Mixed - so we need to manually invoke here
_.each(this.tags, function(tag){tag.id = shared.uuid();})
}

//this.markModified('tasks');
if (_.isNaN(this.preferences.dayStart) || this.preferences.dayStart < 0 || this.preferences.dayStart > 23) {
this.preferences.dayStart = 0;
Expand Down
28 changes: 14 additions & 14 deletions views/options/inventory/inventory.jade
Original file line number Diff line number Diff line change
Expand Up @@ -32,36 +32,36 @@ script(type='text/ng-template', id='partials/options.inventory.drops.html')
p.muted(ng-show='eggCount < 1')=env.t('noEggs')
div(ng-repeat='(egg,points) in ownedItems(user.items.eggs)')
//TODO move positioning this styling to css
button.customize-option(popover='{{Content.eggs[egg].notes}}', popover-title='{{Content.eggs[egg].text}} Egg', popover-trigger='mouseenter', popover-placement='right', ng-click='chooseEgg(egg)', class='Pet_Egg_{{egg}}', ng-class='{selectableInventory: selectedPotion && !(user.items.pets[egg+"-"+selectedPotion.key]>0)}')
button.customize-option(popover='{{Content.eggs[egg].notes()}}', popover-title='{{Content.eggs[egg].text()}} Egg', popover-trigger='mouseenter', popover-placement='right', ng-click='chooseEgg(egg)', class='Pet_Egg_{{egg}}', ng-class='{selectableInventory: selectedPotion && !(user.items.pets[egg+"-"+selectedPotion.key]>0)}')
.badge.badge-info.stack-count {{points}}
//-p {{Content.eggs[egg].text}}
//-p {{Content.eggs[egg].text()}}
li.customize-menu
menu.hatchingPotion-menu(label=(env.t('hatchingPotions') + ' ({{potCount}})'))
p.muted(ng-show='potCount < 1')=env.t('noHatchingPotions')
div(ng-repeat='(pot,points) in ownedItems(user.items.hatchingPotions)')
button.customize-option(popover='{{Content.hatchingPotions[pot].notes}}', popover-title='{{Content.hatchingPotions[pot].text}} Potion', popover-trigger='mouseenter', popover-placement='right', ng-click='choosePotion(pot)', class='Pet_HatchingPotion_{{pot}}', ng-class='{selectableInventory: selectedEgg && !(user.items.pets[selectedEgg.key+"-"+pot]>0)}')
button.customize-option(popover='{{Content.hatchingPotions[pot].notes()}}', popover-title='{{Content.hatchingPotions[pot].text()}} Potion', popover-trigger='mouseenter', popover-placement='right', ng-click='choosePotion(pot)', class='Pet_HatchingPotion_{{pot}}', ng-class='{selectableInventory: selectedEgg && !(user.items.pets[selectedEgg.key+"-"+pot]>0)}')
.badge.badge-info.stack-count {{points}}

li.customize-menu
menu.pets-menu(label=(env.t('scrolls') + ' ({{questCount}})'))
p.muted(ng-show='questCount < 1')=env.t('noScrolls')
p.muted!=env.t('scrollsText1') + ' <a href="/#/options/groups/party">' + env.t('scrollsText2') + '</a>'
div(ng-repeat='(quest_key,points) in ownedItems(user.items.quests)', ng-init='quest = Content.quests[quest_key]')
button.customize-option(popover="{{quest.previous && !user.achievements.quests[quest.previous] ? env.t('scrollsPre') : quest.notes | htmlDecode}}", popover-title='{{quest.text}}', popover-trigger='mouseenter', popover-placement='right', ng-click='showQuest(quest_key)', class='inventory_quest_scroll', ng-class='{locked: quest.previous && !user.achievements.quests[quest.previous]}')
button.customize-option(popover="{{quest.previous && !user.achievements.quests[quest.previous] ? env.t('scrollsPre') : quest.notes() | htmlDecode}}", popover-title='{{quest.text()}}', popover-trigger='mouseenter', popover-placement='right', ng-click='showQuest(quest_key)', class='inventory_quest_scroll', ng-class='{locked: quest.previous && !user.achievements.quests[quest.previous]}')
.badge.badge-info.stack-count {{points}}

li.customize-menu
menu.pets-menu(label=env.t('food') + ' ({{foodCount}})')
p(ng-show='foodCount < 1')=env.t('noFood')
div(ng-repeat='(food,points) in ownedItems(user.items.food)')
button.customize-option(popover='{{Content.food[food].notes}}', popover-title='{{Content.food[food].text}}', popover-trigger='mouseenter', popover-placement='right', ng-click='chooseFood(food)', class='Pet_Food_{{food}}')
button.customize-option(popover='{{Content.food[food].notes()}}', popover-title='{{Content.food[food].text()}}', popover-trigger='mouseenter', popover-placement='right', ng-click='chooseFood(food)', class='Pet_Food_{{food}}')
.badge.badge-info.stack-count {{points}}

li.customize-menu(ng-if='user.items.special.snowball')
menu.pets-menu(label=env.t('special'))
div
button.customize-option(popover='{{Content.special.snowball.notes}}', popover-title='{{Content.special.snowball.text}}', popover-trigger='mouseenter', popover-placement='right', ng-click='castStart(Content.special.snowball)', class='inventory_special_snowball')
button.customize-option(popover='{{Content.special.snowball.notes()}}', popover-title='{{Content.special.snowball.text()}}', popover-trigger='mouseenter', popover-placement='right', ng-click='castStart(Content.special.snowball)', class='inventory_special_snowball')
.badge.badge-info.stack-count {{user.items.special.snowball}}

li.customize-menu(ng-if='user.items.special.valentineReceived[0]')
Expand Down Expand Up @@ -91,14 +91,14 @@ script(type='text/ng-template', id='partials/options.inventory.drops.html')
.popover-content
p=env.t('welcomeMarket')
p
button.btn.btn-primary(ng-show='selectedEgg', ng-click='sellInventory()')=env.t('sellForGold', {item: "{{selectedEgg.text}}", gold: "{{selectedEgg.value}}"})
button.btn.btn-primary(ng-show='selectedPotion', ng-click='sellInventory()')=env.t('sellForGold', {item: "{{selectedPotion.text}}", gold: "{{selectedPotion.value}}"})
button.btn.btn-primary(ng-show='selectedFood', ng-click='sellInventory()')=env.t('sellForGold', {item: "{{selectedFood.text}}", gold: "{{selectedFood.value}}"})
button.btn.btn-primary(ng-show='selectedEgg', ng-click='sellInventory()')=env.t('sellForGold', {item: "{{selectedEgg.text()}}", gold: "{{selectedEgg.value}}"})
button.btn.btn-primary(ng-show='selectedPotion', ng-click='sellInventory()')=env.t('sellForGold', {item: "{{selectedPotion.text()}}", gold: "{{selectedPotion.value}}"})
button.btn.btn-primary(ng-show='selectedFood', ng-click='sellInventory()')=env.t('sellForGold', {item: "{{selectedFood.text()}}", gold: "{{selectedFood.value}}"})
menu.inventory-list(type='list')
li.customize-menu
menu.pets-menu(label=env.t('eggs'))
div(ng-repeat='egg in Content.eggs', ng-if='egg.canBuy')
button.customize-option(popover='{{egg.notes}}', popover-title='{{egg.text}} Egg', popover-trigger='mouseenter', popover-placement='left', ng-click='purchase("eggs", egg)', class='Pet_Egg_{{egg.key}}')
button.customize-option(popover='{{egg.notes()}}', popover-title='{{egg.text()}} Egg', popover-trigger='mouseenter', popover-placement='left', ng-click='purchase("eggs", egg)', class='Pet_Egg_{{egg.key}}')
p
| {{egg.value}}
span.Pet_Currency_Gem1x.inline-gems
Expand All @@ -121,15 +121,15 @@ script(type='text/ng-template', id='partials/options.inventory.drops.html')
li.customize-menu
menu.pets-menu(label=env.t('hatchingPotions'))
div(ng-repeat='pot in Content.hatchingPotions')
button.customize-option(popover='{{pot.notes}}', popover-title='{{pot.text}} Potion', popover-trigger='mouseenter', popover-placement='left', ng-click='purchase("hatchingPotions", pot)', class='Pet_HatchingPotion_{{pot.key}}')
button.customize-option(popover='{{pot.notes()}}', popover-title='{{pot.text()}} Potion', popover-trigger='mouseenter', popover-placement='left', ng-click='purchase("hatchingPotions", pot)', class='Pet_HatchingPotion_{{pot.key}}')
p
| {{pot.value}}
span.Pet_Currency_Gem1x.inline-gems

li.customize-menu
menu.pets-menu(label=env.t('food'))
div(ng-repeat='food in Content.food', ng-if='food.canBuy')
button.customize-option(popover='{{food.notes}}', popover-title='{{food.text}}', popover-trigger='mouseenter', popover-placement='left', ng-click='purchase("food", food)', class='Pet_Food_{{food.key}}')
button.customize-option(popover='{{food.notes()}}', popover-title='{{food.text()}}', popover-trigger='mouseenter', popover-placement='left', ng-click='purchase("food", food)', class='Pet_Food_{{food.key}}')
p
| {{food.value}}
span.Pet_Currency_Gem1x.inline-gems
Expand All @@ -138,7 +138,7 @@ script(type='text/ng-template', id='partials/options.inventory.drops.html')
menu.pets-menu(label=env.t('quests'))
p.muted!=env.t('scrollsText1') + ' <a href="/#/options/groups/party">' + env.t('scrollsText2') + '</a>'
div(ng-repeat='quest in Content.quests', ng-if='quest.canBuy')
button.customize-option(popover="{{quest.previous && !user.achievements.quests[quest.previous] ? env.t('scrollsPre') : quest.notes | htmlDecode}}", popover-title='{{quest.text}}', popover-trigger='mouseenter', popover-placement='left', ng-click='buyQuest(quest.key)', class='inventory_quest_scroll', ng-class='{locked: quest.previous && !user.achievements.quests[quest.previous]}')
button.customize-option(popover="{{quest.previous && !user.achievements.quests[quest.previous] ? env.t('scrollsPre') : quest.notes() | htmlDecode}}", popover-title='{{quest.text()}}', popover-trigger='mouseenter', popover-placement='left', ng-click='buyQuest(quest.key)', class='inventory_quest_scroll', ng-class='{locked: quest.previous && !user.achievements.quests[quest.previous]}')
p
| {{quest.value}}
span.Pet_Currency_Gem1x.inline-gems
Expand All @@ -151,7 +151,7 @@ script(type='text/ng-template', id='partials/options.inventory.drops.html')
| 4
span.Pet_Currency_Gem1x.inline-gems
//-div
button.customize-option(popover='{{Content.spells.special.snowball.notes}}', popover-title='{{Content.spells.special.snowball.text}}', popover-trigger='mouseenter', popover-placement='left', ng-click='purchase("special", Content.spells.special.snowball)', class='inventory_special_snowball')
button.customize-option(popover='{{Content.spells.special.snowball.notes()}}', popover-title='{{Content.spells.special.snowball.text()}}', popover-trigger='mouseenter', popover-placement='left', ng-click='purchase("special", Content.spells.special.snowball)', class='inventory_special_snowball')
p
| {{Content.spells.special.snowball.value}}
span.Pet_Currency_Gem1x.inline-gems
Expand Down
8 changes: 4 additions & 4 deletions views/options/inventory/stable.jade
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ script(type='text/ng-template', id='partials/options.inventory.mounts.html')
menu.pets(type='list')
li.customize-menu(ng-repeat='egg in Content.eggs')
menu
div(ng-repeat='potion in Content.hatchingPotions', popover-trigger='mouseenter', popover='{{potion.text}} {{egg.mountText}}', popover-placement='bottom', ng-init='mount = egg.key+"-"+potion.key')
div(ng-repeat='potion in Content.hatchingPotions', popover-trigger='mouseenter', popover='{{potion.text()}} {{egg.mountText()}}', popover-placement='bottom', ng-init='mount = egg.key+"-"+potion.key')
button(class="pet-button Mount_Head_{{mount}}", ng-show='user.items.mounts[mount]', ng-class='{active: user.items.currentMount == mount}', ng-click='chooseMount(egg.key, potion.key)')
//div(class='Mount_Head_{{mount}}')
button(class="pet-button pet-not-owned", ng-hide='user.items.mounts[mount]')
Expand All @@ -33,7 +33,7 @@ mixin petList(source)
menu.pets(type='list')
li.customize-menu(ng-repeat='egg in #{source}')
menu
div(ng-repeat='potion in Content.hatchingPotions', popover-trigger='mouseenter', popover='{{potion.text}} {{egg.text}}', popover-placement='bottom', ng-init='pet = egg.key+"-"+potion.key')
div(ng-repeat='potion in Content.hatchingPotions', popover-trigger='mouseenter', popover='{{potion.text()}} {{egg.text()}}', popover-placement='bottom', ng-init='pet = egg.key+"-"+potion.key')
button(class="pet-button Pet-{{pet}}", ng-if='user.items.pets[pet]>0', ng-class='{active: user.items.currentPet == pet, selectableInventory: selectedFood}', ng-click='choosePet(egg.key, potion.key)')
.progress(ng-show='!user.items.mounts[pet] && egg.key!="Egg"')
.progress-bar.progress-bar-success(style="width:{{user.items.pets[pet]/.5}}%")
Expand Down Expand Up @@ -85,7 +85,7 @@ script(type='text/ng-template', id='partials/options.inventory.pets.html')
li.customize-menu
menu.pets-menu(label=env.t('food'))
div(ng-repeat='(food,points) in ownedItems(user.items.food)')
button.customize-option(popover-append-to-body='true', popover='{{Content.food[food].notes}}', popover-title='{{Content.food[food].text}}', popover-trigger='mouseenter', popover-placement='left', ng-click='chooseFood(food)', class='Pet_Food_{{food}}')
button.customize-option(popover-append-to-body='true', popover='{{Content.food[food].notes()}}', popover-title='{{Content.food[food].text()}}', popover-trigger='mouseenter', popover-placement='left', ng-click='chooseFood(food)', class='Pet_Food_{{food}}')
.badge.badge-info.stack-count {{points}}
// Remove this once we have images in
p {{Content.food[food].text}}
p {{Content.food[food].text()}}
8 changes: 4 additions & 4 deletions views/options/social/group.jade
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ a.pull-right.gem-wallet(popover-trigger='mouseenter', popover-title=env.t('guild
// ------ Bosses -------
.panel.panel-default(bindonce='group', ng-if='group.type==="party" && group.quest.key')
.panel-heading
h3.panel-title(ng-if='group.quest.active==false')=env.t('questInvitation') + ' {{Content.quests[group.quest.key].text}}'
h3.panel-title(ng-if='group.quest.active==true') {{Content.quests[group.quest.key].text}}
h3.panel-title(ng-if='group.quest.active==false')=env.t('questInvitation') + ' {{Content.quests[group.quest.key].text()}}'
h3.panel-title(ng-if='group.quest.active==true') {{Content.quests[group.quest.key].text()}}
.panel-body.modal-fixed-height
div(ng-if='group.quest.active==false')
table.table.table-striped
Expand Down Expand Up @@ -50,11 +50,11 @@ a.pull-right.gem-wallet(popover-trigger='mouseenter', popover-title=env.t('guild
tr(ng-repeat='(k,v) in group.quest.progress.collect', class='quest_collected_{{v >= Content.quests[group.quest.key].collect[k].count}}')
td
div.pull-left(class='quest_{{group.quest.key}}_{{k}}')
| {{Content.quests[group.quest.key].collect[k].text}}
| {{Content.quests[group.quest.key].collect[k].text()}}
td
{{v}} / {{Content.quests[group.quest.key].collect[k].count}}

div(ng-bind-html='Content.quests[group.quest.key].notes')
div(ng-bind-html='Content.quests[group.quest.key].notes()')
hr
h5=env.t('participants')
table.table.table-striped
Expand Down
Loading

0 comments on commit d242ee3

Please sign in to comment.