diff --git a/views/options/index.jade b/views/options/index.jade index e5a10f7865..aea6dedb26 100644 --- a/views/options/index.jade +++ b/views/options/index.jade @@ -13,19 +13,19 @@ script(id='partials/options.html', type="text/ng-template") li(ng-class="{ active: $state.includes('options.profile') }") a(ui-sref='options.profile') i.icon-user - | Profile + =env.t('profile') li(ng-class="{ active: $state.includes('options.social') }") a(ui-sref='options.social') i.icon-heart - | Social + =env.t('social') li(ng-class="{ active: $state.includes('options.inventory') }", ng-if='user.flags.dropsEnabled') a(ui-sref='options.inventory') i.icon-gift - | Inventory + =env.t('inventory') li(ng-class="{ active: $state.includes('options.settings') }") a(ui-sref='options.settings') i.icon-wrench - | Settings + =env.t('settings') .tab-content .tab-pane.active diff --git a/views/options/inventory/index.jade b/views/options/inventory/index.jade index f57e406c85..1671d70eac 100644 --- a/views/options/inventory/index.jade +++ b/views/options/inventory/index.jade @@ -5,17 +5,17 @@ script(type='text/ng-template', id='partials/options.inventory.html') ul.nav.nav-tabs li(ng-class="{ active: $state.includes('options.inventory.drops') }") a(ui-sref='options.inventory.drops') - | Market + =env.t('market') li(ng-class="{ active: $state.includes('options.inventory.pets') }") a(ui-sref='options.inventory.pets') - | Pets + =env.t('pets') li(ng-class="{ active: $state.includes('options.inventory.mounts') }") a(ui-sref='options.inventory.mounts') - | Mounts + =env.t('mounts') li.equipment-tab(ng-class="{ active: $state.includes('options.inventory.equipment') }") a(ui-sref='options.inventory.equipment') - | Equipment + =env.t('equipment') .tab-content .tab-pane.active - div(ui-view) \ No newline at end of file + div(ui-view) diff --git a/views/options/inventory/inventory.jade b/views/options/inventory/inventory.jade index b864cde8cc..36b1fa9319 100644 --- a/views/options/inventory/inventory.jade +++ b/views/options/inventory/inventory.jade @@ -1,19 +1,19 @@ script(type='text/ng-template', id='partials/options.inventory.equipment.html') .row-fluid .span6.border-right - h3 Battle Gear - small This is the gear you wear into battle, it affects numbers when interacting with your tasks. + h3=env.t('battlegear') + small =env.t('battlegeartext') li.customize-menu.inventory-gear menu.pets-menu(label='{{label}}', ng-repeat='(klass,label) in {base:"Base", warrior:"Warrior", wizard:"Wizard", rogue:"Rogue", healer:"Healer", special:"Special"}', ng-show='gear[klass]') div(ng-repeat='item in gear[klass]') button.customize-option(popover='{{item.notes}}', popover-title='{{item.text}}', popover-trigger='mouseenter', popover-placement='right', ng-click='user.ops.equip({params:{key:item.key}})', class='shop_{{item.key}}', ng-class='{selectableInventory: user.items.gear.equipped[item.type] == item.key}') .span6 - h3 Costume - small But if you prefer the look of other gear to what you have equipped, check this box to visually don a costume while wearing your battle gear underneath. + h3=env.t('costume') + small =env.t('costumetext') br label.checkbox.inline input(type="checkbox", ng-model="user.preferences.costume", ng-click='set({"preferences.costume":!user.preferences.costume})') - | Use Costume  + =env.t('usecostume') li.customize-menu(ng-if='user.preferences.costume') menu.pets-menu(label='{{label}}', ng-repeat='(klass,label) in {base:"Base", warrior:"Warrior", wizard:"Wizard", rogue:"Rogue", healer:"Healer", special:"Special"}', ng-show='gear[klass]') div(ng-repeat='item in gear[klass]') @@ -22,13 +22,13 @@ script(type='text/ng-template', id='partials/options.inventory.equipment.html') script(type='text/ng-template', id='partials/options.inventory.drops.html') .row-fluid .span6.border-right - h2 Inventory - p.well Click an egg to see usable potions highlighted in green and then click one of the highlighted potions to hatch your pet. If no potions are highlighted, click that egg again to deselect it, and instead click a potion first to have the usable eggs highlighted. You can also sell unwanted drops to Alexander the Merchant. + h2=env.t('inventory') + p.well =env.t('eggtext') menu.inventory-list(type='list') li.customize-menu menu.pets-menu(label='Eggs ({{eggCount}})') - p.muted(ng-show='eggCount < 1') You don't have any eggs. + 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]}') @@ -37,22 +37,22 @@ script(type='text/ng-template', id='partials/options.inventory.drops.html') li.customize-menu menu.hatchingPotion-menu(label='Hatching Potions ({{potCount}})') - p.muted(ng-show='potCount < 1') You don't have any hatching potions. + 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]}') .badge.badge-info.stack-count {{points}} li.customize-menu menu.pets-menu(label='Quest Scrolls ({{questCount}})') - p.muted(ng-show='questCount < 1') You don't have any quest scrolls. - p.muted Quests require parties. If you want to quest solo, create an empty party + p.muted(ng-show='questCount < 1')=env.t('noscrolls') + p.muted=env.t('scrollstext1') create an empty party 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] ? "You need to complete the previous quest to start this one!" : quest.notes}}', 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='Food ({{foodCount}})') - p(ng-show='foodCount < 1') You don't have any food. + 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}}') .badge.badge-info.stack-count {{points}} @@ -74,10 +74,10 @@ script(type='text/ng-template', id='partials/options.inventory.drops.html') .popover.static-popover.fade.right.in .arrow h3.popover-title - a(target='_blank', href='http://www.kickstarter.com/profile/523661924') Alexander the Merchant + a(target='_blank', href='http://www.kickstarter.com/profile/523661924')=env.t('alexander') .popover-content p - | Welcome to the Market! Buy hard-to-find eggs and potions! Sell your extras! Commission useful services! Come see what we have to offer. + =env.t('welcomemarket') p button.btn.btn-primary(ng-show='selectedEgg', ng-click='sellInventory()') | Sell {{selectedEgg.key}} for {{selectedEgg.value}} Gold @@ -113,7 +113,7 @@ script(type='text/ng-template', id='partials/options.inventory.drops.html') li.customize-menu menu.pets-menu(label='Quests') - p.muted Quests require parties. If you want to quest solo, create an empty party + p.muted=env.t('scrollstext1') create an empty party div(ng-repeat='quest in Content.quests') button.customize-option(popover='{{quest.text}}', popover-trigger='mouseenter', popover-placement='left', ng-click='purchase("quests", quest)', class='inventory_quest_scroll', ng-class='{locked: quest.previous && !user.achievements.quests[quest.previous]}') p diff --git a/views/options/inventory/stable.jade b/views/options/inventory/stable.jade index 4da7d4830f..01d6879d51 100644 --- a/views/options/inventory/stable.jade +++ b/views/options/inventory/stable.jade @@ -8,11 +8,11 @@ script(type='text/ng-template', id='partials/options.inventory.mounts.html') .popover.static-popover.fade.right.in(style='max-width: 550px; margin-left: 10px;') .arrow h3.popover-title - a(target='_blank', href='http://www.kickstarter.com/profile/mattboch') Matt Boch + a(target='_blank', href='http://www.kickstarter.com/profile/mattboch')=env.t('mattboch') .popover-content p. Shall I bring you your steed, {{user.profile.name}}? Click a mount to saddle up. - h4 {{mountCount}} / {{totalPets}} Mounts Tamed + h4 {{mountCount}} / {{totalPets}} =env.t('mountstamed') menu.pets(type='list') li.customize-menu(ng-repeat='egg in Content.eggs') menu @@ -22,7 +22,7 @@ script(type='text/ng-template', id='partials/options.inventory.mounts.html') button(class="pet-button pet-not-owned", ng-hide='user.items.mounts[mount]') .PixelPaw - h4 Rare Mounts + h4=env.t('raremounts') menu div button(ng-if='user.items.mounts["BearCub-Polar"]', class="pet-button Mount_Head_BearCub-Polar", ng-class='{active: user.items.currentMount == "BearCub-Polar"}', ng-click='chooseMount("BearCub", "Polar")', popover='Polar Bear', popover-trigger='mouseenter', popover-placement='bottom') @@ -40,11 +40,11 @@ script(type='text/ng-template', id='partials/options.inventory.pets.html') .popover.static-popover.fade.right.in(style='max-width: 550px; margin-left: 10px;') .arrow h3.popover-title - a(target='_blank', href='http://www.kickstarter.com/profile/mattboch') Matt Boch + a(target='_blank', href='http://www.kickstarter.com/profile/mattboch')=env.t('mattboch') .popover-content p. Welcome to the Stable! I'm Matt, the beast master. Choose a pet here to venture at your side. Feed them and they'll grow into powerful steeds. Have a look-see at all the pets you can collect. - h4 {{petCount}} / {{totalPets}} Pets Found + h4 {{petCount}} / {{totalPets}} =env.t('petsfound') menu.pets(type='list') li.customize-menu(ng-repeat='egg in Content.eggs') @@ -56,23 +56,23 @@ script(type='text/ng-template', id='partials/options.inventory.pets.html') button(class="pet-button pet-not-owned", ng-if='!user.items.pets[pet]') .PixelPaw - h4 Rare Pets + h4=env.t('rarepets') menu div - button(ng-if='user.items.pets["Wolf-Veteran"]', class="pet-button Pet-Wolf-Veteran", ng-class='{active: user.items.currentPet == "Wolf-Veteran"}', ng-click='choosePet("Wolf", "Veteran")', popover='Veteran Wolf', popover-trigger='mouseenter', popover-placement='bottom') - button(ng-if='user.items.pets["Wolf-Cerberus"]', class="pet-button Pet-Wolf-Cerberus", ng-class='{active: user.items.currentPet == "Wolf-Cerberus"}', ng-click='choosePet("Wolf", "Cerberus")', popover='Cerberus Pup', popover-trigger='mouseenter', popover-placement='bottom') - button(ng-if='user.items.pets["Turkey-Base"]', class="pet-button Pet-Turkey-Base", ng-class='{active: user.items.currentPet == "Turkey-Base"}', ng-click='choosePet("Turkey", "Base")', popover='Turkey', popover-trigger='mouseenter', popover-placement='bottom') - button(ng-if='user.items.pets["BearCub-Polar"]', class="pet-button Pet-BearCub-Polar", ng-class='{active: user.items.currentPet == "BearCub-Polar"}', ng-click='choosePet("BearCub", "Polar")', popover='Polar Bear Cub', popover-trigger='mouseenter', popover-placement='bottom') - button(ng-if='user.items.pets["Dragon-Hydra"]', class="pet-button Pet-Dragon-Hydra", ng-class='{active: user.items.currentPet == "Dragon-Hydra"}', ng-click='choosePet("Dragon", "Hydra")', popover='Hydra', popover-trigger='mouseenter', popover-placement='bottom') + button(ng-if='user.items.pets["Wolf-Veteran"]', class="pet-button Pet-Wolf-Veteran", ng-class='{active: user.items.currentPet == "Wolf-Veteran"}', ng-click='choosePet("Wolf", "Veteran")', popover=env.t('veteranwolf'), popover-trigger='mouseenter', popover-placement='bottom') + button(ng-if='user.items.pets["Wolf-Cerberus"]', class="pet-button Pet-Wolf-Cerberus", ng-class='{active: user.items.currentPet == "Wolf-Cerberus"}', ng-click='choosePet("Wolf", "Cerberus")', popover=env.t('cerberuspup'), popover-trigger='mouseenter', popover-placement='bottom') + button(ng-if='user.items.pets["Turkey-Base"]', class="pet-button Pet-Turkey-Base", ng-class='{active: user.items.currentPet == "Turkey-Base"}', ng-click='choosePet("Turkey", "Base")', popover=env.t('turkey'), popover-trigger='mouseenter', popover-placement='bottom') + button(ng-if='user.items.pets["BearCub-Polar"]', class="pet-button Pet-BearCub-Polar", ng-class='{active: user.items.currentPet == "BearCub-Polar"}', ng-click='choosePet("BearCub", "Polar")', popover=env.t('polarbearpup'), popover-trigger='mouseenter', popover-placement='bottom') + button(ng-if='user.items.pets["Dragon-Hydra"]', class="pet-button Pet-Dragon-Hydra", ng-class='{active: user.items.currentPet == "Dragon-Hydra"}', ng-click='choosePet("Dragon", "Hydra")', popover=env.t('hydra'), popover-trigger='mouseenter', popover-placement='bottom') a(target='_blank', href='http://habitrpg.wikia.com/wiki/Contributing_to_HabitRPG') - button(ng-if='!user.items.pets["Dragon-Hydra"]', class="pet-button pet-not-owned", popover-trigger='mouseenter', popover-placement='right', popover="Click the gold paw to learn more about how you can obtain this rare pet through contributing to HabitRPG!", popover-title='How to Get this Pet!') + button(ng-if='!user.items.pets["Dragon-Hydra"]', class="pet-button pet-not-owned", popover-trigger='mouseenter', popover-placement='right', popover=env.t('rarepetpop1'), popover-title=env.t('rarepetpop2')) .PixelPaw-Gold .well.food-tray - p(ng-show='foodCount < 1') You don't have any food. + p(ng-show='foodCount < 1')=env.t('nofood') menu.inventory-list(type='list', ng-if='foodCount > 0') li.customize-menu - menu.pets-menu(label='Food') + 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}}') .badge.badge-info.stack-count {{points}} diff --git a/views/options/profile.jade b/views/options/profile.jade index 9cd4a0a553..618646536f 100644 --- a/views/options/profile.jade +++ b/views/options/profile.jade @@ -1,109 +1,112 @@ script(id='partials/options.profile.avatar.html', type='text/ng-template') .row-fluid .span4 - h3 Body + h3=env.t('bodybody') small. - 2 / locked + | 2 / + = ' ' + env.t('locked') - h5 Size + h5=env.t('bodysize') .btn-group - button.btn.btn-small(ng-class='{active: user.preferences.size=="slim"}', ng-click='set({"preferences.size":"slim"})') Slim - button.btn.btn-small(ng-class='{active: user.preferences.size=="broad"}', ng-click='set({"preferences.size":"broad"})') Broad + button.btn.btn-small(ng-class='{active: user.preferences.size=="slim"}', ng-click='set({"preferences.size":"slim"})')=env.t('bodyslim') + button.btn.btn-small(ng-class='{active: user.preferences.size=="broad"}', ng-click='set({"preferences.size":"broad"})')=env.t('bodybroad') menu(type='list') li.customize-menu - menu(label='Shirts') + menu(label=env.t('shirts')) each shirt in ['black', 'blue', 'green', 'pink', 'white', 'yellow'] button.customize-option(class='{{user.preferences.size}}_shirt_'+shirt, type='button', ng-click='set({"preferences.shirt":"'+shirt+'"})') - menu(label='Special Shirts') + menu(label=env.t('specialshirts')) each shirt in ['convict', 'cross', 'fire', 'horizon', 'ocean', 'purple', 'rainbow', 'redblue', 'thunder', 'tropical', 'zombie'] button.customize-option(type='button', class='{{user.preferences.size}}_shirt_'+shirt, ng-class='{locked: !user.purchased.shirt.'+shirt+'}', ng-click='unlock("shirt.'+shirt+'")') menu - button.btn.btn-small.btn-primary(ng-hide="user.purchased.shirt.convict && user.purchased.shirt.cross && user.purchased.shirt.fire && user.purchased.shirt.horizon && user.purchased.shirt.ocean && user.purchased.shirt.purple && user.purchased.shirt.rainbow && user.purchased.shirt.redblue && user.purchased.shirt.thunder && user.purchased.shirt.tropical && user.purchased.shirt.zombie", ng-click='unlock("shirt.convict,shirt.cross,shirt.fire,shirt.horizon,shirt.ocean,shirt.purple,shirt.rainbow,shirt.redblue,shirt.thunder,shirt.tropical,shirt.zombie")') Unlock Set - 5 + button.btn.btn-small.btn-primary(ng-hide="user.purchased.shirt.convict && user.purchased.shirt.cross && user.purchased.shirt.fire && user.purchased.shirt.horizon && user.purchased.shirt.ocean && user.purchased.shirt.purple && user.purchased.shirt.rainbow && user.purchased.shirt.redblue && user.purchased.shirt.thunder && user.purchased.shirt.tropical && user.purchased.shirt.zombie", ng-click='unlock("shirt.convict,shirt.cross,shirt.fire,shirt.horizon,shirt.ocean,shirt.purple,shirt.rainbow,shirt.redblue,shirt.thunder,shirt.tropical,shirt.zombie")')= env.t('unlockset5') + ' ' .span4 - h3 Head + h3=env.t('bodyhead') small. - 2 / locked + | 2 / + = ' ' + env.t('locked') menu(type='list') // Color li.customize-menu - menu(label='Color') + menu(label=env.t('color')) each v,k in {'c8c8c8':'white','903a00':'brown','cfb853':'blond','ec720f':'red','2e2e2e':'black'} button(type='button', class='customize-option', style='width: 40px; height: 40px; background-color:##{k};', ng-click='set({"preferences.hair.color": "#{v}"})') // Special Events li.customize-menu.well.limited-edition .label.label-info.pull-right(popover='Available for purchase until January 31st (but permanently in your options if purchased).', popover-title='Limited Edition', popover-placement='right', popover-trigger='mouseenter') - | Limited Edition  + =env.t('limitededition') i.icon.icon-question-sign - menu(label='Winter Colors') + menu(label=env.t('wintercolors')) each color in ['candycane','frost','winternight','holly'] button(type='button', ng-class='{locked: !user.purchased.hair.color.#{color}}', class='customize-option hair_bangs_1_#{color}', style='width: 40px; height: 40px;', ng-click='unlock("hair.color.#{color}")') - button.btn.btn-small.btn-primary(ng-hide='user.purchased.hair.color.candycane && user.purchased.hair.color.frost && user.purchased.hair.color.winternight && user.purchased.hair.color.holly', ng-click='unlock("hair.color.candycane,hair.color.frost,hair.color.winternight,hair.color.holly")') Unlock Set - 5 + button.btn.btn-small.btn-primary(ng-hide='user.purchased.hair.color.candycane && user.purchased.hair.color.frost && user.purchased.hair.color.winternight && user.purchased.hair.color.holly', ng-click='unlock("hair.color.candycane,hair.color.frost,hair.color.winternight,hair.color.holly")')= env.t('unlockset5') + ' ' - h5 Hair + h5=env.t('bodyhair') // Bangs li.customize-menu - menu(label='Bangs') + menu(label=env.t('hairbangs')) button(class='head_0 customize-option', type='button', ng-click='set({"preferences.hair.bangs":0})') each num in [1,2,3] button(class='hair_bangs_#{num}_{{user.preferences.hair.color}} customize-option', type='button', ng-click='set({"preferences.hair.bangs":#{num}})') // Base li.customize-menu - menu(label='Base') + menu(label=env.t('hairbase')) button(class='head_0 customize-option', type='button', ng-click='set({"preferences.hair.base":0})') each v,k in {1:true,2:false,3:true,4:false,5:false,6:false,7:false,8:false} case v when true: button(class='hair_base_#{k}_{{user.preferences.hair.color}} customize-option', type='button', ng-click='set({"preferences.hair.base":#{k}})') when false: button(class='hair_base_#{k}_{{user.preferences.hair.color}} customize-option', type='button', ng-class='{locked: !user.purchased.hair.base.#{k}}', ng-click='unlock("hair.base.#{k}")') - button.btn.btn-small.btn-primary(ng-hide='user.purchased.hair.base.2 && user.purchased.hair.base.4 && user.purchased.hair.base.5 && user.purchased.hair.base.6 && user.purchased.hair.base.7 && user.purchased.hair.base.8', ng-click='unlock("hair.base.2,hair.base.4,hair.base.5,hair.base.6,hair.base.7,hair.base.8")') Unlock Set - 5 + button.btn.btn-small.btn-primary(ng-hide='user.purchased.hair.base.2 && user.purchased.hair.base.4 && user.purchased.hair.base.5 && user.purchased.hair.base.6 && user.purchased.hair.base.7 && user.purchased.hair.base.8', ng-click='unlock("hair.base.2,hair.base.4,hair.base.5,hair.base.6,hair.base.7,hair.base.8")')= env.t('unlockset5') + ' ' - h5 Facial Hair + h5=env.t('bodyfacialhair') // Beard li.customize-menu - menu(label='Beard') + menu(label=env.t('beard')) button(class='head_0 customize-option', type='button', ng-click='set({"preferences.hair.beard":0})') each num in [1,2,3] button(class='hair_beard_#{num}_{{user.preferences.hair.color}} customize-option', type='button', ng-class='{locked: !user.purchased.hair.beard.#{num}}', ng-click='unlock("hair.beard.#{num}")') // Mustache li.customize-menu - menu(label='Mustache') + menu(label=env.t('mustache')) button(class='head_0 customize-option', type='button', ng-click='set({"preferences.hair.mustache":0})') each num in [1,2] button(class='hair_mustache_#{num}_{{user.preferences.hair.color}} customize-option', type='button', ng-class='{locked: !user.purchased.hair.mustache.#{num}}', ng-click='unlock("hair.mustache.#{num}")') - button.btn.btn-small.btn-primary(ng-hide='user.purchased.hair.mustache.1 && user.purchased.hair.mustache.2 && user.purchased.hair.beard.1 && user.purchased.hair.beard.2 && user.purchased.hair.beard.3', ng-click='unlock("hair.mustache.1,hair.mustache.2,hair.beard.1,hair.beard.2,hair.beard.3")') Unlock Set - 5 + button.btn.btn-small.btn-primary(ng-hide='user.purchased.hair.mustache.1 && user.purchased.hair.mustache.2 && user.purchased.hair.beard.1 && user.purchased.hair.beard.2 && user.purchased.hair.beard.3', ng-click='unlock("hair.mustache.1,hair.mustache.2,hair.beard.1,hair.beard.2,hair.beard.3")')= env.t('unlockset5') + ' ' .span4 - h3 Skin + h3=env.t('skin') small. - 2 / locked + | 2 / + = ' ' + env.t('locked') // skin li.customize-menu - menu(label='Basic Skins') + menu(label=env.t('basicskins')) each color in ['ddc994','f5a76e','ea8349','c06534','98461a','915533','c3e1dc','6bd049'] button.customize-option(type='button', class='skin_#{color}', ng-click='set({"preferences.skin":"#{color}"})') // Rainbow Skin h5. - Rainbow Skins + =env.t('rainbowskins') //menu(label='Rainbow Skins (2G / skin)') menu each color in ['eb052b','f69922','f5d70f','0ff591','2b43f6','d7a9f7','800ed0','rainbow'] button.customize-option(type='button', class='skin_#{color}', ng-class='{locked: !user.purchased.skin.#{color}}', ng-click='unlock("skin.#{color}")') - button.btn.btn-small.btn-primary(ng-hide='user.purchased.skin.eb052b && user.purchased.skin.f69922 && user.purchased.skin.f5d70f && user.purchased.skin.0ff591 && user.purchased.skin.2b43f6 && user.purchased.skin.d7a9f7 && user.purchased.skin.800ed0 && user.purchased.skin.rainbow', ng-click='unlock("skin.eb052b,skin.f69922,skin.f5d70f,skin.0ff591,skin.2b43f6,skin.d7a9f7,skin.800ed0,skin.rainbow")') Unlock Set - 5 + button.btn.btn-small.btn-primary(ng-hide='user.purchased.skin.eb052b && user.purchased.skin.f69922 && user.purchased.skin.f5d70f && user.purchased.skin.0ff591 && user.purchased.skin.2b43f6 && user.purchased.skin.d7a9f7 && user.purchased.skin.800ed0 && user.purchased.skin.rainbow', ng-click='unlock("skin.eb052b,skin.f69922,skin.f5d70f,skin.0ff591,skin.2b43f6,skin.d7a9f7,skin.800ed0,skin.rainbow")')= env.t('unlockset5') + ' ' // Special Events // restore to d4df481 to see purchasing + "limited edition" code div(ng-if='user.purchased.skin.monster || user.purchased.skin.pumpkin || user.purchased.skin.skeleton || user.purchased.skin.zombie || user.purchased.skin.ghost || user.purchased.skin.shadow') - h5 Spooky Skins + h5=env.t('spookyskins') menu each color in ['monster','pumpkin','skeleton','zombie','ghost','shadow'] button.customize-option(type='button', class='skin_#{color}', ng-if='user.purchased.skin.#{color}', ng-click='unlock("skin.#{color}")') @@ -113,49 +116,49 @@ script(id='partials/options.profile.stats.html', type='text/ng-template') .border-right(ng-class='user.flags.classSelected && !user.preferences.disableClasses ? "span4" : "span6"') include ../shared/profiles/stats .span4.border-right.allocate-stats(ng-if='user.flags.classSelected && !user.preferences.disableClasses') - h3 Character Build - h4 Class:  - span {{ {warrior:'Warrior',wizard:'Mage',healer:'Healer',rogue:'Rogue'}[user.stats.class] }}  + h3=env.t('characterbuild') + h4=env.t('class') + ':' + span= '{{ {warrior:' + env.t('warrior') + ',wizard:' + env.t('mage') + ',healer:' + env.t('healer') + ',rogue:' + env.t('rogue') + '}[user.stats.class] }} ' a.btn.btn-danger.btn-mini(ng-click='changeClass(null)') - | Change Class, Refund Attribute Points  + =env.t('changeclass') small 3 - h5(popover-trigger='mouseenter', popover-placement='left', popover="Each level earns you one point to assign to an attribute of your choice. You can do so manually, or let the game decide for you using one of the Automatic Allocation options.") Unallocated Attribute Points: {{user.stats.points}}  + h5(popover-trigger='mouseenter', popover-placement='left', popover=env.t('levelpopover'))= env.t('unallocated') {{user.stats.points}}  fieldset.auto-allocate label.checkbox input(type='checkbox', ng-model='user.preferences.automaticAllocation', ng-change='set({"preferences.automaticAllocation": user.preferences.automaticAllocation?true: false})', ng-click='set({"preferences.allocationMode":"taskbased"})') - | Automatic Allocation  - i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover="Places points into attributes according to your preferences, when you level up.") + =env.t('automaticallocation') + i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('automaticallocationpopover')) form(ng-show='user.preferences.automaticAllocation',style='margin-left:1em') label.radio input(type='radio', name='allocationMode', value='flat', ng-model='user.preferences.allocationMode', ng-change='set({"preferences.allocationMode": "flat"})') - | Distribute attribute points evenly  - i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover="Assigns the same number of points to each attribute.") + =env.t('evenallocation') + i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('evenallocationpopover')) label.radio input(type='radio', name='allocationMode', value='classbased', ng-model='user.preferences.allocationMode', ng-change='set({"preferences.allocationMode": "classbased"})') - | Distribute attribute points based on Class  - i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover="Assigns more points to the attributes important to your Class.") + =env.t('classallocation') + i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('classallocationpopover')) label.radio input(type='radio', name='allocationMode', value='taskbased', ng-model='user.preferences.allocationMode', ng-change='set({"preferences.allocationMode": "taskbased"})') - | Distribute attribute points based on task activity  - i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover="Assigns points based on the Physical (STR), Mental (INT), Social (CON), and Other (PER) categories associated with the tasks you complete.") + =env.t('taskallocation') + i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('taskallocationpopover')) table.table.table-striped tr - td Points allocated to STR: {{user.stats.str}} + td= env.t('allocatestr') + ' {{user.stats.str}}' td - a.btn.btn-primary(ng-show='user.stats.points', ng-click='allocate("str")', popover-trigger='mouseenter', popover-placement='right', popover="Add a point to Strength") + + a.btn.btn-primary(ng-show='user.stats.points', ng-click='allocate("str")', popover-trigger='mouseenter', popover-placement='right', popover=env.t('allocatestrpop')) + tr - td Points allocated to CON: {{user.stats.con}} + td= env.t('allocatecon') + ' {{user.stats.con}}' td - a.btn.btn-primary(ng-show='user.stats.points', ng-click='allocate("con")', popover-trigger='mouseenter', popover-placement='right', popover="Add a point to Constitution") + + a.btn.btn-primary(ng-show='user.stats.points', ng-click='allocate("con")', popover-trigger='mouseenter', popover-placement='right', popover=env.t('allocateconpop')) + tr - td Points allocated to PER: {{user.stats.per}} + td= env.t('allocateper') + ' {{user.stats.per}}' td - a.btn.btn-primary(ng-show='user.stats.points', ng-click='allocate("per")', popover-trigger='mouseenter', popover-placement='right', popover="Add a point to Perception") + + a.btn.btn-primary(ng-show='user.stats.points', ng-click='allocate("per")', popover-trigger='mouseenter', popover-placement='right', popover=env.t('allocateperpop')) + tr - td Points allocated to INT: {{user.stats.int}} + td= env.t('allocateint') + ' {{user.stats.int}}' td - a.btn.btn-primary(ng-show='user.stats.points', ng-click='allocate("int")', popover-trigger='mouseenter', popover-placement='right', popover="Add a point to Intelligence") + + a.btn.btn-primary(ng-show='user.stats.points', ng-click='allocate("int")', popover-trigger='mouseenter', popover-placement='right', popover=env.t('allocateintpop')) + div(ng-class='user.flags.classSelected && !user.preferences.disableClasses ? "span4" : "span6"') include ../shared/profiles/achievements @@ -163,15 +166,15 @@ script(id='partials/options.profile.profile.html', type='text/ng-template') button.btn.btn-default(ng-click='_editing.profile = true', ng-show='!_editing.profile') Edit button.btn.btn-primary(ng-click='save()', ng-show='_editing.profile') Save div(ng-show='!_editing.profile') - h4 Display Name + h4=env.t('displayname') span(ng-show='profile.profile.name') {{profile.profile.name}} span.muted(ng-hide='profile.profile.name') - None - - h4 Photo + h4=env.t('displayphoto') img(ng-show='profile.profile.imageUrl', ng-src='{{profile.profile.imageUrl}}') span.muted(ng-hide='profile.profile.imageUrl') - None - - h4 Blurb + h4=env.t('displayblub') markdown(ng-show='profile.profile.blurb', ng-model='profile.profile.blurb') span.muted(ng-hide='profile.profile.blurb') - None - //{{profile.profile.blurb | linky:'_blank'}} @@ -179,27 +182,27 @@ script(id='partials/options.profile.profile.html', type='text/ng-template') div.whatever-options(ng-show='_editing.profile') // TODO use photo-upload instead: https://groups.google.com/forum/?fromgroups=#!topic/derbyjs/xMmADvxBOak .control-group.option-large - label.control-label Display Name - input.option-content(type='text', placeholder='Full Name', ng-model='editingProfile.name') + label.control-label =env.t('displayname') + input.option-content(type='text', placeholder=env.t('fullName')), ng-model='editingProfile.name') .control-group.option-large - label.control-label Photo Url - input.option-content(type='url', ng-model='editingProfile.imageUrl', placeholder='Image Url') + label.control-label =env.t('photourl') + input.option-content(type='url', ng-model='editingProfile.imageUrl', placeholder=env.t('imageurl')) .control-group.option-large - label.control-label Blurb - textarea.option-content(style='height:15em;', placeholder='Blurb', ng-model='editingProfile.blurb') + label.control-label =env.t('displayblurb') + textarea.option-content(style='height:15em;', placeholder=env.t("displayblurb"), ng-model='editingProfile.blurb') include ../shared/formatting-help script(id='partials/options.profile.html', type="text/ng-template") ul.nav.nav-tabs li(ng-class="{ active: $state.includes('options.profile.avatar') }") a(ui-sref='options.profile.avatar') - | Avatar + =env.t('avatar') li(ng-class="{ active: $state.includes('options.profile.stats') }") a(ui-sref='options.profile.stats') - | Stats & Achievements + =env.t('statsach') li(ng-class="{ active: $state.includes('options.profile.profile') }") a(ui-sref='options.profile.profile') - | Profile + =env.t('profile') .tab-content .tab-pane.active diff --git a/views/options/settings.jade b/views/options/settings.jade index edf3ca33d1..cfa85a10b0 100644 --- a/views/options/settings.jade +++ b/views/options/settings.jade @@ -2,13 +2,13 @@ script(id='partials/options.settings.html', type="text/ng-template") ul.nav.nav-tabs li(ng-class="{ active: $state.includes('options.settings.settings') }") a(ui-sref='options.settings.settings') - | Settings + =env.t('settings') li(ng-class="{ active: $state.includes('options.settings.api') }") a(ui-sref='options.settings.api') - | API + =env.t('API') li(ng-class="{ active: $state.includes('options.settings.export') }") a(ui-sref='options.settings.export') - | Data Export + =env.t('dataexport') .tab-content .tab-pane.active @@ -17,89 +17,89 @@ script(id='partials/options.settings.html', type="text/ng-template") script(type='text/ng-template', id='partials/options.settings.settings.html') .row-fluid .personal-options.span6 - h2 Settings - h4 Custom Day Start + h2=env.t('settings') + h4=env.t('customDayStart') .option-group.option-short input.option-content.option-time(type='number', min='0', max='24', ng-model='user.preferences.dayStart', ng-change='saveDayStart()') - span.input-suffix :00 (24h clock) + span.input-suffix = ':00 (' + env.t('24HrClock') + ')' div small - div Habit defaults to check and reset your dailies at midnight in your time zone each day. You can customize the hour here (enter a number between 0 and 24). + div =env.t('clockInfo') .alert.alert-danger Warning: this is a highly-experimental feature, and many experience issues with it. hr - h4 Language + h4=env.t('language') select(ng-model='language.code', ng-options='lang.code as lang.name for lang in avalaibleLanguages', ng-change='changeLanguage()') hr - h4 Misc + h4=env.t('hideHeader') label.checkbox input(type='checkbox', ng-click='set({"preferences.hideHeader":user.preferences.hideHeader?false:true})', ng-checked='user.preferences.hideHeader!==true') - | Show header  - i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover='Show your avatar, Health/Experience bars, and party.') + =env.t('showHeader') + i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('showHeaderpop')) label.checkbox input(type='checkbox', ng-click='toggleStickyHeader()', ng-checked='user.preferences.stickyHeader!==false') - | Sticky header  - i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover='Affix the header to the top of the screen. Unchecked means it scrolls out of view.') + =env.t('stickyHeader') + i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('stickyHeaderpop')) label.checkbox input(type='checkbox', ng-model='user.preferences.newTaskEdit', ng-change='set({"preferences.newTaskEdit": user.preferences.newTaskEdit?true: false})') - | Open new tasks in edit mode  - i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover='With this option set, new tasks will immediately open for you to add details like notes and tags.') + =env.t('newtaskedit') + i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('newtaskeditpop')) label.checkbox input(type='checkbox', ng-model='user.preferences.tagsCollapsed', ng-change='set({"preferences.tagsCollapsed": user.preferences.tagsCollapsed?true: false})') - | Tag list in tasks starts collapsed  - i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover='With this option set, the list of task tags will be hidden when you first open a task for editing.') + =env.t('startcollapsed') + i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('startcollapsedpop')) label.checkbox input(type='checkbox', ng-model='user.preferences.advancedCollapsed', ng-change='set({"preferences.advancedCollapsed": user.preferences.advancedCollapsed?true: false})') - | Advanced Options in tasks start collapsed  - i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover='With this option set, Advanced Options will be hidden when you first open a task for editing.') - button.btn(ng-click='showTour()', popover-placement='right', popover-trigger='mouseenter', popover='Restart the introductory tour from when you first joined HabitRPG.') Show Tour + =env.t('startacollapsed') + i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('startacollapsedpop')) + button.btn(ng-click='showTour()', popover-placement='right', popover-trigger='mouseenter', popover=env.t('showtourpop1'))= env.t('showtour') br - button.btn(ng-click='showBailey()', popover-trigger='mouseenter', popover-placement='right', popover='Bring Bailey the Town Crier out of hiding so you can review past news.') Show Bailey + button.btn(ng-click='showBailey()', popover-trigger='mouseenter', popover-placement='right', popover=env.t('showtourpop'))= env.t('showtour2') br - button.btn(ng-click='modals.restore = true', popover-trigger='mouseenter', popover-placement='right', popover='Manually change values like Health, Level, and Gold.') Fix Character Values + button.btn(ng-click='modals.restore = true', popover-trigger='mouseenter', popover-placement='right', popover=env.t('fixvalpop'))= env.t('fixval') div(ng-if='user.preferences.disableClasses==true') - button.btn(ng-click='user.ops.changeClass({})', popover-trigger='mouseenter', popover-placement='right', popover="You opted out of the class system initially. Would you like now to opt-in?") Enable Class System + button.btn(ng-click='user.ops.changeClass({})', popover-trigger='mouseenter', popover-placement='right', popover=env.t('enableclasspop'))= env.t('enableclass') div(ng-if='!user.preferences.disableClasses && user.flags.classSelected') - button.btn(ng-click='showClassesTour()', popover-trigger='mouseenter', popover-placement='right', popover="Show the tour for using the class system.") Show Classes Tour + button.btn(ng-click='showClassesTour()', popover-trigger='mouseenter', popover-placement='right', popover=env.t('showclasspop'))= env.t('showclass') //- Why is ng-if='user.auth.local' validating for users *without* user.auth.local (facebook users)? adding .username here for extra div(ng-if='user.auth.local.username') hr - h4 Change Password + h4=env.t('changePass') form(ng-submit='changePassword(changePass)', ng-show='user.auth.local') .control-group - input(type='password', placeholder='Old Password', ng-model='changePass.oldPassword', required) + input(type='password', placeholder=env.t('oldPass'), ng-model='changePass.oldPassword', required) .control-group - input(type='password', placeholder='New Password', ng-model='changePass.newPassword', required) + input(type='password', placeholder=env.t('newPass'), ng-model='changePass.newPassword', required) .control-group - input(type='password', placeholder='Confirm New Password', ng-model='changePass.confirmNewPassword', required) - input.btn(type='submit', value='Submit') + input(type='password', placeholder=env.t('confirmPAss'), ng-model='changePass.confirmNewPassword', required) + input.btn(type='submit', value=env.t('submit')') hr - h4 Danger Zone - a.btn.btn-danger(ng-click='modals.reset = true', popover-trigger='mouseenter', popover-placement='right', popover='Start over, removing all levels, gold, gear, history, and tasks.') Reset Account - a.btn.btn-danger(ng-click='modals.delete = true', popover-trigger='mouseenter', popover='Cancel and remove your HabitRPG account.') Delete Account + h4=env.t('dangerZone') + a.btn.btn-danger(ng-click='modals.reset = true', popover-trigger='mouseenter', popover-placement='right', popover=env.t('resetaccpop'))= env.t('resetaccount') + a.btn.btn-danger(ng-click='modals.delete = true', popover-trigger='mouseenter', popover=env.t('deleteaccpop'))= env.t('deleteaccount') script(type='text/ng-template', id='partials/options.settings.api.html') .row.fluid .span6 - h2 API - small Copy these for use in third party applications. - h6 User ID + h2=env.t('API') + small =env.t('APIText') + h6=env.t('userId') pre.prettyprint {{user.id}} - h6 API Token + h6=env.t('APIToken') pre.prettyprint {{user.apiToken}} - h6 QR Code + h6=env.t('qrcode') img(src='https://chart.googleapis.com/chart?cht=qr&chs=200x200&chl=%7B%22address%22%3A%22https%3A%2F%2Fhabitrpg.com%22%2C%22user%22%3A%22{{user.id}}%22%2C%22key%22%3A%22{{user.apiToken}}%22%7D&choe=UTF-8&chld=L', alt='qrcode') script(id='partials/options.settings.export.html', type="text/ng-template") .row.fluid .span6 - h2 Data Export - small Here are a few options for saving your Habit data. - h4 Habit History - Export History:   - a(href="/export/history.csv") (CSV)   - h4 User Data - Export User Data:   - a(href="/export/userdata.xml") (XML)   - a(href="/export/userdata.json") (JSON)   + h2=env.t('dataexport') + small =env.t('dataexports') + h4=env.t('habithistory') + =env.t('exporthistory') + a(href="/export/history.csv")= env.t('csv') + h4=env.t('userdata') + =env.t('exportuserdata') + a(href="/export/userdata.xml")= env.t('xml') + a(href="/export/userdata.json")= env.t('json')