i18n(interpolation): Add string interpolation

This commit is contained in:
Marcelo Sizer 2014-01-30 18:25:25 -02:00
parent aeb705b652
commit 44d9ea2a15
17 changed files with 163 additions and 184 deletions

View file

@ -78,24 +78,9 @@ 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('sell')
|  {{selectedEgg.text}} 
=env.t('for')
|  {{selectedEgg.value}} 
=env.t('gold')
button.btn.btn-primary(ng-show='selectedPotion', ng-click='sellInventory()')
=env.t('sell')
|  {{selectedPotion.text}} 
=env.t('for')
|  {{selectedPotion.value}} 
=env.t('gold')
button.btn.btn-primary(ng-show='selectedFood', ng-click='sellInventory()')
=env.t('sell')
|  {{selectedFood.text}} 
=env.t('for')
|  {{selectedFood.value}} 
=env.t('gold')
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'))

View file

@ -10,7 +10,7 @@ script(type='text/ng-template', id='partials/options.inventory.mounts.html')
h3.popover-title
a(target='_blank', href='http://www.kickstarter.com/profile/mattboch')=env.t('mattBoch')
.popover-content
p=env.t('mattShall1') + ' {{user.profile.name}} ' + env.t('mattShall2')
p=env.t('mattShall', {name: "{{user.profile.name}}"})
h4= '{{mountCount}} / {{totalPets}} ' + env.t('mountsTamed')
menu.pets(type='list')
li.customize-menu(ng-repeat='egg in Content.eggs')

View file

@ -1,15 +1,15 @@
script(id='partials/options.profile.avatar.html', type='text/ng-template')
.row-fluid
.span4
h3=env.t('bodybody')
h3=env.t('bodyBody')
small
| 2 <span class="Pet_Currency_Gem1x inline-gems"/> /
= ' ' + env.t('locked')
h5=env.t('bodysize')
h5=env.t('bodySize')
.btn-group
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')
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
@ -17,15 +17,15 @@ script(id='partials/options.profile.avatar.html', type='text/ng-template')
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=env.t('specialshirts'))
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")')!= env.t('unlockset5') + ' <span class="Pet_Currency_Gem1x inline-gems"/>'
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') + ' <span class="Pet_Currency_Gem1x inline-gems"/>'
.span4
h3=env.t('bodyhead')
h3=env.t('bodyHead')
small
| 2 <span class="Pet_Currency_Gem1x inline-gems"/> /
= ' ' + env.t('locked')
@ -38,35 +38,35 @@ script(id='partials/options.profile.avatar.html', type='text/ng-template')
// Special Events
li.customize-menu.well.limited-edition
.label.label-info.pull-right(popover=env.t('limited31Jan'), popover-title=env.t('limitededition'), popover-placement='right', popover-trigger='mouseenter')
=env.t('limitededition')
.label.label-info.pull-right(popover=env.t('limited31Jan'), popover-title=env.t('limitedEdition'), popover-placement='right', popover-trigger='mouseenter')
=env.t('limitedEdition')
|
i.icon.icon-question-sign
menu(label=env.t('wintercolors'))
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")')!= env.t('unlockset5') + ' <span class="Pet_Currency_Gem1x inline-gems"/>'
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') + ' <span class="Pet_Currency_Gem1x inline-gems"/>'
h5=env.t('bodyhair')
h5=env.t('bodyHair')
// Bangs
li.customize-menu
menu(label=env.t('hairbangs'))
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=env.t('hairbase'))
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")')!= env.t('unlockset5') + ' <span class="Pet_Currency_Gem1x inline-gems"/>'
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') + ' <span class="Pet_Currency_Gem1x inline-gems"/>'
h5=env.t('bodyfacialhair')
h5=env.t('bodyFacialHair')
// Beard
li.customize-menu
@ -82,31 +82,31 @@ script(id='partials/options.profile.avatar.html', type='text/ng-template')
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")')!= env.t('unlockset5') + ' <span class="Pet_Currency_Gem1x inline-gems"/>'
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') + ' <span class="Pet_Currency_Gem1x inline-gems"/>'
.span4
h3=env.t('bodyskin')
h3=env.t('bodySkin')
small
| 2 <span class="Pet_Currency_Gem1x inline-gems"/> /
= ' ' + env.t('locked')
// skin
li.customize-menu
menu(label=env.t('basicskins'))
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=env.t('rainbowskins')
h5=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")')!= env.t('unlockset5') + ' <span class="Pet_Currency_Gem1x inline-gems"/>'
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') + ' <span class="Pet_Currency_Gem1x inline-gems"/>'
// 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=env.t('spookyskins')
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}")')
@ -116,11 +116,11 @@ 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=env.t('characterbuild')
h3=env.t('characterBuild')
h4
=env.t('class') + ': '
span {{ {warrior:'Warrior',wizard:'Mage',healer:'Healer',rogue:'Rogue'}[user.stats.class] }}&nbsp;
a.btn.btn-danger.btn-mini(ng-click='changeClass(null)')=env.t('changeclass')
a.btn.btn-danger.btn-mini(ng-click='changeClass(null)')=env.t('changeClass')
small 3 <span class="Pet_Currency_Gem1x inline-gems"/>
table.table.table-striped
tr
@ -129,48 +129,48 @@ script(id='partials/options.profile.stats.html', type='text/ng-template')
{{user.stats.points}}&nbsp;
=env.t('unallocated')
&nbsp;
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('levelpopover'))
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('levelPopover'))
td
tr
td(colspan=2)
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"})')
=env.t('automaticallocation')
=env.t('autoAllocation')
&nbsp;
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('automaticallocationpopover'))
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('autoAllocationPop'))
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"})')
=env.t('evenallocation')
=env.t('evenAllocation')
&nbsp;
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('evenallocationpopover'))
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('evenAllocationPop'))
label.radio
input(type='radio', name='allocationMode', value='classbased', ng-model='user.preferences.allocationMode', ng-change='set({"preferences.allocationMode": "classbased"})')
=env.t('classallocation')
=env.t('classAllocation')
&nbsp;
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('classallocationpopover'))
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('classAllocationPop'))
label.radio
input(type='radio', name='allocationMode', value='taskbased', ng-model='user.preferences.allocationMode', ng-change='set({"preferences.allocationMode": "taskbased"})')
=env.t('taskallocation')
=env.t('taskAllocation')
&nbsp;
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('taskallocationpopover'))
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('taskAllocationPop'))
tr
td= env.t('allocatestr') + ' {{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=env.t('allocatestrpop')) +
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= env.t('allocatecon') + ' {{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=env.t('allocateconpop')) +
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= env.t('allocateper') + ' {{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=env.t('allocateperpop')) +
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= env.t('allocateint') + ' {{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=env.t('allocateintpop')) +
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
@ -178,19 +178,19 @@ script(id='partials/options.profile.profile.html', type='text/ng-template')
button.btn.btn-default(ng-click='_editing.profile = true', ng-show='!_editing.profile')= env.t('edit')
button.btn.btn-primary(ng-click='save()', ng-show='_editing.profile')= env.t('save')
div(ng-show='!_editing.profile')
h4=env.t('displayname')
h4=env.t('displayName')
span(ng-show='profile.profile.name') {{profile.profile.name}}
span.muted(ng-hide='profile.profile.name') -&nbsp;
=env.t('none')
| &nbsp;-
h4=env.t('displayphoto')
h4=env.t('displayPhoto')
img(ng-show='profile.profile.imageUrl', ng-src='{{profile.profile.imageUrl}}')
span.muted(ng-hide='profile.profile.imageUrl') -&nbsp;
=env.t('none')
| &nbsp;-
h4=env.t('displayblurb')
h4=env.t('displayBlurb')
markdown(ng-show='profile.profile.blurb', ng-model='profile.profile.blurb')
span.muted(ng-hide='profile.profile.blurb') -&nbsp;
=env.t('none')
@ -200,14 +200,14 @@ 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=env.t('displayname')
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=env.t('photourl')
input.option-content(type='url', ng-model='editingProfile.imageUrl', placeholder=env.t('imageurl'))
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=env.t('displayblurb')
textarea.option-content(style='height:15em;', placeholder=env.t("displayblurb"), 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")
@ -217,7 +217,7 @@ script(id='partials/options.profile.html', type="text/ng-template")
=env.t('avatar')
li(ng-class="{ active: $state.includes('options.profile.stats') }")
a(ui-sref='options.profile.stats')
=env.t('statsach')
=env.t('statsAch')
li(ng-class="{ active: $state.includes('options.profile.profile') }")
a(ui-sref='options.profile.profile')
=env.t('profile')

View file

@ -8,10 +8,10 @@ script(id='partials/options.settings.html', type="text/ng-template")
=env.t('API')
li(ng-class="{ active: $state.includes('options.settings.export') }")
a(ui-sref='options.settings.export')
=env.t('dataexport')
=env.t('dataExport')
li(ng-class="{ active: $state.includes('options.settings.subscription') }")
a(ui-sref='options.settings.subscription')
| Subscription
=env.t('subscription')
.tab-content
.tab-pane.active
@ -28,7 +28,10 @@ script(type='text/ng-template', id='partials/options.settings.settings.html')
div
small
div=env.t('clockInfo')
.alert.alert-danger Warning: this is a highly-experimental feature, and many <a href='https://github.com/HabitRPG/habitrpg/issues/1057' target='_blank'>experience issues</a> with it.
.alert.alert-danger
=env.t('subWarning1')
a(href='https://github.com/HabitRPG/habitrpg/issues/1057' target='_blank')=env.t('subWarning2')
=env.t('subWarning3')
hr
h4=env.t('language')
select(ng-model='language.code', ng-options='lang.code as lang.name for lang in avalaibleLanguages', ng-change='changeLanguage()')
@ -38,36 +41,36 @@ script(type='text/ng-template', id='partials/options.settings.settings.html')
input(type='checkbox', ng-click='set({"preferences.hideHeader":user.preferences.hideHeader?false:true})', ng-checked='user.preferences.hideHeader!==true')
=env.t('showHeader')
&nbsp;
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('showHeaderpop'))
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')
=env.t('stickyHeader')
&nbsp;
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('stickyHeaderpop'))
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})')
=env.t('newtaskedit')
=env.t('newTaskEdit')
&nbsp;
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('newtaskeditpop'))
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})')
=env.t('startcollapsed')
=env.t('startCollapsed')
&nbsp;
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('startcollapsedpop'))
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})')
=env.t('startacollapsed')
=env.t('startAdvCollapsed')
&nbsp;
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')
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('startAdvCollapsedPop'))
button.btn(ng-click='showTour()', popover-placement='right', popover-trigger='mouseenter', popover=env.t('restartTour'))= env.t('showTour')
br
button.btn(ng-click='showBailey()', popover-trigger='mouseenter', popover-placement='right', popover=env.t('showtourpop'))= env.t('showtour2')
button.btn(ng-click='showBailey()', popover-trigger='mouseenter', popover-placement='right', popover=env.t('showBaileyPop'))= env.t('showBailey')
br
button.btn(ng-click='modals.restore = true', popover-trigger='mouseenter', popover-placement='right', popover=env.t('fixvalpop'))= env.t('fixval')
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=env.t('enableclasspop'))= env.t('enableclass')
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=env.t('classtourpop'))= env.t('showclass')
button.btn(ng-click='showClassesTour()', popover-trigger='mouseenter', popover-placement='right', popover=env.t('classTourPop'))= 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')
@ -84,8 +87,8 @@ script(type='text/ng-template', id='partials/options.settings.settings.html')
hr
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')
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
@ -96,19 +99,19 @@ script(type='text/ng-template', id='partials/options.settings.api.html')
pre.prettyprint {{user.id}}
h6=env.t('APIToken')
pre.prettyprint {{user.apiToken}}
h6=env.t('qrcode')
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=env.t('dataexport')
small=env.t('dataexports')
h4=env.t('habithistory')
=env.t('exporthistory')
h2=env.t('dataExport')
small=env.t('saveData')
h4=env.t('habitHistory')
=env.t('exportHistory')
a(href="/export/history.csv")= ' ' + env.t('csv')
h4=env.t('userdata')
=env.t('exportuserdata')
h4=env.t('userData')
=env.t('exportUserData')
a(href="/export/userdata.xml")= ' ' + env.t('xml') + ' '
a(href="/export/userdata.json")= env.t('json')
@ -116,28 +119,24 @@ script(id='partials/options.settings.subscription.perks.html',type='text/ng-temp
table.table.table-striped
tr
td
span.dashed-underline(popover="Ads will stay disabled while you have an active account (original users with disabled ads are grandfathered).",popover-trigger='mouseenter',popover-placement='right')
| Disable ads
span.dashed-underline(popover=env.t('disableAdsText'),popover-trigger='mouseenter',popover-placement='right')=env.t('disableAds')
tr
td
span.dashed-underline(popover="(1 Gem costs {{Shared.planGemLimits.convRate}} Gold) Addresses the \"pay to win\" concern, as everything is now achievable through hard work. There's a {{Shared.planGemLimits.convCap}}G monthly conversion cap to prevent farming.",popover-trigger='mouseenter',popover-placement='right')
| Buy Gems with Gold
span.dashed-underline(popover=env.t('buyGemsGoldText', {gemCost: "{{Shared.planGemLimits.convRate}}", gemLimit: "{{Shared.planGemLimits.convCap}}"}),popover-trigger='mouseenter',popover-placement='right')=env.t('buyGemsGold')
tr
td
span.dashed-underline(popover="Makes your full history available in graphs and export. Non-subscriber histories get consolidated for database optimization.",popover-trigger='mouseenter',popover-placement='right')
| Retain full history entries
span.dashed-underline(popover=env.t('retainHistoryText'),popover-trigger='mouseenter',popover-placement='right')=env.t('retainHistory')
tr
td
span.dashed-underline(popover="Complete your stable faster!",popover-trigger='mouseenter',popover-placement='right')
| Daily drop-caps doubled
span.dashed-underline(popover=env.t('doubleDropsText'),popover-trigger='mouseenter',popover-placement='right')=env.t('doubleDrops')
//-tr
//- td +20 gems to your account
tr
td
span.dashed-underline(popover="This open source project can use all the help it can get. Help us keep Habit alive!",popover-trigger='mouseenter',popover-placement='right')
| Supports the developers
span.dashed-underline(popover=env.t('supportDevsText'),popover-trigger='mouseenter',popover-placement='right')=env.t('supportDevs')
tr
td.alert.alert-info $5 USD / Month
td.alert.alert-info $5&nbsp;
=env.t('monthUSD')
script(id='partials/feature-matrix-check.html',type='text/ng-template')
span.task-checker.action-yesno
@ -147,16 +146,15 @@ script(id='partials/feature-matrix-check.html',type='text/ng-template')
script(id='partials/options.settings.subscription.html',type='text/ng-template')
.well
h2 Individual Subscription
h2=env.t('individualSub')
div(ng-if='!user.purchased.plan.customerId')
div(ng-include="'partials/options.settings.subscription.perks.html'")
.btn.btn-primary(ng-click='showStripe(true)') Subscribe
.btn.btn-primary(ng-click='showStripe(true)')=env.t('subscribe')
//-small.muted PayPal coming soon.
div(ng-if='user.purchased.plan.customerId')
.well
div(style='font-size:22px')
i.icon-ok
| Subscribed
i.icon-ok=env.t('subscribed')
div(ng-include="'partials/options.settings.subscription.perks.html'")
.btn.btn-small.btn-danger(ng-click='cancelSubscription()') Cancel Subscription
.btn.btn-small.btn-danger(ng-click='cancelSubscription()')=env.t('cancelSub')

View file

@ -1,6 +1,6 @@
script(type='text/ng-template', id='partials/options.social.challenges.detail.close.html')
a.btn.btn-small.btn-danger(ng-click="delete(closingChal)")=env.t('delete')
h5=env.t('minusOr')
h5= '- ' + env.t('or') + ' -'
select(ui-select2, ng-required=true, ng-model='closingChal.winner', data-placeholder=env.t('selectWinner'), ng-change='selectWinner(closingChal)', )
option(value='')
option(ng-repeat='u in closingChal.members', value='{{u._id}}') {{u.profile.name}}
@ -111,7 +111,7 @@ script(type='text/ng-template', id='partials/options.social.challenges.html')
span.input-suffix.Pet_Currency_Gem1x.inline-gems
i.icon-question-sign(popover=env.t('prizePop'), popover-trigger='mouseenter', popover-placement='right')
span(ng-show='newChallenge.group=="habitrpg"')
!=env.t('min1Gem') + ' <strong>' + env.t('publicChallenges') + '</strong> ' + env.t('helpsPrevent')
!=env.t('publicChallenges')
.option-medium(ng-if='user.contributor.admin')
label.checkbox

View file

@ -11,7 +11,7 @@ a.pull-right.gem-wallet(popover-trigger='mouseenter', popover-title=env.t('guild
// ------ Bosses -------
.modal.inline-modal(bindonce='group', ng-if='group.type==="party" && group.quest.key')
.modal-header
h3(ng-if='group.quest.active==false')=env.t('questInv') + '{{Content.quests[group.quest.key].text}}'
h3(ng-if='group.quest.active==false')=env.t('questInvitation') + '{{Content.quests[group.quest.key].text}}'
h3(ng-if='group.quest.active==true') {{Content.quests[group.quest.key].text}}
.modal-body
div(ng-if='group.quest.active==false')
@ -61,9 +61,9 @@ a.pull-right.gem-wallet(popover-trigger='mouseenter', popover-title=env.t('guild
div(ng-if='Content.quests[group.quest.key].boss')
.npc_ian.pull-left
p!=env.t('bossDmg1') + ' <strong>' + env.t('bossDmg2') + '</strong>'
p!=env.t('bossDmg1')
br
p=env.t('bossDmg3')
p=env.t('bossDmg2')
div(ng-if='Content.quests[group.quest.key].collect')
.npc_ian.pull-left
@ -88,7 +88,7 @@ a.pull-right.gem-wallet(popover-trigger='mouseenter', popover-title=env.t('guild
input.option-content(type='text', ng-model='group.name', placeholder=env.t('groupName'))
.control-group.option-large
label.control-label=env.t('description')
textarea.option-content(style='height:15em;', placeholder=env.t('groupdescr'), ng-model='group.description')
textarea.option-content(style='height:15em;', placeholder=env.t('groupDescr'), ng-model='group.description')
.control-group.option-large
label.control-label=env.t('logoUrl')
input.option-content(type='url', placeholder=env.t('logoUrl'), ng-model='group.logo')
@ -131,7 +131,7 @@ a.pull-right.gem-wallet(popover-trigger='mouseenter', popover-title=env.t('guild
tr(ng-if='group.memberCount > group.members.length')
td
|<span class='badge'>{{group.memberCount - group.members.length}}
= ' ' + env.t('moremembers')
= ' ' + env.t('moreMembers')
|</span>
h4(ng-show='group.invites.length > 0')=env.t('invited')

View file

@ -42,9 +42,9 @@ script(type='text/ng-template', id='partials/options.social.hall.heroes.html')
.control-group.option-medium
input.option-content(type='number', step="any", ng-model='hero.balance')
span.input-suffix Balance
span.input-suffix=env.t('balance')
p
small!= '`user.balance`' + env.t('USD1') + ' <em>' + env.t('not') + '</em> ' + env.t('USD2')
small!= '`user.balance`' + env.t('notGems')
.control-group.option-medium
label.checkbox

View file

@ -68,35 +68,40 @@
a.label.label-contributor-1(ng-click='toggleUserTier($event)')=env.t('friendBadge')
div(style='display:none;')
p
!= '<span class="achievement achievement-firefox"></span> ' + env.t('friendText') + '<strong> ' + env.t('first') + '</strong> ' + env.t('friend1Text') + '<strong> 2 ' + env.t('gems') + '</strong>.'
span.achievement.achievement-firefox
!=env.t('friendFirst')
hr
p
!= '<span class="shop_armor_special_1 shop-sprite item-img"></span> ' + env.t('friendText') + '<strong> ' + env.t('second') + '</strong> ' + env.t('friendText2') + '<strong> ' + env.t('crystalArmor') + '</strong> ' + env.t('friendText3') + '<strong> 2 ' + env.t('gems') + '</strong>.'
span.shop-sprite.item-img(class='shop_armor_special_1')
!=env.t('friendSecond')
tr
td
a.label.label-contributor-3(ng-click='toggleUserTier($event)')=env.t('eliteBadge')
div(style='display:none;')
p
!= '<span class="shop_head_special_1 shop-sprite item-img"></span> ' + env.t('friendText') + ' <strong>' + env.t('third') + '</strong> ' + env.t('friendText2') + ' <strong>' + env.t('crystalHelmet') + '</strong> ' + env.t('friendText3') + '<strong> 2 ' + env.t('gems') + '</strong>.'
span.shop-sprite.item-img(class='shop_head_special_1')
!=env.t('eliteThird')
hr
p
!= '<span class="shop_weapon_special_1 shop-sprite item-img"></span> ' + env.t('friendText') + ' <strong>' + env.t('fourth') + '</strong> ' + env.t('friendText2') + ' <strong>' + env.t('crystalSword') + '</strong> ' + env.t('friendText3') + '<strong> 2 ' + env.t('gems') + '</strong>.'
span.shop-sprite.item-img(class='shop_weapon_special_1')
!=env.t('eliteFourth')
tr
td
a.label.label-contributor-5(ng-click='toggleUserTier($event)')=env.t('championBadge')
div(style='display:none;')
p
!= '<span class="shop_shield_special_1 shop-sprite item-img"></span> ' + env.t('friendText') + ' <em>' + env.t('fifth') + '</em> ' + env.t('friendText2') + ' <strong>' + env.t('crystalShield') + '</strong> ' + env.t('friendText3') + '<strong> 2 ' + env.t('gems') + '</strong>.'
span.shop-sprite.item-img(class='shop_shield_special_1')
!=env.t('championFifth')
hr
p
!= '<div class="Pet-Dragon-Hydra pull-left"></div>' + env.t('friendText') + ' <em>' + env.t('sixth') + '</em> ' + env.t('friendText2b') + ' <strong>' + env.t('hydraPet') + '</strong> ' + env.t('friendText3b') + '<strong> 2 ' + env.t('gems') + '</strong>.'
div(class='Pet-Dragon-Hydra pull-left')
!=env.t('championSixth')
tr
td
a.label.label-contributor-7(ng-click='toggleUserTier($event)')=env.t('legendaryBadge')
div(style='display:none;')
p
!= env.t('friendText') + ' <em>' + env.t('seventh') + '</em> ' + env.t('friendText2c') + '<strong> 2 ' + env.t('gems') + ' </strong>' + env.t('friendText3c')
!=env.t('legSeventh')
tr
td
a.label.label-contributor-8(ng-click='toggleUserTier($event)')=env.t('heroicBadge')
@ -111,12 +116,12 @@
include ./challenge-box
.span8(ng-controller='ChatCtrl')
h3=env.t('taverntalk')
h3=env.t('tavernTalk')
include ./chat-box
small(style='position: relative; top: -20px; left: 25px;')
include ../../shared/formatting-help
small(style='position: relative; top: 18px; left: 0px')
alert.alert-info
!=env.t('tavernalert1') + ' <a href="https://github.com/HabitRPG/habitrpg/issues" target="_blank">' + env.t('tavernalert2') + '</a>.'
!=env.t('tavernAlert1') + ' <a href="https://github.com/HabitRPG/habitrpg/issues" target="_blank">' + env.t('tavernAlert2') + '</a>.'
ul.unstyled.tavern-chat
include ./chat-message

View file

@ -47,4 +47,4 @@ figure.herobox(ng-click='spell ? castEnd(profile, "user", $event) : clickMember(
i.icon-circle-arrow-up.icon-white(ng-show='profile.stats.buffs.str || profile.stats.buffs.per || profile.stats.buffs.con || profile.stats.buffs.int || profile.stats.buffs.stealth', tooltip=env.t('buffed'), style='margin-right:5px;')
=env.t('lvl')
| {{profile.stats.lvl}}
i.icon-plus-sign.icon-white(ng-show='profile.achievements.rebirths', tooltip=env.t('reborn') + '{{profile.achievements.rebirthLevel}}', style='margin-left:5px')
i.icon-plus-sign.icon-white(ng-show='profile.achievements.rebirths', tooltip=env.t('reborn', {reLevel: "{{profile.achievements.rebirthLevel}}"}), style='margin-left:5px')

View file

@ -36,11 +36,8 @@ div(modal='user.flags.contributor')
.modal-body
.npc_justin.float-left
p
| {{user.profile.name}},
=env.t('contribText1')
| {{user.contributor.level}}
=env.t('contribText2')
a(href='http://habitrpg.wikia.com/wiki/Contributor_Rewards' target='_blank')=env.t('contribText3')
!=env.t('contribModal', {name: "{{user.profile.name}}", level: "{{user.contributor.level}}"})
a(href='http://habitrpg.wikia.com/wiki/Contributor_Rewards' target='_blank')=env.t('contribLink')
.modal-footer
button.btn.btn-default.cancel(ng-click='set({"flags.contributor":false})')=env.t('ok')
@ -50,10 +47,6 @@ div(modal='modals.achievements.rebirth')
h3=env.t('modalAchievement')
.modal-body
.achievement.achievement-sun
=env.t('rebirthAchievement1')
| {{user.achievements.rebirths}}
=env.t('rebirthAchievement2')
| {{user.achievements.rebirthLevel}}.
=env.t('rebirthAchievement3')
=env.t('rebirthAchievement', {number: "{{user.achievements.rebirths}}", level: "{{user.achievements.rebirthLevel}}"})
.modal-footer
button.btn.btn-default.cancel(ng-click='modals.achievements.rebirth = false')=env.t('ok')

View file

@ -3,7 +3,7 @@ div(modal='modals.buyGems')
.buy-gems
include ../gems
.well
h3 Buy Gems
h3=env.t('buyGems')
table.table
tr
td
@ -14,7 +14,8 @@ div(modal='modals.buyGems')
span.dashed-underline(popover=env.t('donateText3'),popover-trigger='mouseenter',popover-placement='right')
=env.t('donateText2')
tr
td.alert.alert-info=env.t('fiveUSD1')
td.alert.alert-info $5&nbsp;
=env.t('USD')
tr
td
.btn.btn-primary(ng-click='showStripe()',style='margin-left:10px;')=env.t('payWithCard')

View file

@ -66,9 +66,7 @@ div(ng-controller='SettingsCtrl')
.modal-header
h3=env.t('deleteaccount')
.modal-body
p=env.t('deleteText1')
strong=env.t('deleteText2')
=env.t('deleteText3')
p!=env.t('deleteText')
p
input(type='text', ng-model='_deleteAccount')
.modal-footer

View file

@ -93,9 +93,7 @@ li(bindonce='list', bo-id='"task-"+task.id', ng-repeat='task in obj[list.type+"s
a(ng-click='unlink(task, "remove-all")')=env.t('removeThem')
div(ng-if='task.challenge.broken=="CHALLENGE_CLOSED"')
p
=env.t('challengeCompleted1')
span.badge {{task.challenge.winner}}
=env.t('challengeCompleted2')
!=env.t('challengeCompleted', {user: "{{task.challenge.winner}}"})
p
a(ng-click='unlink(task, "keep-all")')=env.t('keepThem')
| &nbsp;|&nbsp;

View file

@ -5,7 +5,7 @@ block vars
- var menuItem = 'about'
block title
title About
title=env.t('companyAbout')
block content
.container

View file

@ -3,7 +3,7 @@ block vars
- var layoutEnv = env
- var menuItem = 'contact'
block title
title Contact
title=env.t('contact')
block content
// Probably just add linkks to the respective contact locations?
// Bugs? Github

View file

@ -27,15 +27,15 @@ html
ul.nav
li(class='#{menuItem=="home" ? "active" : ""}')
a(href='/static/front') Home
a(href='/static/front')=env.t('home')
li(class='#{menuItem=="about" ? "active" : ""}')
a(href='/static/about') Learn More
a(href='/static/about')=env.t('learnMore')
li
a(href='http://blog.habitrpg.com/') Blog
a(href='http://blog.habitrpg.com/')=env.t('companyBlog')
li(class='#{menuItem=="plans" ? "active" : ""}')
a(href='/static/plans') Group Plans
a(href='/static/plans')=env.t('groupPlans')
//li(class='#{menuItem=="contact" ? "active" : ""}')
a(href='/static/contact') Contact
a(href='/static/contact')=env.t('contact')
.container
block content

View file

@ -5,25 +5,33 @@ block vars
- var menuItem = 'plans'
block title
title Group Plans
title=env.t('groupPlans')
block content
h2 Group Plans
h2=env.t('groupPlans')
p For individuals, HabitRPG is free to play. Even for small interest groups, free (or cheap) <a href='http://habitrpg.wikia.com/wiki/Guilds' target='_blank'>guilds</a> and <a href='http://habitrpg.wikia.com/wiki/Challenges' target='_blank'>challenges</a> can be used to motivate participants in behavioral modification. Think writing groups, art challenges, and more.
p But some group leaders will want more control, privacy, security, and support. Examples of such groups are families, health and wellness groups, employee groups, and more. These plans provide private instances of HabitRPG for your group or organization, secure and independent of <a href='http://habitrpg.wikia.com/wiki/Habitica' target='_blank'>Habitica</a>. See below for additional plan perks, and contact us for more information!
p
=env.t('indivPlan1')
a(href='http://habitrpg.wikia.com/wiki/Guilds' target='_blank')=env.t('guilds')
= ' ' + env.t('and') + ' '
a(href='http://habitrpg.wikia.com/wiki/Challenges' target='_blank')=env.t('challenges')
=env.t('indivPlan2')
p
=env.t('groupText1')
a(href='http://habitrpg.wikia.com/wiki/Habitica' target='_blank')=env.t('habitica')
|.&nbsp;
=env.t('groupText2')
.subscription-features
table.table.table-striped
tr
th.feature-name
th.feature-name.muted Family (Coming Soon)
th.feature-name.muted Group (Coming Soon)
th.feature-name Organization
th.feature-name.muted=env.t('planFamily')
th.feature-name.muted=env.t('planGroup')
th.feature-name=env.t('organization')
tr
th
span.dashed-underline(popover="Members of the organization participate outside of HabitRPG proper, providing focus for your participants.",popover-trigger='mouseenter',popover-placement='right')
| Private Organization
span.dashed-underline(popover=env.t('organizationSubText'),popover-trigger='mouseenter',popover-placement='right')=env.t('organizationSub')
td.muted
i.icon-ok
td.muted
@ -32,53 +40,46 @@ block content
i.icon-ok
tr
th
span.dashed-underline(popover="Dedicated Hosting: you get your own database and server hosted by HabitRPG, or optionally we'll install it in your organization's network. If not checked, the plan uses \"Shared Hosting\": your organization uses the same database as HabitRPG proper while performing independently Habitica. Your members are shielded from Tavern & Guilds, but still on the same server/database.",popover-trigger='mouseenter',popover-placement='right')
| Dedicated Hosting
span.dashed-underline(popover=env.t('dedicatedHostText'),popover-trigger='mouseenter',popover-placement='right')=env.t('dedicatedHost')
td
td
td
i.icon-ok
tr
th
span.dashed-underline(popover="We can optionally give you your own domain for the installation.",popover-trigger='mouseenter',popover-placement='right')
| Custom Domain
span.dashed-underline(popover=env.t('customDomainText'),popover-trigger='mouseenter',popover-placement='right')=env.t('customDomain')
td
td
td
i.icon-ok
tr
th
span.dashed-underline(popover="The maximum number of players in your private organization.",popover-trigger='mouseenter',popover-placement='right')
| Max Participants
span.dashed-underline(popover=env.t('maxPlayersText'),popover-trigger='mouseenter',popover-placement='right')=env.t('maxPlayers')
td.muted 10
td.muted 75
td Unlimited
td=env.t('unlimited')
tr
th
span.dashed-underline(popover="First to be provided for with support.",popover-trigger='mouseenter',popover-placement='right')
| Priority Support On Tickets & Hosting
span.dashed-underline(popover=env.t('priSupportText'),popover-trigger='mouseenter',popover-placement='right')=env.t('priSupport')
td
td
td
i.icon-ok
tr
th
span.dashed-underline(popover="We will provide support for training, bugs, installation, and feature requests. Additional hours available at an hourly rate.",popover-trigger='mouseenter',popover-placement='right')
| Support Hours / Month
span.dashed-underline(popover=env.t('timeSupportText'),popover-trigger='mouseenter',popover-placement='right')=env.t('timeSupport')
td.muted -
td.muted 5
td 10
tr
th
h5 Game features:
h5=env.t('gameFeatures') + ':'
ul
li Ads disabled for members
li=env.t('gameNoAds')
li
span.dashed-underline(popover="Members will be able to purchase gems with gold, meaning none of your participants need to buy anything with real money.",popover-trigger='mouseenter',popover-placement='right')
| Gems purchasable with gold
span.dashed-underline(popover=env.t('gold2GemText'),popover-trigger='mouseenter',popover-placement='right')=env.t('gold2Gem')
li
span.dashed-underline(popover="We will provide the organization leaders with as many gems as they need, for things like challenge prizes, guild-creation, etc.",popover-trigger='mouseenter',popover-placement='right')
| Infinite leader gems
span.dashed-underline(popover=env.t('infiniteGemText'),popover-trigger='mouseenter',popover-placement='right')=env.t('infiniteGem')
td.muted
i.icon-ok
td.muted
@ -89,8 +90,8 @@ block content
th
//| Price
td
a.btn(href='https://docs.google.com/forms/d/17torT7OlxgtbHAPdBDRQNG2lTdIQyrGXk4O2YXvUMig/viewform',popover="Plan not yet available, but click to contact us and we'll keep you updated.",popover-placement='right',popover-trigger='mouseenter') Contact Us
a.btn.muted(href='https://docs.google.com/forms/d/17torT7OlxgtbHAPdBDRQNG2lTdIQyrGXk4O2YXvUMig/viewform',popover=env.t('notYetPlan'),popover-placement='right',popover-trigger='mouseenter')=env.t('contactUs')
td
a.btn.muted(href='https://docs.google.com/forms/d/17torT7OlxgtbHAPdBDRQNG2lTdIQyrGXk4O2YXvUMig/viewform',popover="Plan not yet available, but click to contact us and we'll keep you updated.",popover-placement='right',popover-trigger='mouseenter') Contact Us
a.btn.muted(href='https://docs.google.com/forms/d/17torT7OlxgtbHAPdBDRQNG2lTdIQyrGXk4O2YXvUMig/viewform',popover=env.t('notYetPlan'),popover-placement='right',popover-trigger='mouseenter')=env.t('contactUs')
td
a.btn.btn-primary(href='https://docs.google.com/forms/d/12Jqj_8f3oQS0B3ZUHewHbK61uLjBdzBeB0zyEqB9lxM/viewform') Contact Us
a.btn.btn-primary(href='https://docs.google.com/forms/d/12Jqj_8f3oQS0B3ZUHewHbK61uLjBdzBeB0zyEqB9lxM/viewform')=env.t('contactUs')