Merge branch 'develop'

Conflicts:
	locales/en/app.json
This commit is contained in:
Tyler Renelle 2013-05-13 21:31:18 +01:00
commit 4a23ad4856
11 changed files with 262 additions and 83 deletions

115
locales/nl/app.json Normal file
View file

@ -0,0 +1,115 @@
{
"_commenttut": "HANDLEIDING",
"_commenthead": "AANHEF",
"Health": "Gezondheid",
"Experience": "Ervaring",
"History": "Geschiedenis",
"Settings": "Instellingen",
"Party": "Groep",
"Logout": "Uitloggen",
"_commentuser": "GEBRUIKER",
"Anonymous": "Anoniem",
"Avatar": "Avatar",
"Level": "Level",
"GP": "Goudstukken",
"Head": "Hoofd",
"ShowHelm": "Toon Helm",
"Hair": "Haar",
"Skin": "Huid",
"Profile": "Profiel",
"Edit": "Pas Aan",
"Save": "Sla Op",
"PhotoUrl": "Foto URL",
"FullName": "Volledige Naam",
"Blurb": "Blurp",
"Websites": "Voeg Website Toe",
"Achievements": "Prestaties",
"OriginalUser": "Originele Gebruiker!",
"Inventory": "Inventaris",
"EggsTitle": "Eieren",
"EggsContent": "Je hebt nog geen eieren",
"HatchingPotionsTitle": "Broed Toverdrankjes",
"HatchingPotionsContent": "Je hebt nog geen broed toverdrankjes!",
"Market": "Markt",
"MarketTitle": "Welkom op de markt!",
"MarketContent": "Wil je graag dat ene dier, maar kan je niet wachten tot hij valt? Koop hem hier!",
"Stable": "Stal",
"Tokens": "Tokens",
"_commentitems": "BUIT & BELONINGEN",
"_comment": "HUISDIER EIEREN",
"WolfEgg": "Wolvenwelp",
"TigerEgg": "Tijgerwelp",
"PandaEgg": "Pandawelp",
"LionEgg": "Leeuwenwelp",
"FoxEgg": "Vos",
"PigEgg": "Vliegende Big",
"DragonEgg": "Draak",
"CactusEgg": "Cactus",
"BearEgg": "Beren Welp",
"WolfEgg": "Wolf",
"_comment": "BROED TOVERDRANKEN",
"BasePot": "Basis",
"WhitePot": "Wit",
"DesertPot": "Woestijn",
"RedPot": "Rood",
"ShadePot": "Schaduw",
"SkeletonPot": "Skelet",
"ZombiePot": "Zombie",
"CottonPinkPot": "Suikerspinroze",
"CottonBluePot": "Suikerspinblauw",
"GoldenPot": "Goud",
"_comment": "GOUDEN BELONINGEN",
"_commentmain": "HOOFD SCHERM",
"Habits": "Gewoonten",
"NewHabit": "Nieuwe Gewoonte",
"Edit": "Pas Aan",
"Text": "Text",
"ExtraNotes": "Extra Aantekeningen",
"Directions/Actions": "Richtingen/Acties",
"AdvancedOptions": "Uitgebreide Opties",
"Difficulty": "Moeilijkheid",
"DifficultyHelpTitle": "Hoe moeilijk is deze taak?",
"DifficultyHelpContent": "Dit vermenigvuldigt de punt waarde. Gebruik spaars, de waarde wordt automatisch door ons algoritmes aangepast. Sommige taken zijn daarentegen daadwerkelijk veel meer waard dan anderen (b.v.b. 'Flossen' versus 'Thesis Schrijven')",
"Easy": "Makkelijk",
"Medium": "Gemiddeld",
"Hard": "Moeilijk",
"Save&Close": "Sla Op & Sluit",
"Delete": "Verwijder",
"Progress": "Voortgang",
"Score": "Score",
"Daily": "Dagelijks",
"NewDaily": "Nieuw",
"Repeat": "Herhaal",
"Su": "Zo",
"M": "Ma",
"T": "Di",
"We": "Wo",
"Th": "Do",
"F": "Vr",
"S": "Za",
"Todos": "Te Doen",
"NewTodo": "Nieuw",
"DueDate": "Einddatum",
"Remaining": "Te Doen",
"Complete": "Voltooid",
"Rewards": "Beloningen",
"Gold": "Goud",
"Silver": "Zilver",
"NewReward": "Nieuwe Beloning",
"Price": "Prijs",
"_commentfooter": "ONDERSCHRIFT",
"_commentmisc": "OVERIGE",
"RemoveAds": "Verwijder Reclame",
"WhyAds": "Waarom Reclame?",
"WhyAdsContent1": "Habit is een open source project en kan alle hulp gebruiken die het kan krijgen - beschouw dit als een donatie aan de ontwikkelaars. Je krijgt ook 20 tokens van de aankoop, welke je kunt gebruiken voor speciale voorwerpen",
"WhyAdsContent2": "'Hey, ik heb de Kickstarter gebacked' - volg ",
"WhyAdsContent3": "deze instructies"
}

BIN
public/img/npcs/matt.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View file

@ -119,6 +119,17 @@ setupTour = (model) ->
initStickyHeader = (model) ->
$('.header-wrap').sticky({topSpacing:0})
growlNotification = module.exports.growlNotification = (html, type) ->
$.bootstrapGrowl html,
ele: '#notification-area',
type: type # (null, 'info', 'error', 'success', 'gp', 'xp', 'hp', 'lvl','death')
top_offset: 20
align: 'right' # ('left', 'right', or 'center')
width: 250 # (integer, or 'auto')
delay: 3000
allow_dismiss: true
stackup_spacing: 10 # spacing between consecutive stacecked growls.
###
Sets up "+1 Exp", "Level Up", etc notifications
###
@ -127,17 +138,8 @@ setupGrowlNotifications = (model) ->
user = model.at '_user'
statsNotification = (html, type) ->
#don't show notifications if user dead
return if user.get('stats.lvl') == 0
$.bootstrapGrowl html,
ele: '#notification-area',
type: type # (null, 'info', 'error', 'success', 'gp', 'xp', 'hp', 'lvl','death')
top_offset: 20
align: 'right' # ('left', 'right', or 'center')
width: 250 # (integer, or 'auto')
delay: 3000
allow_dismiss: true
stackup_spacing: 10 # spacing between consecutive stacecked growls.
return if user.get('stats.lvl') == 0 #don't show notifications if user dead
growlNotification(html, type)
# Setup listeners which trigger notifications
user.on 'set', 'stats.hp', (captures, args) ->

View file

@ -2,5 +2,6 @@ i18n = require 'derby-i18n'
i18n.plurals.add 'he', (n) -> n
i18n.plurals.add 'bg', (n) -> n
i18n.plurals.add 'nl', (n) -> n
module.exports = i18n

View file

@ -12,7 +12,7 @@ app = derby.createApp module
# Translations
i18n = require './i18n'
i18n.localize app,
availableLocales: ['en', 'he', 'bg']
availableLocales: ['en', 'he', 'bg', 'nl']
defaultLocale: 'en'
urlScheme: false
checkHeader: true

View file

@ -2,7 +2,7 @@
<div class="module full-width">
<span class='option-box pull-right wallet'>
<app:rewards:userGems />
<app:rewards:user-gems />
</span>
<ul class="nav nav-tabs game-tabs">
@ -88,7 +88,7 @@
</div>
</div>
<div class='alert alert-info {#unless _user.flags.rest}hidden{/}'>While you're resting, your dailies aren't calculated. <span class='label label-warning'>Warning:</span> this means that if you check in today, do some dailies, and check out tomorrow - they won't get un-checked until the day <strong>after</strong> tomorrow. You start where you left off before vacation / illness, and it prevents abusing the inn. See <a _target='blank' href='https://trello.com/card/rest-in-tavern/50e5d3684fe3a7266b0036d6/14'><strong>Trello</strong></a> for more information.</div>
<div class='alert alert-info {#unless _user.flags.rest}hidden{/}'>Whilst resting your dailies are saved and aren't effected by day turn-over. Whether you check out tomorrow or in a weeks time you'll continue in the same state as when you checked in.</div>
<div class=well>
<h3>Resources</h3>

View file

@ -42,8 +42,18 @@
<div id="exp-chart" style="display:none;"></div>
<div id=main class="grid">
<div class='{#if _gamePane}hidden{/}'><app:tasks:task-lists /></div>
<div class='{#unless _gamePane}hidden{/}'><app:game-pane:main /></div>
<div class='{#if _gamePane}hidden{/}'>
<app:tasks:task-lists
habits={_habitList}
dailys={_dailyList}
todos={_todoList}
rewards={_rewardList}
main=true
editable=true />
</div>
<div class='{#unless _gamePane}hidden{/}'>
<app:game-pane:main />
</div>
</div>
</div>
<app:footer:footer />

View file

@ -34,7 +34,7 @@
<!-- Re-Roll modal -->
<app:modals:modal modalId='reroll-modal' header="Reset Your Tasks">
<app:rewards:userGems />
<app:rewards:user-gems />
<p>Highly discouraged because red tasks provide good incentive to improve (<a target="_blank" href="https://github.com/lefnire/habitrpg#all-my-tasks-are-red-im-dying-too-fast">read more</a>). However, this becomes necessary after long bouts of bad habits.</p>
<@footer>
{#if lt(_user.balance,1)}
@ -47,7 +47,7 @@
<!-- Buy more Gems modal -->
<app:modals:modal modalId='more-gems-modal' header="Out Of Gems">
<app:rewards:userGems />
<app:rewards:user-gems />
<p>Oops, out of Gems, which are used to buy special items! Habit is an open source project, and can use all the help it can get - buy more Gems to receive this pet, and consider it a donation to the contributors</p>
<@footer>
<a data-dismiss="modal" x-bind="click:showStripe" class="btn btn-success btn-large">Buy More Gems</a><span class='gem-cost'>Not enough Gems</span>

View file

@ -95,33 +95,48 @@
</div>
<stable:>
<div>{count(_user.items.pets)} / 90 Pets Found</div>
<table>
{{#each _items.pets as :pet}}
<tr>
{{#each _items.hatchingPotions as :potion}}
<td>
<app:pets:stable-pet tooltip="{{:potion.text}} {{:pet.text}}" pet="{{:pet.name}}-{{:potion.name}}" />
</td>
<div class='row-fluid'>
<div class='span8'>
<!--<menu type="list">
<li class="customize-menu">
<menu>
</menu>
</li>
</menu>-->
<table>
{{#each _items.pets as :pet}}
<tr>
{{#each _items.hatchingPotions as :potion}}
<td>
<app:pets:stable-pet tooltip="{{:potion.text}} {{:pet.text}}" pet="{{:pet.name}}-{{:potion.name}}" />
</td>
{{/}}
</tr>
{{/}}
</tr>
{{/}}
</table>
<h4>Rare Pets</h4>
<table>
<tr>
<td><app:pets:stable-pet potion='Veteran Wolf' pet="Wolf-Veteran" /></td>
{{#if gt(_user.backer.tier,79)}}<td><app:pets:stable-pet potion='Cerberus Pup' pet="Wolf-Cerberus" /></td>{{/}}
</tr>
</table>
</table>
<h4>Rare Pets</h4>
<table>
<tr>
<td><app:pets:stable-pet potion='Veteran Wolf' pet="Wolf-Veteran" /></td>
{{#if gt(_user.backer.tier,79)}}<td><app:pets:stable-pet potion='Cerberus Pup' pet="Wolf-Cerberus" /></td>{{/}}
</tr>
</table>
</div>
<!--<menu type="list">
<li class="customize-menu">
<menu>
<div class='span4' style='position:relative;'>
<img src='/img/npcs/matt.png' />
</menu>
</li>
</menu>-->
<div class="popover fade bottom in" style="top: 138px; left: 0px; display: block;">
<div class="arrow"></div>
<h3 class="popover-title">Matt Boche</h3>
<div class="popover-content">
Welcome to the Stable! I'm <a target="_blank" href="http://www.kickstarter.com/profile/mattboch">Matt</a>, the beast master. Choose a pet here to adventure at your side - they aren't much help yet, but I forsee a time when they're able to <a href="_target" href="https://trello.com/card/mounts/50e5d3684fe3a7266b0036d6/221">grow into powerful steeds</a>! Until that day, <a target="_blank" href="https://f.cloud.github.com/assets/2374703/164631/3ed5fa6c-78cd-11e2-8743-f65ac477b55e.png">have a look-see</a> at all the pets you can collect.
<h4>{count(_user.items.pets)} / 90 Pets Found</h4>
</div>
</div>
</div>
</div>
<stable-pet:>
<div rel="tooltip" title="{{@tooltip}}">

View file

@ -8,42 +8,7 @@
</@footer>
</app:modals:modal>
<rewards-column:>
<div class="module rewards-module">
<div class="task-column rewards">
<!-- cash or gems -->
<span class='option-box pull-right wallet'>
<div class="money">
{gold(floor(_user.stats.gp))}
<span class='shop_gold' rel='tooltip' title='Gold'></span>
</div>
<div class="money">
{silver(_user.stats.gp)}
<span class='shop_silver' rel='tooltip' title='Silver'></span>
</div>
</span>
<app:tasks:task-list header="Rewards" type="reward" inputValue="{_newReward}" placeHolder="New Reward" list={_rewardList} >
<@extra>
<!-- Static Rewards -->
<ul class='items {#unless _user.flags.itemsEnabled}hidden{/}'>
<app:rewards:item item={_items.next.weapon} />
<app:rewards:item item={_items.next.armor} />
<app:rewards:item item={_items.next.head} />
<app:rewards:item item={_items.next.shield} />
<app:rewards:item item={_items.potion} />
<app:rewards:item item={_items.reroll} />
</ul>
</@extra>
<@ads><a href="http://www.amazon.com/gp/product/1594484805/ref=as_li_tf_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1594484805&linkCode=as2&tag=ha0d2-20">Drive: The Surprising Truth About What Motivates Us</a><img src="//www.assoc-amazon.com/e/ir?t=ha0d2-20&l=as2&o=1&a=1594484805" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></@ads>
</app:tasks:task-list>
</div>
</div>
<userGems:>
<user-gems:>
<a class="pull-right gem-wallet" rel='popover' data-trigger='hover' data-title='Gems' data-content="Used for buying special items (reroll, eggs, hatching potions, etc). You'll need to unlock those features before being able to use Gems." data-placement='bottom'>
<span class="task-action-btn tile flush bright add-gems-btn" x-bind="click:showStripe"></span>
<span class="task-action-btn tile flush neutral"><div class="Gems"></div> {gems(_user.balance)} Gems

View file

@ -14,7 +14,15 @@
<!-- Habits Column -->
<div class="module">
<div class="task-column habits">
<app:tasks:task-list header="Habits" type="habit" inputValue="{_newHabit}" placeHolder="New Habit" list={_habitList} >
<app:tasks:task-list
header="habits"
type="habit"
inputValue={_newHabit}
placeHolder="New Habit"
list={@habits}
main={{@main}}
editable={{@editable}}
>
<@ads><a href="http://www.amazon.com/gp/product/1400069289/ref=as_li_tf_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1400069289&linkCode=as2&tag=ha0d2-20">The Power of Habit: Why We Do What We Do in Life and Business</a><img src="//www.assoc-amazon.com/e/ir?t=ha0d2-20&l=as2&o=1&a=1400069289" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></@ads>
</app:tasks:task-list>
</div>
@ -23,7 +31,15 @@
<!-- Dailys Column -->
<div class="module">
<div class="task-column dailys">
<app:tasks:task-list header="Dailies" type="daily" inputValue="{_newDaily}" placeHolder="New Daily" list={_dailyList} >
<app:tasks:task-list
header="dailies"
type="daily"
inputValue={_newDaily}
placeHolder="New Daily"
list={@dailys}
main={{@main}}
editable={{@editable}}
>
<@ads><a href="http://www.amazon.com/gp/product/0142000280/ref=as_li_tf_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0142000280&linkCode=as2&tag=ha0d2-20">Getting Things Done: The Art of Stress-Free Productivity</a><img src="//www.assoc-amazon.com/e/ir?t=ha0d2-20&l=as2&o=1&a=0142000280" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></@ads>
</app:tasks:task-list>
</div>
@ -32,6 +48,8 @@
<!-- Todos Column -->
<div class="module">
<div class="task-column todos tabbable tabs-below">
{{#if @main}}
<!-- todo export/graph options -->
<span class='option-box pull-right'>
{#if _user.history.todos}
@ -40,9 +58,18 @@
<a class="option-action" href="/v1/users/{{_user.id}}/calendar.ics?apiToken={{_user.apiToken}}" rel=tooltip title="iCal"><i class=icon-calendar></i></a>
<!-- <a href="https://www.google.com/calendar/render?cid={{encodeiCalLink(_user.id, _user.apiToken)}}" rel=tooltip title="Google Calendar"><i class=icon-calendar></i></a> -->
</span>
{{/}}
<app:tasks:task-list header="Todos" type="todo" inputValue="{_newTodo}" placeHolder="New Todo" list={_todoList} >
<app:tasks:task-list
header="todos"
type="todo"
inputValue="{_newTodo}"
placeHolder="New Todo"
list={@todos}
main={{@main}}
editable={{@editable}}
>
<@ads><a href="http://www.amazon.com/gp/product/0312430000/ref=as_li_tf_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0312430000&linkCode=as2&tag=ha0d2-20">The Checklist Manifesto: How to Get Things Right</a><img src="//www.assoc-amazon.com/e/ir?t=ha0d2-20&l=as2&o=1&a=0312430000" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></@ads>
</app:tasks:task-list>
@ -57,7 +84,49 @@
</div>
<!-- Rewards Column -->
<app:rewards:rewards-column/>
<div class="module rewards-module">
<div class="task-column rewards">
{{#if @main}}
<!-- cash or gems -->
<span class='option-box pull-right wallet'>
<div class="money">
{gold(floor(_user.stats.gp))}
<span class='shop_gold' rel='tooltip' title='Gold'></span>
</div>
<div class="money">
{silver(_user.stats.gp)}
<span class='shop_silver' rel='tooltip' title='Silver'></span>
</div>
</span>
{{/}}
<app:tasks:task-list
header="rewards"
type="reward"
inputValue="{_newReward}"
placeHolder="New Reward"
list={@rewards}
main={{@main}}
editable={{@editable}}
>
<@extra>
{{#if @main}}
<!-- Static Rewards -->
<ul class='items {#unless _user.flags.itemsEnabled}hidden{/}'>
<app:rewards:item item={_items.next.weapon} />
<app:rewards:item item={_items.next.armor} />
<app:rewards:item item={_items.next.head} />
<app:rewards:item item={_items.next.shield} />
<app:rewards:item item={{_items.potion}} />
<app:rewards:item item={{_items.reroll}} />
</ul>
{{/}}
</@extra>
<@ads><a href="http://www.amazon.com/gp/product/1594484805/ref=as_li_tf_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1594484805&linkCode=as2&tag=ha0d2-20">Drive: The Surprising Truth About What Motivates Us</a><img src="//www.assoc-amazon.com/e/ir?t=ha0d2-20&l=as2&o=1&a=1594484805" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></@ads>
</app:tasks:task-list>
</div>
</div>
<!-- Templates -->
<task-list: nonvoid>
@ -65,18 +134,20 @@
{{#if equal(@type,'todo')}}<div id="todos-chart" class="hidden"></div>{{/}}
{{#if @editable}}
<form class="addtask-form form-inline new-task-form {#if and(_showCompleted,equal(@type,'todo'))}hidden{/}" id="new-{{@type}}" data-task-type="{{@type}}" x-bind="submit:addTask">
<span class="addtask-field"><input value="{@inputValue}" type="text" placeholder="{{@placeHolder}}"/></span>
<input class="addtask-btn" type="submit" value="">
</form>
<hr>
{{/}}
<ul class="{{@type}}s {#unless @list}hidden{/}">
{#each @list as :task}<app:tasks:task />{/}
</ul>
{{@extra}}
<br/>
<!-- ads -->
{{#if and( _loggedIn, notEqual(_user.flags.ads,'hide') )}}
{{#if and( _loggedIn, notEqual(_user.flags.ads,'hide'), @main )}}
<span class='pull-right'>
<a x-bind="click:showStripe" rel='tooltip' title='Remove Ads'><i class='icon-remove'></i></a><br/>
<a href="#" data-target="#why-ads-modal" data-toggle="modal" rel='tooltip' title='Why Ads?'><i class='icon-question-sign'></i></a>