Merged master into feature/thangload.

This commit is contained in:
Nick Winter 2014-05-09 12:56:58 -07:00
commit 589410ed8e
142 changed files with 3675 additions and 696 deletions

11
.gitignore vendored
View file

@ -28,6 +28,9 @@ Thumbs.db
*.sublime-project
*.sublime-workspace
# IntelliJ/WebStorm
*.iml
# NPM packages folder.
node_modules/
bower_components/
@ -77,4 +80,10 @@ bin/mongo/
# windows
/SCOCODE.bat
### If you add something here, copy it to the end of .npmignore, too. ###
# local settings
login.coffee
# debugging
*.heapsnapshot
### If you add something here, copy it to the end of .npmignore, too. ###

View file

@ -53,6 +53,9 @@ Thumbs.db
*.sublime-project
*.sublime-workspace
# IntelliJ/WebStorm
*.iml
# NPM packages folder.
node_modules/
@ -89,6 +92,12 @@ mongo/
bin/node/
bin/mongo/
# Karma coverage
coverage/
# local settings
login.coffee
# debugging
*.heapsnapshot

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

View file

@ -83,6 +83,281 @@ self.transferableSupported = function transferableSupported() {
var World = self.require('lib/world/world');
var GoalManager = self.require('lib/world/GoalManager');
Aether.addGlobal('Vector', require('lib/world/vector'));
Aether.addGlobal('_', _);
var serializedClasses = {
"Thang": self.require('lib/world/thang'),
"Vector": self.require('lib/world/vector'),
"Rectangle": self.require('lib/world/rectangle')
};
self.currentUserCodeMapCopy = "";
self.currentDebugWorldFrame = 0;
self.stringifyValue = function(value, depth) {
var brackets, i, isArray, isObject, key, prefix, s, sep, size, v, values, _i, _j, _len, _len1, _ref, _ref1, _ref2, _ref3;
if (!value || _.isString(value)) {
return value;
}
if (_.isFunction(value)) {
if (depth === 2) {
return void 0;
} else {
return "<Function>";
}
}
if (value === this.thang && depth) {
return "<this " + value.id + ">";
}
if (depth === 2) {
if (((_ref = value.constructor) != null ? _ref.className : void 0) === "Thang") {
value = "<" + (value.type || value.spriteName) + " - " + value.id + ", " + (value.pos ? value.pos.toString() : 'non-physical') + ">";
} else {
value = value.toString();
}
return value;
}
isArray = _.isArray(value);
isObject = _.isObject(value);
if (!(isArray || isObject)) {
return value.toString();
}
brackets = isArray ? ["[", "]"] : ["{", "}"];
size = _.size(value);
if (!size) {
return brackets.join("");
}
values = [];
if (isArray) {
for (_i = 0, _len = value.length; _i < _len; _i++) {
v = value[_i];
s = this.stringifyValue(v, depth + 1);
if (s !== void 0) {
values.push("" + s);
}
}
} else {
_ref2 = (_ref1 = value.apiProperties) != null ? _ref1 : _.keys(value);
for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {
key = _ref2[_j];
if (key[0] === "_") continue;
s = this.stringifyValue(value[key], depth + 1);
if (s !== void 0) {
values.push(key + ": " + s);
}
}
}
sep = '\n' + ((function() {
var _k, _results;
_results = [];
for (i = _k = 0; 0 <= depth ? _k < depth : _k > depth; i = 0 <= depth ? ++_k : --_k) {
_results.push(" ");
}
return _results;
})()).join('');
prefix = (_ref3 = value.constructor) != null ? _ref3.className : void 0;
if (isArray) {
if (prefix == null) {
prefix = "Array";
}
}
if (isObject) {
if (prefix == null) {
prefix = "Object";
}
}
prefix = prefix ? prefix + " " : "";
return "" + prefix + brackets[0] + sep + " " + (values.join(sep + ' ')) + sep + brackets[1];
};
var cache = {};
self.invalidateCache = function () {
cache = {};
};
self.retrieveValueFromCache = function (thangID, spellID, variableChain, frame) {
var frameCache, thangCache, spellCache;
if ((frameCache = cache[frame]) && (thangCache = frameCache[thangID]) && (spellCache = thangCache[spellID]))
return spellCache[variableChain.join()];
return undefined;
};
self.updateCache = function (thangID, spellID, variableChain, frame, value) {
var key, keys, currentObject;
keys = [frame,thangID, spellID, variableChain.join()];
currentObject = cache;
for (var i = 0, len = keys.length - 1; i < len; i++)
{
key = keys[i];
if (!(key in currentObject))
currentObject[key] = {};
currentObject = currentObject[key];
}
currentObject[keys[keys.length - 1]] = value;
};
self.retrieveValueFromFrame = function retrieveValueFromFrame(args) {
var cacheValue;
if (args.frame === self.currentDebugWorldFrame && (cacheValue = self.retrieveValueFromCache(args.currentThangID, args.currentSpellID, args.variableChain, args.frame)))
return self.postMessage({type: 'debug-value-return', serialized: {"key": args.variableChain.join("."), "value": cacheValue}});
var retrieveProperty = function retrieveProperty(currentThangID, currentSpellID, variableChain)
{
var prop;
var value;
var keys = [];
for (var i = 0, len = variableChain.length; i < len; i++) {
prop = variableChain[i];
if (prop === "this")
{
value = self.debugWorld.thangMap[currentThangID];
}
else if (i === 0)
{
try
{
var flowStates = self.debugWorld.userCodeMap[currentThangID][currentSpellID].flow.states;
//we have to go to the second last flowState as we run the world for one additional frame
//to collect the flow
value = _.last(flowStates[flowStates.length - 2].statements).variables[prop];
}
catch (e)
{
value = undefined;
}
}
else
{
value = value[prop];
}
keys.push(prop);
if (!value) break;
var classOfValue;
if (classOfValue = serializedClasses[value.CN])
{
if (value.CN === "Thang")
{
var thang = self.debugWorld.thangMap[value.id];
value = thang || "<Thang " + value.id + " (non-existent)>"
}
else
{
value = classOfValue.deserializeFromAether(value);
}
}
}
var serializedProperty = {
"key": keys.join("."),
"value": self.stringifyValue(value,0)
};
self.updateCache(currentThangID,currentSpellID,variableChain, args.frame, serializedProperty.value);
self.postMessage({type: 'debug-value-return', serialized: serializedProperty});
};
self.enableFlowOnThangSpell(args.currentThangID, args.currentSpellID, args.userCodeMap);
self.setupDebugWorldToRunUntilFrame(args);
self.debugWorld.loadFramesUntilFrame(
args.frame,
retrieveProperty.bind({},args.currentThangID, args.currentSpellID, args.variableChain),
self.onDebugWorldError,
self.onDebugWorldProgress
);
};
self.enableFlowOnThangSpell = function (thangID, spellID, userCodeMap) {
try {
if (userCodeMap[thangID][spellID].originalOptions.includeFlow === true &&
userCodeMap[thangID][spellID].originalOptions.noSerializationInFlow === true)
return;
else
{
userCodeMap[thangID][spellID].originalOptions.includeFlow = true;
userCodeMap[thangID][spellID].originalOptions.noSerializationInFlow = true;
var temporaryAether = Aether.deserialize(userCodeMap[thangID][spellID]);
temporaryAether.transpile(temporaryAether.raw);
userCodeMap[thangID][spellID] = temporaryAether.serialize();
}
}
catch (e) {
console.log("there was an error enabling flow on thang spell:" + e)
}
};
self.setupDebugWorldToRunUntilFrame = function (args) {
self.debugPostedErrors = {};
self.debugt0 = new Date();
self.debugPostedErrors = false;
self.logsLogged = 0;
var stringifiedUserCodeMap = JSON.stringify(args.userCodeMap);
var userCodeMapHasChanged = ! _.isEqual(self.currentUserCodeMapCopy, stringifiedUserCodeMap);
self.currentUserCodeMapCopy = stringifiedUserCodeMap;
if (!self.debugWorld || userCodeMapHasChanged || args.frame != self.currentDebugWorldFrame) {
self.invalidateCache();
try {
self.debugWorld = new World(args.worldName, args.userCodeMap);
if (args.level)
self.debugWorld.loadFromLevel(args.level, true);
self.debugGoalManager = new GoalManager(self.debugWorld);
self.debugGoalManager.setGoals(args.goals);
self.debugGoalManager.setCode(args.userCodeMap);
self.debugGoalManager.worldGenerationWillBegin();
self.debugWorld.setGoalManager(self.debugGoalManager);
}
catch (error) {
self.onDebugWorldError(error);
return;
}
Math.random = self.debugWorld.rand.randf; // so user code is predictable
self.debugWorld.totalFrames = args.frame; //hack to work around error checking
self.currentDebugWorldFrame = args.frame;
}
};
self.runDebugWorldUntilFrame = function (args) {
self.setupDebugWorldToRunUntilFrame(args);
self.debugWorld.loadFramesUntilFrame(args.frame, self.onDebugWorldLoaded, self.onDebugWorldError, self.onDebugWorldProgress);
};
self.onDebugWorldLoaded = function onDebugWorldLoaded() {
console.log("World loaded!");
};
self.onDebugWorldError = function onDebugWorldError(error) {
if(error instanceof Aether.problems.UserCodeProblem) {
if(!self.debugPostedErrors[error.key]) {
var problem = error.serialize();
self.postMessage({type: 'user-code-problem', problem: problem});
self.debugPostedErrors[error.key] = problem;
}
}
else {
console.log("Non-UserCodeError:", error.toString() + "\n" + error.stack || error.stackTrace);
}
return true;
};
self.onDebugWorldProgress = function onDebugWorldProgress(progress) {
self.postMessage({type: 'debug-world-load-progress-changed', progress: progress});
};
self.debugAbort = function () {
if(self.debugWorld && self.debugWorld.name) {
console.log("About to abort:", self.debugWorld.name, typeof self.debugWorld.abort);
if(typeof self.debugWorld !== "undefined")
self.debugWorld.abort();
self.debugWorld = null;
}
self.postMessage({type: 'debugAbort'});
};
self.runWorld = function runWorld(args) {
self.postedErrors = {};
self.t0 = new Date();
@ -136,11 +411,11 @@ self.onWorldLoaded = function onWorldLoaded() {
};
self.onWorldError = function onWorldError(error) {
if(error instanceof Aether.problems.UserCodeProblem) {
if(!self.postedErrors[error.key]) {
var problem = error.serialize();
self.postMessage({type: 'user-code-problem', problem: problem});
self.postedErrors[error.key] = problem;
if(error.isUserCodeProblem) {
var errorKey = error.userInfo.key;
if(!errorKey || !self.postedErrors[errorKey]) {
self.postMessage({type: 'user-code-problem', problem: error});
self.postedErrors[errorKey] = error;
}
}
else {

241
app/lib/Buddha.coffee Normal file
View file

@ -0,0 +1,241 @@
#Sane rewrite of God (a thread pool)
{now} = require 'lib/world/world_utils'
World = require 'lib/world/world'
###
Every Angel has exactly one WebWorker attached to it.
It will call methods inside the webwrker and kill it if it times out.
###
class Angel
@cyanide: 0xDEADBEEF
infiniteLoopIntervalDuration: 7500 # check this often (must be more than the others added)
infiniteLoopTimeoutDuration: 10000 # wait this long when we check
abortTimeoutDuration: 500 # give in-process or dying workers this long to give up
constructor: (@id, @shared) ->
console.log @id + ": Creating Angel"
if (navigator.userAgent or navigator.vendor or window.opera).search("MSIE") isnt -1
@infiniteLoopIntervalDuration *= 20 # since it's so slow to serialize without transferable objects, we can't trust it
@infiniteLoopTimeoutDuration *= 20
@abortTimeoutDuration *= 10
@initialized = false
@running = false
@hireWorker()
@shared.angels.push @
testWorker: =>
if @initialized
@worker.postMessage {func: 'reportIn'}
# Are there any errors when webworker isn't loaded properly?
onWorkerMessage: (event) =>
#console.log JSON.stringify event
if @aborting and not
event.data.type is 'abort'
console.log id + " is currently aborting old work."
return
switch event.data.type
when 'start-load-frames'
clearTimeout(@condemnTimeout)
@condemnTimeout = _.delay @infinitelyLooped, @infiniteLoopTimeoutDuration
when 'end-load-frames'
console.log @id + ': No condemn this time.'
clearTimeout(@condemnTimeout)
when 'worker-initialized'
unless @initialized
console.log @id + ": Worker initialized after", ((new Date()) - @worker.creationTime), "ms"
@initialized = true
@doWork()
when 'new-world'
@beholdWorld event.data.serialized, event.data.goalStates
when 'world-load-progress-changed'
Backbone.Mediator.publish 'god:world-load-progress-changed', event.data
when 'console-log'
console.log "|" + @id + "|", event.data.args...
when 'user-code-problem'
Backbone.Mediator.publish 'god:user-code-problem', problem: event.data.problem
when 'abort'
console.log @id, "aborted."
clearTimeout @abortTimeout
@aborting = false
@running = false
@shared.busyAngels.pop @
@doWork()
when 'reportIn'
clearTimeout @condemnTimeout
else
console.log @id + " received unsupported message:", event.data
beholdWorld: (serialized, goalStates) ->
return if @aborting
unless serialized
# We're only interested in goalStates. (Simulator)
@latestGoalStates = goalStates
Backbone.Mediator.publish('god:goals-calculated', goalStates: goalStates)
@running = false
@shared.busyAngels.pop @
# console.warn "Goal states: " + JSON.stringify(goalStates)
window.BOX2D_ENABLED = false # Flip this off so that if we have box2d in the namespace, the Collides Components still don't try to create bodies for deserialized Thangs upon attachment
World.deserialize serialized, @shared.worldClassMap, @lastSerializedWorldFrames, @finishBeholdingWorld(goalStates)
window.BOX2D_ENABLED = true
@lastSerializedWorldFrames = serialized.frames
finishBeholdingWorld: (goalStates) => (world) =>
return if @aborting
world.findFirstChangedFrame @shared.world
@shared.world = world
errorCount = (t for t in @shared.world.thangs when t.errorsOut).length
Backbone.Mediator.publish('god:new-world-created', world: world, firstWorld: @shared.firstWorld, errorCount: errorCount, goalStates: goalStates)
for scriptNote in @shared.world.scriptNotes
Backbone.Mediator.publish scriptNote.channel, scriptNote.event
@shared.goalManager?.world = world
@running = false
@shared.busyAngels.pop @
@shared.firstWorld = false
@doWork()
infinitelyLooped: =>
unless @aborting
problem = type: "runtime", level: "error", id: "runtime_InfiniteLoop", message: "Code never finished. It's either really slow or has an infinite loop."
Backbone.Mediator.publish 'god:user-code-problem', problem: problem
Backbone.Mediator.publish 'god:infinite-loop', firstWorld: @shared.firstWorld
@fireWorker()
workIfIdle: ->
@doWork() unless @running
doWork: =>
#console.log "work."
return if @aborted
console.log @id + " ready and looking for work. WorkQueue length is " + @shared.workQueue.length
if @initialized and @shared.workQueue.length
work = @shared.workQueue.pop()
if work is Angel.cyanide # Kill all other Angels, too
console.log @id + ": 'work is poison'"
@shared.workQueue.push Angel.cyanide
@free()
else
console.log @id + ": Sending the worker to work."
@running = true
@shared.busyAngels.push @
console.log "Running world..."
#console.error "worker.postMessage: " + @worker.postMessage + ", work: " + work
@worker.postMessage func: 'runWorld', args: work
console.log @id + ": Setting interval."
clearTimeout @purgatoryTimer
@purgatoryTimer = setInterval @testWorker, @infiniteLoopIntervalDuration
else
console.log "No work for " + @id
@hireWorker()
abort: =>
if @worker and @running
console.log "Aborting " + @id
@running = false
@shared.busyAngels.pop @
@abortTimeout = _.delay @terminate, @fireWorker, @abortTimeoutDuration
@worker.postMessage func: 'abort'
@aborting = true
@work = null
fireWorker: (rehire=true) =>
@aborting = false
@running = false
@shared.busyAngels.pop @
@worker?.removeEventListener 'message', @onWorkerMessage
@worker?.terminate()
@worker = null
clearTimeout @condemnTimeout
clearInterval @purgatoryTimer
console.log "Fired worker."
@initialized = false
@work = null
@hireWorker() if rehire
hireWorker: ->
unless @worker
console.log @id + ": Hiring worker."
@worker = new Worker @shared.workerCode
@worker.addEventListener 'message', @onWorkerMessage
@worker.creationTime = new Date()
#@worker.postMessage func: 'initialized' else
kill: ->
@fireWorker false
@shared.angels.pop @
clearTimeout @condemnTimeout
clearTimeout @purgatoryTimer
@purgatoryTimer = null
@condemnTimeout = null
module.exports = class God
ids: ['Athena', 'Baldr', 'Crom', 'Dagr', 'Eris', 'Freyja', 'Great Gish', 'Hades', 'Ishtar', 'Janus', 'Khronos', 'Loki', 'Marduk', 'Negafook', 'Odin', 'Poseidon', 'Quetzalcoatl', 'Ra', 'Shiva', 'Thor', 'Umvelinqangi', 'Týr', 'Vishnu', 'Wepwawet', 'Xipe Totec', 'Yahweh', 'Zeus', '上帝', 'Tiamat', '盘古', 'Phoebe', 'Artemis', 'Osiris', "嫦娥", 'Anhur', 'Teshub', 'Enlil', 'Perkele', 'Chaos', 'Hera', 'Iris', 'Theia', 'Uranus', 'Stribog', 'Sabazios', 'Izanagi', 'Ao', 'Tāwhirimātea', 'Tengri', 'Inmar', 'Torngarsuk', 'Centzonhuitznahua', 'Hunab Ku', 'Apollo', 'Helios', 'Thoth', 'Hyperion', 'Alectrona', 'Eos', 'Mitra', 'Saranyu', 'Freyr', 'Koyash', 'Atropos', 'Clotho', 'Lachesis', 'Tyche', 'Skuld', 'Urðr', 'Verðandi', 'Camaxtli', 'Huhetotl', 'Set', 'Anu', 'Allah', 'Anshar', 'Hermes', 'Lugh', 'Brigit', 'Manannan Mac Lir', 'Persephone', 'Mercury', 'Venus', 'Mars', 'Azrael', 'He-Man', 'Anansi', 'Issek', 'Mog', 'Kos', 'Amaterasu Omikami', 'Raijin', 'Susanowo', 'Blind Io', 'The Lady', 'Offler', 'Ptah', 'Anubis', 'Ereshkigal', 'Nergal', 'Thanatos', 'Macaria', 'Angelos', 'Erebus', 'Hecate', 'Hel', 'Orcus', 'Ishtar-Deela Nakh', 'Prometheus', 'Hephaestos', 'Sekhmet', 'Ares', 'Enyo', 'Otrera', 'Pele', 'Hadúr', 'Hachiman', 'Dayisun Tngri', 'Ullr', 'Lua', 'Minerva']
nextID: ->
@lastID = (if @lastID? then @lastID + 1 else Math.floor(@ids.length * Math.random())) % @ids.length
@ids[@lastID]
# Charlie's Angels are all given access to this.
angelsShare: {
workerCode: '/javascripts/workers/worker_world.js' # Either path or function
workQueue: []
firstWorld: true
world: undefined
goalManager: undefined
worldClassMap: undefined
angels: []
busyAngels: [] # Busy angels will automatically register here.
}
constructor: (options) ->
options ?= {}
@angelsShare.workerCode = options.workerCode if options.workerCode
# ~20MB per idle worker + angel overhead - in this implementation, every Angel maps to 1 worker
angelCount = options.maxAngels ? options.maxWorkerPoolSize ? 2 # How many concurrent Angels/web workers to use at a time
_.delay (=>new Angel @nextID(), @angelsShare), 250 * i for i in [0...angelCount] # Don't generate all Angels at once.
Backbone.Mediator.subscribe 'tome:cast-spells', @onTomeCast, @
onTomeCast: (e) ->
@createWorld e.spells
setGoalManager: (goalManager) =>
@angelsShare.goalManager = goalManager
setWorldClassMap: (worldClassMap) =>
@angelsShare.worldClassMap = worldClassMap
getUserCodeMap: (spells) ->
userCodeMap = {}
for spellKey, spell of spells
for thangID, spellThang of spell.thangs
(userCodeMap[thangID] ?= {})[spell.name] = spellThang.aether.serialize()
#console.log userCodeMap
userCodeMap
createWorld: (spells) =>
angel.abort() for angel in @angelsShare.busyAngels # We really only ever want one world calculated per God
#console.log "Level: " + @level
@angelsShare.workQueue.push
worldName: @level.name
userCodeMap: @getUserCodeMap(spells)
level: @level
goals: @angelsShare.goalManager?.getGoals()
angel.workIfIdle() for angel in @angelsShare.angels
destroy: =>
console.log "Destroying Buddha"
@createWorld = -> console.log "CreateWorld already gone."
@angelsShare.workQueue.push Angel.cyanide
angel.kill for angel in @angelsShare.busyAngels
Backbone.Mediator.unsubscribe('tome:cast-spells', @onTomeCast, @)
@angelsShare.goalManager?.destroy()
@angelsShare.goalManager = null
@angelsShare = null

View file

@ -18,16 +18,23 @@ module.exports = class God
options ?= {}
@maxAngels = options.maxAngels ? 2 # How many concurrent web workers to use; if set past 8, make up more names
@maxWorkerPoolSize = options.maxWorkerPoolSize ? 1 # ~20MB per idle worker
@workerCode = options.workerCode if options.workerCode?
@angels = []
@firstWorld = true
Backbone.Mediator.subscribe 'tome:cast-spells', @onTomeCast, @
@retriveValueFromFrame = _.throttle @retrieveValueFromFrame, 1000
Backbone.Mediator.subscribe 'tome:spell-debug-value-request', @retrieveValueFromFrame, @
@fillWorkerPool = _.throttle @fillWorkerPool, 3000
@fillWorkerPool()
#TODO: have this as a constructor option
@debugWorker = @createDebugWorker()
@currentUserCodeMap = {}
workerCode: '/javascripts/workers/worker_world.js' #Can be a string or a function.
onTomeCast: (e) ->
return if @dead
@spells = e.spells
@createWorld()
@createWorld e.spells
fillWorkerPool: =>
return unless Worker and not @dead
@ -44,17 +51,40 @@ module.exports = class God
@createWorker()
createWorker: ->
worker = new Worker '/javascripts/workers/worker_world.js'
worker = new Worker @workerCode
worker.creationTime = new Date()
worker.addEventListener 'message', @onWorkerMessage
worker.addEventListener 'message', @onWorkerMessage(worker)
worker
onWorkerMessage: (event) =>
createDebugWorker: ->
worker = new Worker '/javascripts/workers/worker_world.js'
worker.creationTime = new Date()
worker.addEventListener 'message', @onDebugWorkerMessage
worker
onWorkerMessage: (worker) =>
unless worker.onMessage?
worker.onMessage = (event) =>
if event.data.type is 'worker-initialized'
console.log @id, "worker initialized after", ((new Date()) - worker.creationTime), "ms (before it was needed)"
worker.initialized = true
worker.removeEventListener 'message', worker.onMessage
else
console.warn "Received strange word from God: #{event.data.type}"
worker.onMessage
onDebugWorkerMessage: (event) =>
worker = event.target
if event.data.type is 'worker-initialized'
#console.log @id, "worker initialized after", ((new Date()) - worker.creationTime), "ms (before it was needed)"
worker.initialized = true
worker.removeEventListener 'message', @onWorkerMessage
switch event.data.type
when "worker-initialized"
worker.initialized = true
when 'new-debug-world'
console.log "New Debug world!"
when 'console-log'
console.log "|" + @id + "'s debugger |", event.data.args...
when 'debug-value-return'
Backbone.Mediator.publish 'god:debug-value-return', event.data.serialized
getAngel: ->
freeAngel = null
@ -83,10 +113,10 @@ module.exports = class God
angelUserCodeProblem: (angel, problem) ->
return if @dead
#console.log "UserCodeProblem:", '"' + problem.message + '"', "for", problem.userInfo.thangID, "-", problem.userInfo.methodName, 'at line', problem.ranges?[0][0][0], 'column', problem.ranges?[0][0][1]
#console.log "UserCodeProblem:", '"' + problem.message + '"', "for", problem.userInfo.thangID, "-", problem.userInfo.methodName, 'at', problem.range?[0]
Backbone.Mediator.publish 'god:user-code-problem', problem: problem
createWorld: ->
createWorld: (@spells) ->
console.log @id + ': "Let there be light upon', @level.name + '!"'
unless Worker? # profiling world simulation is easier on main thread, or we are IE9
setTimeout @simulateWorld, 1
@ -100,26 +130,59 @@ module.exports = class God
return
angel.worker.postMessage {func: 'runWorld', args: {
worldName: @level.name
userCodeMap: @getUserCodeMap()
userCodeMap: @getUserCodeMap(spells)
level: @level
firstWorld: @firstWorld
goals: @goalManager?.getGoals()
}}
retrieveValueFromFrame: (args) ->
if not args.thangID or not args.spellID or not args.variableChain then return
args.frame ?= @world.age / @world.dt
@debugWorker.postMessage
func: 'retrieveValueFromFrame'
args:
worldName: @level.name
userCodeMap: @currentUserCodeMap
level: @level
goals: @goalManager?.getGoals()
frame: args.frame
currentThangID: args.thangID
currentSpellID: args.spellID
variableChain: args.variableChain
#Coffeescript needs getters and setters.
setGoalManager: (@goalManager) =>
setWorldClassMap: (@worldClassMap) =>
beholdWorld: (angel, serialized, goalStates) ->
unless serialized
# We're only interested in goalStates.
@latestGoalStates = goalStates
Backbone.Mediator.publish('god:goals-calculated', goalStates: goalStates, team: me.team)
unless _.find @angels, 'busy'
@spells = null # Don't hold onto old spells; memory leaks
return
console.log "Beholding world."
worldCreation = angel.started
angel.free()
return if @latestWorldCreation? and worldCreation < @latestWorldCreation
@latestWorldCreation = worldCreation
@latestGoalStates = goalStates
console.warn "Goal states: " + JSON.stringify(goalStates)
window.BOX2D_ENABLED = false # Flip this off so that if we have box2d in the namespace, the Collides Components still don't try to create bodies for deserialized Thangs upon attachment
World.deserialize serialized, @worldClassMap, @lastSerializedWorldFrames, worldCreation, @finishBeholdingWorld
World.deserialize serialized, @worldClassMap, @lastSerializedWorldFrames, @finishBeholdingWorld
window.BOX2D_ENABLED = true
@lastSerializedWorldFrames = serialized.frames
finishBeholdingWorld: (newWorld) =>
newWorld.findFirstChangedFrame @world
@world = newWorld
@currentUserCodeMap = @filterUserCodeMapWhenFromWorld @world.userCodeMap
errorCount = (t for t in @world.thangs when t.errorsOut).length
Backbone.Mediator.publish('god:new-world-created', world: @world, firstWorld: @firstWorld, errorCount: errorCount, goalStates: @latestGoalStates, team: me.team)
for scriptNote in @world.scriptNotes
@ -130,6 +193,23 @@ module.exports = class God
unless _.find @angels, 'busy'
@spells = null # Don't hold onto old spells; memory leaks
filterUserCodeMapWhenFromWorld: (worldUserCodeMap) ->
newUserCodeMap = {}
for thangName, thang of worldUserCodeMap
newUserCodeMap[thangName] = {}
for spellName,aether of thang
shallowFilteredObject = _.pick aether, ['raw','pure','originalOptions']
newUserCodeMap[thangName][spellName] = _.cloneDeep shallowFilteredObject
newUserCodeMap[thangName][spellName] = _.defaults newUserCodeMap[thangName][spellName],
flow: {}
metrics: {}
problems:
errors: []
infos: []
warnings: []
style: {}
newUserCodeMap
getUserCodeMap: ->
userCodeMap = {}
for spellKey, spell of @spells
@ -143,6 +223,10 @@ module.exports = class God
@dead = true
Backbone.Mediator.unsubscribe('tome:cast-spells', @onTomeCast, @)
@goalManager?.destroy()
@debugWorker?.terminate()
@debugWorker?.removeEventListener 'message', @onDebugWorkerMessage
@debugWorker ?= null
@currentUserCodeMap = null
@goalManager = null
@fillWorkerPool = null
@simulateWorld = null
@ -170,7 +254,7 @@ module.exports = class God
@latestGoalStates = @testGM?.getGoalStates()
serialized = @testWorld.serialize().serializedWorld
window.BOX2D_ENABLED = false
World.deserialize serialized, @worldClassMap, @lastSerializedWorldFrames, @t0, @finishBeholdingWorld
World.deserialize serialized, @worldClassMap, @lastSerializedWorldFrames, @finishBeholdingWorld
window.BOX2D_ENABLED = true
@lastSerializedWorldFrames = serialized.frames
@ -254,7 +338,7 @@ class Angel
testWorker: =>
unless @worker.initialized
console.warn "Worker", @id, "hadn't even loaded the scripts yet after", @infiniteLoopIntervalDuration, "ms."
console.warn "Worker", @id, " hadn't even loaded the scripts yet after", @infiniteLoopIntervalDuration, "ms."
return
@worker.postMessage {func: 'reportIn'}
@condemnTimeout = _.delay @condemnWorker, @infiniteLoopTimeoutDuration
@ -270,6 +354,7 @@ class Angel
switch event.data.type
when 'worker-initialized'
console.log "Worker", @id, "initialized after", ((new Date()) - @worker.creationTime), "ms (we had been waiting for it)"
@worker.initialized = true
when 'new-world'
@god.beholdWorld @, event.data.serialized, event.data.goalStates
when 'world-load-progress-changed'

View file

@ -61,13 +61,13 @@ module.exports = class LevelLoader extends CocoClass
url = "/db/level/#{@levelID}/session"
url += "?team=#{@team}" if @team
@session = new LevelSession().setURL url
@supermodel.loadModel(@session, 'level_session', {cache:false})
session = new LevelSession().setURL url
@session = @supermodel.loadModel(session, 'level_session', {cache:false}).model
@session.once 'sync', -> @url = -> '/db/level.session/' + @id
if @opponentSessionID
@opponentSession = new LevelSession().setURL "/db/level_session/#{@opponentSessionID}"
@supermodel.loadModel(@opponentSession, 'opponent_session')
opponentSession = new LevelSession().setURL "/db/level_session/#{@opponentSessionID}"
@opponentSession = @supermodel.loadModel(opponentSession, 'opponent_session').model
# Supermodel (Level) Loading
@ -168,6 +168,7 @@ module.exports = class LevelLoader extends CocoClass
# Building sprite sheets
buildSpriteSheetsForThangType: (thangType) ->
return if @headless
# TODO: Finish making sure the supermodel loads the raster image before triggering load complete, and that the cocosprite has access to the asset.
# if f = thangType.get('raster')
# queue = new createjs.LoadQueue()

View file

@ -1,4 +1,4 @@
{backboneFailure, genericFailure} = require 'lib/errors'
{backboneFailure, genericFailure, parseServerError} = require 'lib/errors'
User = require 'models/User'
storage = require 'lib/storage'
BEEN_HERE_BEFORE_KEY = 'beenHereBefore'
@ -16,15 +16,22 @@ init = ->
module.exports.createUser = (userObject, failure=backboneFailure, nextURL=null) ->
user = new User(userObject)
user.save({}, {
error: failure,
error: (model,jqxhr,options) ->
error = parseServerError(jqxhr.responseText)
property = error.property if error.property
if jqxhr.status is 409 and property is 'name'
anonUserObject = _.omit(userObject, 'name')
module.exports.createUser anonUserObject, failure, nextURL
else
genericFailure(jqxhr)
success: -> if nextURL then window.location.href = nextURL else window.location.reload()
})
module.exports.createUserWithoutReload = (userObject, failure=backboneFailure) ->
user = new User(userObject)
user.save({}, {
error: failure
success: ->
success: ->
Backbone.Mediator.publish("created-user-without-reload")
})

View file

@ -103,10 +103,8 @@ module.exports.getConflicts = (headDeltas, pendingDeltas) ->
pendingPathMap = groupDeltasByAffectingPaths(pendingDeltas)
paths = _.keys(headPathMap).concat(_.keys(pendingPathMap))
# Here's my thinking:
# A) Conflicts happen when one delta path is a substring of another delta path
# B) A delta from one self-consistent group cannot conflict with another
# So, sort the paths, which will naturally make conflicts adjacent,
# Here's my thinking: conflicts happen when one delta path is a substring of another delta path
# So, sort paths from both deltas together, which will naturally make conflicts adjacent,
# and if one is identified, one path is from the headDeltas, the other is from pendingDeltas
# This is all to avoid an O(nm) brute force search.
@ -141,7 +139,27 @@ groupDeltasByAffectingPaths = (deltas) ->
delta: delta
path: (item.toString() for item in path).join('/')
}
_.groupBy metaDeltas, 'path'
map = _.groupBy metaDeltas, 'path'
# Turns out there are cases where a single delta can include paths
# that 'conflict' with each other, ie one is a substring of the other
# because of moved indices. To handle this case, go through and prune
# out all deeper paths that conflict with more shallow paths, so
# getConflicts path checking works properly.
paths = _.keys(map)
return map unless paths.length
paths.sort()
prunedMap = {}
previousPath = paths[0]
for path, i in paths
continue if i is 0
continue if path.startsWith previousPath
prunedMap[path] = map[path]
previousPath = path
prunedMap
module.exports.pruneConflictsFromDelta = (delta, conflicts) ->
# the jsondiffpatch delta mustn't include any dangling nodes,

View file

@ -2,15 +2,21 @@ SuperModel = require 'models/SuperModel'
CocoClass = require 'lib/CocoClass'
LevelLoader = require 'lib/LevelLoader'
GoalManager = require 'lib/world/GoalManager'
God = require 'lib/God'
God = require 'lib/Buddha'
Aether.addGlobal 'Vector', require 'lib/world/vector'
Aether.addGlobal '_', _
module.exports = class Simulator extends CocoClass
constructor: ->
constructor: (@options) ->
@options ?= {}
_.extend @, Backbone.Events
@trigger 'statusUpdate', 'Starting simulation!'
@retryDelayInSeconds = 10
@taskURL = '/queue/scoring'
@simulatedByYou = 0
@god = new God maxWorkerPoolSize: 1, maxAngels: 1, workerCode: @options.workerCode # Start loading worker.
destroy: ->
@off()
@ -19,6 +25,17 @@ module.exports = class Simulator extends CocoClass
fetchAndSimulateTask: =>
return if @destroyed
if @options.headlessClient
if @dumpThisTime # The first heapdump would be useless to find leaks.
console.log "Writing snapshot."
@options.heapdump.writeSnapshot()
@dumpThisTime = true if @options.heapdump
if @options.testing
_.delay @setupSimulationAndLoadLevel, 0, @options.testFile, "Testing...", status: 400
return
@trigger 'statusUpdate', 'Fetching simulation data!'
$.ajax
url: @taskURL
@ -32,7 +49,9 @@ module.exports = class Simulator extends CocoClass
@simulateAnotherTaskAfterDelay()
handleNoGamesResponse: ->
@trigger 'statusUpdate', 'There were no games to simulate--all simulations are done or in process. Retrying in 10 seconds.'
info = 'There were no games to simulate--all simulations are done or in process. Retrying in 10 seconds.'
console.log info
@trigger 'statusUpdate', info
@simulateAnotherTaskAfterDelay()
simulateAnotherTaskAfterDelay: =>
@ -53,7 +72,6 @@ module.exports = class Simulator extends CocoClass
return
@supermodel ?= new SuperModel()
@god = new God maxWorkerPoolSize: 1, maxAngels: 1 # Start loading worker.
@levelLoader = new LevelLoader supermodel: @supermodel, levelID: levelID, sessionID: @task.getFirstSessionID(), headless: true
if @supermodel.finished()
@ -63,7 +81,9 @@ module.exports = class Simulator extends CocoClass
simulateGame: ->
return if @destroyed
@trigger 'statusUpdate', 'All resources loaded, simulating!', @task.getSessions()
info = 'All resources loaded, simulating!'
console.log info
@trigger 'statusUpdate', info, @task.getSessions()
@assignWorldAndLevelFromLevelLoaderAndDestroyIt()
@setupGod()
@ -74,6 +94,7 @@ module.exports = class Simulator extends CocoClass
@simulateAnotherTaskAfterDelay()
assignWorldAndLevelFromLevelLoaderAndDestroyIt: ->
console.log "Assigning world and level"
@world = @levelLoader.world
@level = @levelLoader.level
@levelLoader.destroy()
@ -81,18 +102,45 @@ module.exports = class Simulator extends CocoClass
setupGod: ->
@god.level = @level.serialize @supermodel
@god.worldClassMap = @world.classMap
@god.setWorldClassMap @world.classMap
@setupGoalManager()
@setupGodSpells()
setupGoalManager: ->
@god.goalManager = new GoalManager @world, @level.get 'goals'
@god.setGoalManager new GoalManager(@world, @level.get 'goals')
commenceSimulationAndSetupCallback: ->
@god.createWorld()
@god.createWorld @generateSpellsObject()
Backbone.Mediator.subscribeOnce 'god:infinite-loop', @onInfiniteLoop, @
Backbone.Mediator.subscribeOnce 'god:new-world-created', @processResults, @
#Search for leaks, headless-client only.
if @options.headlessClient and @options.leakTest and not @memwatch?
leakcount = 0
maxleakcount = 0
console.log "Setting leak callbacks."
@memwatch = require 'memwatch'
@memwatch.on 'leak', (info) =>
console.warn "LEAK!!\n" + JSON.stringify(info)
unless @hd?
if (leakcount++ is maxleakcount)
@hd = new @memwatch.HeapDiff()
@memwatch.on 'stats', (stats) =>
console.warn "stats callback: " + stats
diff = @hd.end()
console.warn "HeapDiff:\n" + JSON.stringify(diff)
if @options.exitOnLeak
console.warn "Exiting because of Leak."
process.exit()
@hd = new @memwatch.HeapDiff()
onInfiniteLoop: ->
console.warn "Skipping infinitely looping game."
@trigger 'statusUpdate', "Infinite loop detected; grabbing a new game in #{@retryDelayInSeconds} seconds."
@ -106,6 +154,9 @@ module.exports = class Simulator extends CocoClass
@trigger 'statusUpdate', 'Simulation completed, sending results back to server!'
console.log "Sending result back to server!"
if @options.headlessClient and @options.testing
return @fetchAndSimulateTask()
$.ajax
url: "/queue/scoring"
data: results
@ -117,8 +168,11 @@ module.exports = class Simulator extends CocoClass
handleTaskResultsTransferSuccess: (result) =>
console.log "Task registration result: #{JSON.stringify result}"
@trigger 'statusUpdate', 'Results were successfully sent back to server!'
simulatedBy = parseInt($('#simulated-by-you').text(), 10) + 1
$('#simulated-by-you').text(simulatedBy)
console.log "Simulated by you: " + @simulatedByYou
@simulatedByYou++
unless @options.headlessClient
simulatedBy = parseInt($('#simulated-by-you').text(), 10) + 1
$('#simulated-by-you').text(simulatedBy)
handleTaskResultsTransferError: (error) =>
@trigger 'statusUpdate', 'There was an error sending the results back to the server.'
@ -144,7 +198,6 @@ module.exports = class Simulator extends CocoClass
sessions: []
for session in @task.getSessions()
sessionResult =
sessionID: session.sessionID
submitDate: session.submitDate
@ -242,8 +295,8 @@ module.exports = class Simulator extends CocoClass
functionName: methodName
protectAPI: useProtectAPI
includeFlow: false
requiresThis: true
yieldConditionally: false
globals: ['Vector', '_']
problems:
jshint_W040: {level: "ignore"}
jshint_W030: {level: "ignore"} # aether_NoEffect instead

View file

@ -379,7 +379,9 @@ module.exports = class SpriteParser
argsSource = argsSource.replace(/cjs(.+)\)/, '"createjs$1)"') # turns cjs.Ease.get(0.5)
args = eval "[#{argsSource}]"
if args[0]?.state?[0]?.t?.search?("shape") is 0 and not _.find(localShapes, bn: args[0].state[0].t)
shadowTween = args[0]?.search?('shape') is 0 and not _.find(localShapes, bn: args[0])
shadowTween = shadowTween or args[0]?.state?[0]?.t?.search?("shape") is 0 and not _.find(localShapes, bn: args[0].state[0].t)
if shadowTween
console.log "Skipping tween", name, argsSource, args, "from localShapes", localShapes, "presumably because it's a shadow we skipped."
return
callExpressions.push {n: name, a: args}

View file

@ -189,10 +189,12 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
stop: ->
@imageObject?.stop?()
mark.stop() for name, mark of @marks
@stopped = true
play: ->
@imageObject?.play?()
mark.play() for name, mark of @marks
@stopped = false
update: (frameChanged) ->
# Gets the sprite to reflect what the current state of the thangs and surface are
@ -243,7 +245,8 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
getBobOffset: ->
return 0 unless @thang.bobHeight
@thang.bobHeight * (1 + Math.sin(@age * Math.PI / @thang.bobTime))
return @lastBobOffset if @stopped
return @lastBobOffset = @thang.bobHeight * (1 + Math.sin(@age * Math.PI / @thang.bobTime))
getWorldPosition: ->
p1 = if @possessed then @shadow.pos else @thang.pos
@ -525,6 +528,7 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
updateEffectMarks: ->
return if _.isEqual @thang.effectNames, @previousEffectNames
return if @stopped
for effect in @thang.effectNames
mark = @addMark effect, @options.floatingLayer, effect
mark.statusEffect = true

View file

@ -149,7 +149,7 @@ module.exports = class SpriteBoss extends CocoClass
return false unless m.get('actions') or m.get('raster')
return m.get('name') is thang.spriteName
thangType ?= _.find @options.thangTypes, (m) -> return m.get('name') is thang.spriteName
options = @createSpriteOptions thang: thang
options.resolutionFactor = if thangType.get('kind') is 'Floor' then 2 else 4
sprite = new CocoSprite thangType, options
@ -225,12 +225,12 @@ module.exports = class SpriteBoss extends CocoClass
onCastSpells: -> @stop()
play: ->
sprite.imageObject.play?() for sprite in @spriteArray
sprite.play() for sprite in @spriteArray
@selectionMark?.play()
@targetMark?.play()
stop: ->
sprite.imageObject.stop?() for sprite in @spriteArray
sprite.stop() for sprite in @spriteArray
@selectionMark?.stop()
@targetMark?.stop()

View file

@ -204,7 +204,7 @@ module.exports = class GoalManager extends CocoClass
arrays = (prop for prop in whos when prop?.length)
return unless arrays.length
state[progressObjectName] = {}
state[progressObjectName] ?= {}
for array in arrays
for thang in array
if @thangTeams[thang]?
@ -235,14 +235,14 @@ module.exports = class GoalManager extends CocoClass
numNeeded = goal.howMany ? Math.max(1, _.size stateThangs)
else
# saveThangs: by default we would want to save all the Thangs, which means that we would want none of them to be "done"
numNeeded = _.size(stateThangs) - Math.min((goal.howMany ? 1), _.size stateThangs) + 1
numNeeded = _.size(stateThangs) - Math.max((goal.howMany ? 1), _.size stateThangs) + 1
numDone = _.filter(stateThangs).length
#console.log "needed", numNeeded, "done", numDone, "of total", _.size(stateThangs), "with how many", goal.howMany, "and stateThangs", stateThangs
console.log "needed", numNeeded, "done", numDone, "of total", _.size(stateThangs), "with how many", goal.howMany, "and stateThangs", stateThangs
return unless numDone >= numNeeded
return if state.status and not success # already failed it; don't wipe keyframe
state.status = if success then "success" else "failure"
state.keyFrame = frameNumber
#console.log goalID, "became", success, "on frame", frameNumber, "with overallStatus", @checkOverallStatus true
console.log goalID, "became", success, "on frame", frameNumber, "with overallStatus", @checkOverallStatus true
if overallStatus = @checkOverallStatus true
matchedGoals = (_.find(@goals, {id: goalID}) for goalID, goalState of @goalStates when goalState.status is overallStatus)
mostEagerGoal = _.min matchedGoals, 'worldEndsAfter'

View file

@ -29,8 +29,6 @@ module.exports.thangNames = thangNames =
"Phineas"
"Ferb"
"Felix"
"Arthur"
"Galahad"
"Ezra"
"Lucian"
"Augustus"
@ -174,6 +172,7 @@ module.exports.thangNames = thangNames =
"Snortt"
"Kog"
"Ursa"
"Ragtime"
]
"Ogre Munchkin F": [
"Iyert"
@ -184,6 +183,7 @@ module.exports.thangNames = thangNames =
"Dosha"
"Inski"
"Lacos"
"Upfish"
]
"Ogre M": [
"Krogg"
@ -202,6 +202,7 @@ module.exports.thangNames = thangNames =
"Mokrul"
"Polifemo"
"Muthyala"
"Saltporker"
]
"Ogre F": [
"Nareng"
@ -231,6 +232,8 @@ module.exports.thangNames = thangNames =
"Tuguro"
"York"
"Ork'han"
"Roast Beefy"
"Haggar"
]
"Ogre Fangrider": [
"Dreek"
@ -272,6 +275,7 @@ module.exports.thangNames = thangNames =
"Gogg"
"Ghuk"
"Makas"
"Drun"
]
"Ogre Thrower": [
"Kyrgg"
@ -293,10 +297,12 @@ module.exports.thangNames = thangNames =
"Burl": [
"Borlit"
"Burlosh"
"Dorf"
]
"Griffin Rider": [
"Aeoldan"
"Bestarius"
]
"Potion Master": [
"Snake"
@ -305,6 +311,7 @@ module.exports.thangNames = thangNames =
"Arora"
"Curie"
"Clause"
"Vanders"
]
"Librarian": [
"Hushbaum"
@ -318,4 +325,30 @@ module.exports.thangNames = thangNames =
"Ryder"
"Thoron"
"Mirial"
"Neely"
]
"Knight": [
"Tharin"
"Arthur"
"Galahad"
"Mace"
"Drake"
"Duran"
"Almeric"
"Hunfray"
"Hank"
"Jeph"
"Neville"
]
"Captain": [
"Anya"
"Brigette"
"Sarre"
"Katana"
"Lily"
"Isa"
"Dimia"
"Jane"
"Lia"
"Hardcastle"
]

View file

@ -32,7 +32,7 @@ module.exports.CollisionCategory = class CollisionCategory
# "ground_and_air_<team>" units don't hit ground or air units on their team (so missiles don't hit same team)
sameTeam = @superteamIndex and cat.superteamIndex is @superteamIndex
return false if sameTeam and @ground and @air
# actually, "ground_and_air<team>" units don't hit any ground_and_air units (temp missile collision fix)
return false if @ground and @air and cat.ground and cat.air

View file

@ -8,7 +8,6 @@ WorldScriptNote = require './world_script_note'
{now, consolidateThangs, typedArraySupport} = require './world_utils'
Component = require 'lib/world/component'
System = require 'lib/world/system'
PROGRESS_UPDATE_INTERVAL = 200
DESERIALIZATION_INTERVAL = 20
@ -72,7 +71,7 @@ module.exports = class World
(@runtimeErrors ?= []).push error
(@unhandledRuntimeErrors ?= []).push error
loadFrames: (loadedCallback, errorCallback, loadProgressCallback) ->
loadFrames: (loadedCallback, errorCallback, loadProgressCallback, skipDeferredLoading) ->
return if @aborted
unless @thangs.length
console.log "Warning: loadFrames called on empty World (no thangs)."
@ -96,13 +95,46 @@ module.exports = class World
if t2 - @t0 > 1000
console.log(' Loaded', i, 'of', @totalFrames, "(+" + (t2 - @t0).toFixed(0) + "ms)")
@t0 = t2
setTimeout((=> @loadFrames(loadedCallback, errorCallback, loadProgressCallback)), 0)
continueFn = => @loadFrames(loadedCallback, errorCallback, loadProgressCallback, skipDeferredLoading)
if skipDeferredLoading
continueFn()
else
setTimeout(continueFn, 0)
return
@ended = true
system.finish @thangs for system in @systems
loadProgressCallback? 1
loadedCallback()
loadFramesUntilFrame: (frameToLoadUntil, loadedCallback, errorCallback, loadProgressCallback) ->
return if @aborted
unless @thangs.length
console.log "Warning: loadFrames called on empty World"
t1 = now()
@t0 ?= t1
i = @frames.length
while i <= frameToLoadUntil #state is gathered at next frame
try
@getFrame(i)
++i # increment this after we have succeeded in getting the frame, otherwise we'll have to do that frame again
catch error
# Not an Aether.errors.UserCodeError; maybe we can't recover
@addError error
for error in (@unhandledRuntimeErrors ? [])
return unless errorCallback error # errorCallback tells us whether the error is recoverable
@unhandledRuntimeErrors = []
t2 = now()
if t2 - t1 > PROGRESS_UPDATE_INTERVAL
loadProgressCallback? i / @totalFrames
t1 = t2
if t2 - @t0 > 1000
console.log(' Loaded', i, 'of', frameToLoadUntil, "(+" + (t2 - @t0).toFixed(0) + "ms)")
@t0 = t2
setTimeout((=> @loadFrames(loadedCallback, errorCallback, loadProgressCallback)), 0)
return
loadProgressCallback? 1
loadedCallback()
abort: ->
@aborted = true
@ -221,7 +253,7 @@ module.exports = class World
@scriptNotes.push scriptNote
return unless @goalManager
@goalManager.submitWorldGenerationEvent(channel, event, @frames.length)
setGoalState: (goalID, status) ->
@goalManager.setGoalState(goalID, status)
@ -336,7 +368,7 @@ module.exports = class World
console.log "Whoa, serializing a lot of WorldScriptNotes here:", o.scriptNotes.length
{serializedWorld: o, transferableObjects: [o.storageBuffer]}
@deserialize: (o, classMap, oldSerializedWorldFrames, worldCreationTime, finishedWorldCallback) ->
@deserialize: (o, classMap, oldSerializedWorldFrames, finishedWorldCallback) ->
# Code hotspot; optimize it
#console.log "Deserializing", o, "length", JSON.stringify(o).length
#console.log JSON.stringify(o)

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
# nav:
# play: "Levels"
# community: "Community"
# editor: "Editor"
# blog: "Blog"
# forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
# autosave: "Changes Save Automatically"
# me_tab: "Me"
# picture_tab: "Picture"
# upload_picture: "Upload a picture"
# wizard_tab: "Wizard"
# password_tab: "Password"
# emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
# new_password_verify: "Verify"
# email_subscriptions: "Email Subscriptions"
# email_announcements: "Announcements"
# email_notifications: "Notifications"
# email_notifications_description: "Get periodic notifications for your account."
# email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
# contributor_emails: "Contributor Class Emails"
# contribute_prefix: "We're looking for people to join our party! Check out the "
# contribute_page: "contribute page"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
# multiplayer_hint_label: "Hint:"
# multiplayer_hint: " Click the link to select all, then press ⌘-C or Ctrl-C to copy the link."
# multiplayer_coming_soon: "More multiplayer features to come!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
# guide_title: "Guide"
# tome_minion_spells: "Your Minions' Spells"
# tome_read_only_spells: "Read-Only Spells"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "български език", englishDescri
nav:
play: "Нива"
# community: "Community"
editor: "Редактор"
blog: "Блог"
forum: "Форум"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "български език", englishDescri
# autosave: "Changes Save Automatically"
# me_tab: "Me"
# picture_tab: "Picture"
# upload_picture: "Upload a picture"
# wizard_tab: "Wizard"
# password_tab: "Password"
# emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "български език", englishDescri
# new_password_verify: "Verify"
# email_subscriptions: "Email Subscriptions"
# email_announcements: "Announcements"
# email_notifications: "Notifications"
# email_notifications_description: "Get periodic notifications for your account."
# email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
# contributor_emails: "Contributor Class Emails"
# contribute_prefix: "We're looking for people to join our party! Check out the "
# contribute_page: "contribute page"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "български език", englishDescri
# multiplayer_hint_label: "Hint:"
# multiplayer_hint: " Click the link to select all, then press ⌘-C or Ctrl-C to copy the link."
# multiplayer_coming_soon: "More multiplayer features to come!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
# guide_title: "Guide"
# tome_minion_spells: "Your Minions' Spells"
# tome_read_only_spells: "Read-Only Spells"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "български език", englishDescri
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "български език", englishDescri
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
nav:
play: "Nivells"
# community: "Community"
editor: "Editor"
blog: "Blog"
forum: "Fòrum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
# autosave: "Changes Save Automatically"
# me_tab: "Me"
# picture_tab: "Picture"
# upload_picture: "Upload a picture"
# wizard_tab: "Wizard"
# password_tab: "Password"
# emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
# new_password_verify: "Verify"
# email_subscriptions: "Email Subscriptions"
# email_announcements: "Announcements"
# email_notifications: "Notifications"
# email_notifications_description: "Get periodic notifications for your account."
# email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
# contributor_emails: "Contributor Class Emails"
# contribute_prefix: "We're looking for people to join our party! Check out the "
# contribute_page: "contribute page"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
# multiplayer_hint_label: "Hint:"
# multiplayer_hint: " Click the link to select all, then press ⌘-C or Ctrl-C to copy the link."
# multiplayer_coming_soon: "More multiplayer features to come!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
# guide_title: "Guide"
# tome_minion_spells: "Your Minions' Spells"
# tome_read_only_spells: "Read-Only Spells"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
nav:
play: "Úrovně"
# community: "Community"
editor: "Editor"
blog: "Blog"
forum: "Fórum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
autosave: "Automatické ukládání změn"
me_tab: "O mne"
picture_tab: "Obrázek"
# upload_picture: "Upload a picture"
wizard_tab: "Kouzelník"
password_tab: "Heslo"
emails_tab: "Emaily"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
new_password_verify: "Potvrdit"
email_subscriptions: "Doručovat emailem"
email_announcements: "Oznámení"
# email_notifications: "Notifications"
email_notifications_description: "Zasílat na váš účet opakovaná oznámení."
email_announcements_description: "Zasílat emaily o posledních novinkách a o postupu ve vývoji CodeCombat."
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "Emaily pro přispívatele"
contribute_prefix: "Hledáme další přispívatele! Čtěte prosím "
contribute_page: "stránku přispívatelům"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
multiplayer_hint_label: "Tip:"
multiplayer_hint: " Klikněte na odkaz pro jeho výběr, poté stiskněte ⌘-C nebo Ctrl-C pro kopírování odkazu."
multiplayer_coming_soon: "Další vlastnosti multiplayeru jsou na cestě!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Průvodce"
tome_minion_spells: "Vaše oblíbená kouzla"
tome_read_only_spells: "Kouzla jen pro čtení"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
nav:
play: "Spil"
# community: "Community"
editor: "Editor"
blog: "Blog"
forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
autosave: "Ændringer Gemmes Automatisk"
me_tab: "Mig"
picture_tab: "Billede"
# upload_picture: "Upload a picture"
wizard_tab: "Troldmand"
password_tab: "Password"
emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
new_password_verify: "Bekræft"
email_subscriptions: "Emailtilmeldinger"
email_announcements: "Nyheder"
email_notifications: "Notifikationer"
email_notifications_description: "Få periodevise meldinger om din konto."
email_announcements_description: "Få emails om de seneste nyheder og udvikling på CodeCombat."
email_notifications: "Notifikationer"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "Bidragsklasse-emails"
contribute_prefix: "Vi leder efter folk til at joine vores gruppe! Tjek "
contribute_page: "bidragssiden"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
multiplayer_hint_label: "Tip:"
multiplayer_hint: " Klik på linket for markere alt; tryk derefter ⌘-C eller Ctrl-C tfr at kopiere linket."
multiplayer_coming_soon: "Yderligere flerspillermuligheder er på vej!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Instruktioner"
# tome_minion_spells: "Your Minions' Spells"
# tome_read_only_spells: "Read-Only Spells"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
# nav:
# play: "Levels"
# community: "Community"
# editor: "Editor"
# blog: "Blog"
# forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
# autosave: "Changes Save Automatically"
# me_tab: "Me"
# picture_tab: "Picture"
# upload_picture: "Upload a picture"
# wizard_tab: "Wizard"
# password_tab: "Password"
# emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
# new_password_verify: "Verify"
# email_subscriptions: "Email Subscriptions"
# email_announcements: "Announcements"
# email_notifications: "Notifications"
# email_notifications_description: "Get periodic notifications for your account."
# email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
# contributor_emails: "Contributor Class Emails"
# contribute_prefix: "We're looking for people to join our party! Check out the "
# contribute_page: "contribute page"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
# multiplayer_hint_label: "Hint:"
# multiplayer_hint: " Click the link to select all, then press ⌘-C or Ctrl-C to copy the link."
# multiplayer_coming_soon: "More multiplayer features to come!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
# guide_title: "Guide"
# tome_minion_spells: "Your Minions' Spells"
# tome_read_only_spells: "Read-Only Spells"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge
nav:
# play: "Levels"
# community: "Community"
# editor: "Editor"
# blog: "Blog"
# forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge
# autosave: "Changes Save Automatically"
# me_tab: "Me"
# picture_tab: "Picture"
# upload_picture: "Upload a picture"
# wizard_tab: "Wizard"
# password_tab: "Password"
# emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge
# new_password_verify: "Verify"
# email_subscriptions: "Email Subscriptions"
# email_announcements: "Announcements"
# email_notifications: "Notifications"
# email_notifications_description: "Get periodic notifications for your account."
# email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
# contributor_emails: "Contributor Class Emails"
# contribute_prefix: "We're looking for people to join our party! Check out the "
# contribute_page: "contribute page"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge
# multiplayer_hint_label: "Hint:"
# multiplayer_hint: " Click the link to select all, then press ⌘-C or Ctrl-C to copy the link."
# multiplayer_coming_soon: "More multiplayer features to come!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
# guide_title: "Guide"
# tome_minion_spells: "Your Minions' Spells"
# tome_read_only_spells: "Read-Only Spells"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
nav:
play: "Spielen"
# community: "Community"
editor: "Editor"
blog: "Blog"
forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
autosave: "Sichere Änderungen automatisch"
me_tab: "Ich"
picture_tab: "Bild"
# upload_picture: "Upload a picture"
wizard_tab: "Zauberer"
password_tab: "Passwort"
emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
new_password_verify: "Passwort verifizieren"
email_subscriptions: "Email Abonnements"
email_announcements: "Ankündigungen"
email_notifications: "Benachrichtigungen"
email_notifications_description: "Erhalte regelmäßig Benachrichtigungen zu deinem Account."
email_announcements_description: "Erhalte regelmäßig Ankündigungen zu deinem Account."
email_notifications: "Benachrichtigungen"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "Unterstützer Email"
contribute_prefix: "Wir suchen nach Leuten, die mitmachen! Schau dir die"
contribute_page: "Unterstützer Seite"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
multiplayer_hint_label: "Hinweis:"
multiplayer_hint: " Klick den Link, um alles auszuwählen, dann drück ⌘-C oder Strg-C um den Link zu kopieren."
multiplayer_coming_soon: "Mehr Multiplayerfeatures werden kommen!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Anleitung"
tome_minion_spells: "Die Zaubersprüche Deiner Knechte"
tome_read_only_spells: "Nur-lesen Zauberspüche"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
simple_ai: "Einfache KI"
warmup: "Aufwärmen"
vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra
nav:
play: "Spielen"
# community: "Community"
editor: "Editor"
blog: "Blog"
forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra
autosave: "Sichere Änderungen automatisch"
me_tab: "Ich"
picture_tab: "Bild"
# upload_picture: "Upload a picture"
wizard_tab: "Zauberer"
password_tab: "Passwort"
emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra
new_password_verify: "Passwort verifizieren"
email_subscriptions: "Email Abonnements"
email_announcements: "Ankündigungen"
email_notifications: "Benachrichtigungen"
email_notifications_description: "Erhalte regelmäßig Benachrichtigungen zu deinem Account."
email_announcements_description: "Erhalte regelmäßig Ankündigungen zu deinem Account."
email_notifications: "Benachrichtigungen"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "Unterstützer Email"
contribute_prefix: "Wir suchen nach Leuten, die mitmachen! Schau dir die"
contribute_page: "Unterstützer Seite"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra
multiplayer_hint_label: "Hinweis:"
multiplayer_hint: " Klick den Link, um alles auszuwählen, dann drück ⌘-C oder Strg-C um den Link zu kopieren."
multiplayer_coming_soon: "Mehr Multiplayerfeatures werden kommen!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Anleitung"
tome_minion_spells: "Die Zaubersprüche Deiner Knechte"
tome_read_only_spells: "Nur-lesen Zauberspüche"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra
simple_ai: "Einfache KI"
warmup: "Aufwärmen"
vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre
nav:
# play: "Levels"
# community: "Community"
# editor: "Editor"
blog: "Μπλόγκ"
forum: "Φόρουμ"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre
autosave: "Οι ρυθμίσεις αποθηκεύονται αυτόματα"
me_tab: "Εγώ"
picture_tab: "Φωτογραφία"
# upload_picture: "Upload a picture"
wizard_tab: "Μάγος"
password_tab: "Κωδικός"
emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre
new_password_verify: " Επαλήθευση Κωδικού"
email_subscriptions: "Συνδρομές Email"
email_announcements: "Ανακοινώσεις"
# email_notifications: "Notifications"
# email_notifications_description: "Get periodic notifications for your account."
email_announcements_description: "Λάβετε emails για τα τελευταία νέα και τις εξελίξεις του CodeCombat."
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "Contributor Class Emails"
contribute_prefix: "Αναζητούμε για ανθρώπους που θέλουν να "
contribute_page: "Σελίδα συνεισφοράς"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre
multiplayer_hint_label: "Συμβουλή:"
multiplayer_hint: " Κάντε κλικ στο σύνδεσμο για να επιλέξετε όλα, στη συνέχεια, πατήστε την Apple-C ή Ctrl-C για να αντιγράψετε το σύνδεσμο."
multiplayer_coming_soon: "Περισσότερα multiplayer χαρακτιριστηκα προσεχως!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Οδηγός"
tome_minion_spells: "Ξόρκια για τα τσιράκια σας"
tome_read_only_spells: "Ξορκια μονο για αναγνωση"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
# nav:
# play: "Levels"
# community: "Community"
# editor: "Editor"
# blog: "Blog"
# forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
# autosave: "Changes Save Automatically"
# me_tab: "Me"
# picture_tab: "Picture"
# upload_picture: "Upload a picture"
# wizard_tab: "Wizard"
# password_tab: "Password"
# emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
# new_password_verify: "Verify"
# email_subscriptions: "Email Subscriptions"
# email_announcements: "Announcements"
# email_notifications: "Notifications"
# email_notifications_description: "Get periodic notifications for your account."
# email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
# contributor_emails: "Contributor Class Emails"
# contribute_prefix: "We're looking for people to join our party! Check out the "
# contribute_page: "contribute page"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
# multiplayer_hint_label: "Hint:"
# multiplayer_hint: " Click the link to select all, then press ⌘-C or Ctrl-C to copy the link."
# multiplayer_coming_soon: "More multiplayer features to come!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
# guide_title: "Guide"
# tome_minion_spells: "Your Minions' Spells"
# tome_read_only_spells: "Read-Only Spells"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
# nav:
# play: "Levels"
# community: "Community"
# editor: "Editor"
# blog: "Blog"
# forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
# autosave: "Changes Save Automatically"
# me_tab: "Me"
# picture_tab: "Picture"
# upload_picture: "Upload a picture"
# wizard_tab: "Wizard"
# password_tab: "Password"
# emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
# new_password_verify: "Verify"
# email_subscriptions: "Email Subscriptions"
# email_announcements: "Announcements"
# email_notifications: "Notifications"
# email_notifications_description: "Get periodic notifications for your account."
# email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
# contributor_emails: "Contributor Class Emails"
# contribute_prefix: "We're looking for people to join our party! Check out the "
# contribute_page: "contribute page"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
# multiplayer_hint_label: "Hint:"
# multiplayer_hint: " Click the link to select all, then press ⌘-C or Ctrl-C to copy the link."
# multiplayer_coming_soon: "More multiplayer features to come!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
# guide_title: "Guide"
# tome_minion_spells: "Your Minions' Spells"
# tome_read_only_spells: "Read-Only Spells"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
# nav:
# play: "Levels"
# community: "Community"
# editor: "Editor"
# blog: "Blog"
# forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
# autosave: "Changes Save Automatically"
# me_tab: "Me"
# picture_tab: "Picture"
# upload_picture: "Upload a picture"
# wizard_tab: "Wizard"
# password_tab: "Password"
# emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
# new_password_verify: "Verify"
# email_subscriptions: "Email Subscriptions"
# email_announcements: "Announcements"
# email_notifications: "Notifications"
# email_notifications_description: "Get periodic notifications for your account."
# email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
# contributor_emails: "Contributor Class Emails"
# contribute_prefix: "We're looking for people to join our party! Check out the "
# contribute_page: "contribute page"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
# multiplayer_hint_label: "Hint:"
# multiplayer_hint: " Click the link to select all, then press ⌘-C or Ctrl-C to copy the link."
# multiplayer_coming_soon: "More multiplayer features to come!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
# guide_title: "Guide"
# tome_minion_spells: "Your Minions' Spells"
# tome_read_only_spells: "Read-Only Spells"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@
nav:
play: "Levels"
community: "Community"
editor: "Editor"
blog: "Blog"
forum: "Forum"
@ -151,6 +152,7 @@
autosave: "Changes Save Automatically"
me_tab: "Me"
picture_tab: "Picture"
upload_picture: "Upload a picture"
wizard_tab: "Wizard"
password_tab: "Password"
emails_tab: "Emails"
@ -160,9 +162,13 @@
new_password_verify: "Verify"
email_subscriptions: "Email Subscriptions"
email_announcements: "Announcements"
email_notifications: "Notifications"
email_notifications_description: "Get periodic notifications for your account."
email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
email_notifications: "Notifications"
email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
email_any_notes: "Any Notifications"
email_any_notes_description: "Disable to stop all activity notification emails."
email_recruit_notes: "Job Opportunities"
email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "Contributor Class Emails"
contribute_prefix: "We're looking for people to join our party! Check out the "
contribute_page: "contribute page"
@ -240,6 +246,7 @@
multiplayer_hint_label: "Hint:"
multiplayer_hint: " Click the link to select all, then press ⌘-C or Ctrl-C to copy the link."
multiplayer_coming_soon: "More multiplayer features to come!"
multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Guide"
tome_minion_spells: "Your Minions' Spells"
tome_read_only_spells: "Read-Only Spells"
@ -644,6 +651,13 @@
simple_ai: "Simple AI"
warmup: "Warmup"
vs: "VS"
friends_playing: "Friends Playing"
sign_up_for_friends: "Sign up to play with your friends!"
social_connect_blurb: "Connect and play against your friends!"
invite_friends_to_battle: "Invite your friends to join you in battle!"
fight: "Fight!"
watch_victory: "Watch your victory"
defeat_the: "Defeat the"
multiplayer_launch:
introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -699,3 +713,15 @@
thang_names: "Thang Names"
files: "Files"
top_simulators: "Top Simulators"
source_document: "Source Document"
document: "Document" # note to diplomats: not a physical document, a document in MongoDB, ie a record in a database
delta:
added: "Added"
modified: "Modified"
deleted: "Deleted"
moved_index: "Moved Index"
text_diff: "Text Diff"
merge_conflict_with: "MERGE CONFLICT WITH"
no_changes: "No Changes"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip
nav:
play: "Jugar"
# community: "Community"
editor: "Editor"
blog: "Blog"
forum: "Foro"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip
autosave: "Cambios Guardados Automáticamente"
me_tab: "Yo"
picture_tab: "Imagen"
# upload_picture: "Upload a picture"
wizard_tab: "Hechicero"
password_tab: "Contraseña"
emails_tab: "Correos"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip
new_password_verify: "Verificar"
email_subscriptions: "Suscripciones de Email"
email_announcements: "Noticias"
email_notifications: "Notificaciones"
email_notifications_description: "Obtenga notificaciones periodicos para su cuenta."
email_announcements_description: "Recibe correos electrónicos con las últimas noticias y desarrollos de CodeCombat."
email_notifications: "Notificaciones"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "Emails Clase Contribuyente"
contribute_prefix: "¡Estamos buscando gente que se una a nuestro grupo! Echa un vistazo a la "
contribute_page: "página de contribución"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip
multiplayer_hint_label: "Consejo:"
multiplayer_hint: " Cliquea el enlace para seleccionar todo, luego presiona ⌘-C o Ctrl-C para copiar el enlace."
multiplayer_coming_soon: "¡Más características de multijugador por venir!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Guía"
tome_minion_spells: "Hechizos de tus Secuaces"
tome_read_only_spells: "Hechizos de Sólo Lectura"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip
simple_ai: "IA Simple"
warmup: "Calentamiento"
vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
multiplayer_launch:
introducing_dungeon_arena: "Introduciendo la Arena de Calabozo"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip
user_profile: "Perfil de Usuario"
patches: "Parches"
model: "Modelo"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
nav:
play: "Jugar"
# community: "Community"
editor: "Editor"
blog: "Blog"
forum: "Foro"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
autosave: "Los cambios se guardan automáticamente"
me_tab: "Yo"
picture_tab: "Foto"
# upload_picture: "Upload a picture"
wizard_tab: "Mago"
password_tab: "Contraseña"
emails_tab: "Correos electrónicos"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
new_password_verify: "Verificar"
email_subscriptions: "Suscripciones de correo electrónico"
email_announcements: "Noticias"
email_notifications: "Notificationes"
email_notifications_description: "Recibe notificaciones periódicas en tu cuenta."
email_announcements_description: "Recibe correos electrónicos con las últimas noticias y desarrollos de CodeCombat."
email_notifications: "Notificationes"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "Correos para colaboradores"
contribute_prefix: "¡Buscamos gente que se una a nuestro comunidad! Comprueba la "
contribute_page: "página de colaboraciones"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
multiplayer_hint_label: "Pista:"
multiplayer_hint: " Haz un click en el link para que se seleccione, después utiliza Ctrl-C o ⌘-C para copiar el link."
multiplayer_coming_soon: "¡Más opciones de Multijugador están por venir!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Guía"
tome_minion_spells: "Los hechizos de tus súbditos"
tome_read_only_spells: "Hechizos de solo lectura"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
simple_ai: "IA sencilla"
warmup: "calentamiento"
vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
multiplayer_launch:
introducing_dungeon_arena: "Presentando Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
user_profile: "Perfil de usuario"
patches: "Parches"
model: "Modelo"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t
nav:
play: "Jugar"
# community: "Community"
editor: "Editor"
blog: "Blog"
forum: "Foro"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t
autosave: "Los cambios se guardan Automáticamente"
me_tab: "Yo"
picture_tab: "Imagen"
# upload_picture: "Upload a picture"
wizard_tab: "Hechicero"
password_tab: "Contraseña"
emails_tab: "Correos"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t
new_password_verify: "Verificar"
email_subscriptions: "Suscripciones de Email"
email_announcements: "Noticias"
email_notifications: "Notificación"
email_notifications_description: "Obtén notificaciones periódicas de tu cuenta."
email_announcements_description: "Recibe correos electrónicos con las últimas noticias y desarrollos de CodeCombat."
email_notifications: "Notificación"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "Correos Para Colaboradores"
contribute_prefix: "¡Buscamos gente que se una a nuestro comunidad! Comprueba la "
contribute_page: "página de colaboraciones"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t
multiplayer_hint_label: "Consejo:"
multiplayer_hint: " Cliquea el enlace para seleccionar todo, luego presiona ⌘-C o Ctrl-C para copiar el enlace."
multiplayer_coming_soon: "¡Más características de multijugador por venir!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Guía"
tome_minion_spells: "Hechizos de tus Secuaces"
tome_read_only_spells: "Hechizos de Sólo Lectura"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t
# simple_ai: "Simple AI"
warmup: "Calentamiento"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
nav:
play: "سطوح"
# community: "Community"
editor: "ویرایشگر"
blog: "بلاگ"
forum: "انجمن"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
autosave: "تغییرات به طور خودکار ثبت شد"
me_tab: "من"
picture_tab: "تصاویر"
# upload_picture: "Upload a picture"
wizard_tab: "جادو"
password_tab: "کلمه عبور"
emails_tab: "ایمیل ها"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
# new_password_verify: "Verify"
# email_subscriptions: "Email Subscriptions"
# email_announcements: "Announcements"
# email_notifications: "Notifications"
# email_notifications_description: "Get periodic notifications for your account."
# email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
# contributor_emails: "Contributor Class Emails"
# contribute_prefix: "We're looking for people to join our party! Check out the "
# contribute_page: "contribute page"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
# multiplayer_hint_label: "Hint:"
# multiplayer_hint: " Click the link to select all, then press ⌘-C or Ctrl-C to copy the link."
# multiplayer_coming_soon: "More multiplayer features to come!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
# guide_title: "Guide"
# tome_minion_spells: "Your Minions' Spells"
# tome_read_only_spells: "Read-Only Spells"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
# nav:
# play: "Levels"
# community: "Community"
# editor: "Editor"
# blog: "Blog"
# forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
# autosave: "Changes Save Automatically"
# me_tab: "Me"
# picture_tab: "Picture"
# upload_picture: "Upload a picture"
# wizard_tab: "Wizard"
# password_tab: "Password"
# emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
# new_password_verify: "Verify"
# email_subscriptions: "Email Subscriptions"
# email_announcements: "Announcements"
# email_notifications: "Notifications"
# email_notifications_description: "Get periodic notifications for your account."
# email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
# contributor_emails: "Contributor Class Emails"
# contribute_prefix: "We're looking for people to join our party! Check out the "
# contribute_page: "contribute page"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
# multiplayer_hint_label: "Hint:"
# multiplayer_hint: " Click the link to select all, then press ⌘-C or Ctrl-C to copy the link."
# multiplayer_coming_soon: "More multiplayer features to come!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
# guide_title: "Guide"
# tome_minion_spells: "Your Minions' Spells"
# tome_read_only_spells: "Read-Only Spells"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
nav:
play: "Jouer"
# community: "Community"
editor: "Éditeur"
blog: "Blog"
forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
autosave: "Enregistrer automatiquement les modifications"
me_tab: "Moi"
picture_tab: "Photos"
# upload_picture: "Upload a picture"
wizard_tab: "Magicien"
password_tab: "Mot de passe"
emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
new_password_verify: "Vérifier"
email_subscriptions: "Abonnements"
email_announcements: "Annonces"
email_notifications: "Notifications"
email_notifications_description: "Recevoir des notifications périodiques sur votre compte."
email_announcements_description: "Recevoir des mails sur les dernières actualités et sur le développement de CodeCombat."
email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "Emails des contributeurs"
contribute_prefix: "Nous recherchons des personnes pour se joindre à notre groupe! Consultez la "
contribute_page: "page de contributions"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
multiplayer_hint_label: "Astuce:"
multiplayer_hint: " Cliquez sur le lien pour tout sélectionner, puis appuyer sur Pomme-C ou Ctrl-C pour copier le lien."
multiplayer_coming_soon: "Plus de fonctionnalités multijoueurs sont à venir"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Guide"
tome_minion_spells: "Les sorts de vos soldats"
tome_read_only_spells: "Sorts en lecture-seule"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
simple_ai: "IA simple"
warmup: "Préchauffe"
vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
nav:
play: "שלבים"
# community: "Community"
editor: "עורך"
blog: "בלוג"
forum: "פורום"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
autosave: "שינויים נשמרו אוטומטית"
me_tab: "אני"
picture_tab: "תמונה"
# upload_picture: "Upload a picture"
wizard_tab: "קוסם"
password_tab: "סיסמה"
emails_tab: "אימיילים"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
new_password_verify: "חזור על הסיסמה שנית"
email_subscriptions: "הרשמויות אימייל"
email_announcements: "הודעות"
email_notifications: "עדכונים"
email_notifications_description: "קבל עדכונים לחשבון שלך."
email_announcements_description: "קבל את החדשות ואת הפיתוחים הכי חדישים במשחק באימייל."
email_notifications: "עדכונים"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "אימיילים של כיתות תורמים"
contribute_prefix: "אנו מחפשים אנשים שיצתרפו למסיבה! תראו את"
contribute_page: "דף התרימות"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
# multiplayer_hint_label: "Hint:"
# multiplayer_hint: " Click the link to select all, then press ⌘-C or Ctrl-C to copy the link."
# multiplayer_coming_soon: "More multiplayer features to come!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
# guide_title: "Guide"
# tome_minion_spells: "Your Minions' Spells"
# tome_read_only_spells: "Read-Only Spells"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
# nav:
# play: "Levels"
# community: "Community"
# editor: "Editor"
# blog: "Blog"
# forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
# autosave: "Changes Save Automatically"
# me_tab: "Me"
# picture_tab: "Picture"
# upload_picture: "Upload a picture"
# wizard_tab: "Wizard"
# password_tab: "Password"
# emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
# new_password_verify: "Verify"
# email_subscriptions: "Email Subscriptions"
# email_announcements: "Announcements"
# email_notifications: "Notifications"
# email_notifications_description: "Get periodic notifications for your account."
# email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
# contributor_emails: "Contributor Class Emails"
# contribute_prefix: "We're looking for people to join our party! Check out the "
# contribute_page: "contribute page"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
# multiplayer_hint_label: "Hint:"
# multiplayer_hint: " Click the link to select all, then press ⌘-C or Ctrl-C to copy the link."
# multiplayer_coming_soon: "More multiplayer features to come!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
# guide_title: "Guide"
# tome_minion_spells: "Your Minions' Spells"
# tome_read_only_spells: "Read-Only Spells"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
nav:
play: "Játék"
# community: "Community"
editor: "Szerkesztő"
blog: "Blog"
forum: "Fórum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
autosave: "A változtatásokat automatikusan elmentjük."
me_tab: "Rólad"
picture_tab: "Kép"
# upload_picture: "Upload a picture"
wizard_tab: "Varázsló"
password_tab: "Jelszó"
emails_tab: "Levelek"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
new_password_verify: "Új jelszó megismétlése"
email_subscriptions: "Hírlevél feliratkozások"
email_announcements: "Bejelentések"
email_notifications: "Értesítések"
# email_notifications_description: "Get periodic notifications for your account."
email_announcements_description: "Szeretnél levelet kapni a legújabb fejlesztéseinkről?"
email_notifications: "Értesítések"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "Hozzájárulóknak szóló levelek"
contribute_prefix: "Folyamatosan keresünk embereket, hogy csatlakozzanak hozzánk. Nézz rá a "
contribute_page: "segítők oldalára"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
multiplayer_hint_label: "Tipp:"
multiplayer_hint: " Kattints a linkre, és Ctrl+C-vel (vagy ⌘+C-vel) másold a vágólapra!"
# multiplayer_coming_soon: "More multiplayer features to come!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Útmutató"
tome_minion_spells: "Egységeid varázslatai"
tome_read_only_spells: "Csak olvasható varázslatok"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
# nav:
# play: "Levels"
# community: "Community"
# editor: "Editor"
# blog: "Blog"
# forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
# autosave: "Changes Save Automatically"
# me_tab: "Me"
# picture_tab: "Picture"
# upload_picture: "Upload a picture"
# wizard_tab: "Wizard"
# password_tab: "Password"
# emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
# new_password_verify: "Verify"
# email_subscriptions: "Email Subscriptions"
# email_announcements: "Announcements"
# email_notifications: "Notifications"
# email_notifications_description: "Get periodic notifications for your account."
# email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
# contributor_emails: "Contributor Class Emails"
# contribute_prefix: "We're looking for people to join our party! Check out the "
# contribute_page: "contribute page"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
# multiplayer_hint_label: "Hint:"
# multiplayer_hint: " Click the link to select all, then press ⌘-C or Ctrl-C to copy the link."
# multiplayer_coming_soon: "More multiplayer features to come!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
# guide_title: "Guide"
# tome_minion_spells: "Your Minions' Spells"
# tome_read_only_spells: "Read-Only Spells"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
nav:
play: "Livelli"
# community: "Community"
editor: "Editor"
blog: "Blog"
forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
autosave: "Modifiche salvate automaticamente"
me_tab: "Io"
picture_tab: "Immagine"
# upload_picture: "Upload a picture"
wizard_tab: "Stregone"
password_tab: "Password"
emails_tab: "Email"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
new_password_verify: "Verifica"
email_subscriptions: "Sottoscrizioni email"
email_announcements: "Annunci email"
email_notifications: "Notifiche email"
email_notifications_description: "Ricevi notifiche periodiche del tuo account."
email_announcements_description: "Ricevi email con le ultime novità e sviluppi di CodeCombat."
email_notifications: "Notifiche email"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "Email dei collaboratori"
contribute_prefix: "Stiamo cercando persone che si uniscano al nostro gruppo! Dai un'occhiata alla "
contribute_page: "pagina dei collaboratori"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
multiplayer_hint_label: "Suggerimento:"
multiplayer_hint: " Clicca il link per selezionare tutto, quindi premi CMD-C o Ctrl-C per copiare il link."
multiplayer_coming_soon: "Ulteriori aggiunte per il multigiocatore in arrivo!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Guida"
tome_minion_spells: "Incantesimi dei tuoi seguaci"
tome_read_only_spells: "Incantesimi in sola lettura"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
# simple_ai: "Simple AI"
# warmup: "Warmup"
vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
nav:
play: "ゲームスタート"
# community: "Community"
editor: "レベルエディタ"
blog: "ブログ"
forum: "掲示板"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
autosave: "変更は自動的にセーブします"
me_tab: "自分"
picture_tab: "画像"
# upload_picture: "Upload a picture"
wizard_tab: "魔法使い"
password_tab: "パスワード"
emails_tab: "メール"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
new_password_verify: "新パスワードを再入力"
email_subscriptions: "ニュースレターの購読"
email_announcements: "お知らせ"
email_notifications: "通知"
email_notifications_description: "定期的なお知らせをメールで受け取る"
email_announcements_description: "CodeCombatの最新のニュースや進展をメールで受け取る"
email_notifications: "通知"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "開発を手伝ってくれる人向けのメール"
contribute_prefix: "私達は開発を手伝ってくれる人を探しています。 詳しくは "
contribute_page: "こちらのページ"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
multiplayer_hint_label: "ヒント:"
multiplayer_hint: " リンクを選択後、 ⌘-C(MacOS) or Ctrl-C(Windows) でリンクをコピーできます。"
multiplayer_coming_soon: "今後より多くのマルチプレイ機能が追加されます。"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "ガイド"
tome_minion_spells: "操作できるキャラクターの呪文"
tome_read_only_spells: "読込専用の呪文"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
nav:
play: "레벨"
# community: "Community"
editor: "에디터"
blog: "블로그"
forum: "포럼"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
autosave: "변경 사항은 자동 저장 됩니다"
me_tab: ""
picture_tab: "사진"
# upload_picture: "Upload a picture"
wizard_tab: "마법사"
password_tab: "비밀번호"
emails_tab: "이메일"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
new_password_verify: "확인(다시한번 입력해주세요)"
email_subscriptions: "이메일 구독"
email_announcements: "공지사항"
email_notifications: "알람"
email_notifications_description: "계정에 관련된 사항을 정기적으로 구독하세요"
email_announcements_description: "코드 컴뱃의 개발 또는 진행상황을 이메일로 구독 하세요"
email_notifications: "알람"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "조력자들 이메일"
contribute_prefix: "우리는 언제나 당신의 참여를 환영 합니다 : "
contribute_page: "참여하기 페이지"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
multiplayer_hint_label: "힌트:"
multiplayer_hint: " 모두 선택하려면 링크를 클릭하세요, 그리고 ⌘-C 또는 Ctrl-C 를 눌러서 링크를 복사하세요."
multiplayer_coming_soon: "곧 좀 더 다양한 멀티플레이어 모드가 업데이트 됩니다!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "가이드"
tome_minion_spells: "당신 미니언의' 마법"
tome_read_only_spells: "읽기 전용 마법"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -19,8 +19,8 @@ module.exports =
zh: require './zh' # , Chinese
'zh-HANS': require './zh-HANS' # , Chinese (Simplified)
'zh-HANT': require './zh-HANT' # , Chinese (Traditional)
'zh-WUU-HANS': require './zh-WUU-HANS' # , Wuu (Simplified)
'zh-WUU-HANT': require './zh-WUU-HANT' # , Wuu (Traditional)
'zh-WUU-HANS': require './zh-WUU-HANS' # , Wuu (Simplified)
'zh-WUU-HANT': require './zh-WUU-HANT' # , Wuu (Traditional)
fr: require './fr' # français, French
ja: require './ja' # , Japanese
ar: require './ar' # العربية, Arabic

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
# nav:
# play: "Levels"
# community: "Community"
# editor: "Editor"
# blog: "Blog"
# forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
# autosave: "Changes Save Automatically"
# me_tab: "Me"
# picture_tab: "Picture"
# upload_picture: "Upload a picture"
# wizard_tab: "Wizard"
# password_tab: "Password"
# emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
# new_password_verify: "Verify"
# email_subscriptions: "Email Subscriptions"
# email_announcements: "Announcements"
# email_notifications: "Notifications"
# email_notifications_description: "Get periodic notifications for your account."
# email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
# contributor_emails: "Contributor Class Emails"
# contribute_prefix: "We're looking for people to join our party! Check out the "
# contribute_page: "contribute page"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
# multiplayer_hint_label: "Hint:"
# multiplayer_hint: " Click the link to select all, then press ⌘-C or Ctrl-C to copy the link."
# multiplayer_coming_soon: "More multiplayer features to come!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
# guide_title: "Guide"
# tome_minion_spells: "Your Minions' Spells"
# tome_read_only_spells: "Read-Only Spells"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
nav:
play: "Mula"
# community: "Community"
# editor: "Editor"
# blog: "Blog"
# forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
autosave: "Pengubahsuaian disimpan secara automatik"
me_tab: "Saya"
picture_tab: "Gambar"
# upload_picture: "Upload a picture"
# wizard_tab: "Wizard"
password_tab: "Kata-laluan"
emails_tab: "Kesemua E-mel"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
new_password_verify: "Verifikasi"
# email_subscriptions: "Email Subscriptions"
email_announcements: "Pengumuman"
email_notifications: "Notifikasi"
# email_notifications_description: "Get periodic notifications for your account."
# email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
email_notifications: "Notifikasi"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
# contributor_emails: "Contributor Class Emails"
contribute_prefix: "Kami sedang mencari orang untuk masuk 'parti' kami! Sila semak kepada "
contribute_page: "Laman untuk sumbangan"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
# multiplayer_hint_label: "Hint:"
# multiplayer_hint: " Click the link to select all, then press ⌘-C or Ctrl-C to copy the link."
# multiplayer_coming_soon: "More multiplayer features to come!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
# guide_title: "Guide"
# tome_minion_spells: "Your Minions' Spells"
# tome_read_only_spells: "Read-Only Spells"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
nav:
play: "Spill"
# community: "Community"
editor: "Editor"
blog: "Blogg"
forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
autosave: "Endringer Lagres Automatisk"
me_tab: "Meg"
picture_tab: "Bilde"
# upload_picture: "Upload a picture"
wizard_tab: "Trollmann"
password_tab: "Passord"
emails_tab: "Epost"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
new_password_verify: "Verifiser"
email_subscriptions: "Epost Abonnement"
email_announcements: "Kunngjøringer"
# email_notifications: "Notifications"
# email_notifications_description: "Get periodic notifications for your account."
email_announcements_description: "Få epost om siste nytt og utvikling fra CodeCombat."
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "Contributor Klasse Epost"
contribute_prefix: "Vi leter etter folk som vil delta på festen vår! Sjekk ut "
contribute_page: "bidra siden"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
multiplayer_hint_label: "Hint:"
multiplayer_hint: " Klikk lenken for å velge alle, så trykker du Apple-C eller Ctrl-C for å kopiere lenken."
multiplayer_coming_soon: "Det kommer flere flerspillsmuligheter!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Guide"
tome_minion_spells: "Din Minions' Trylleformularer"
tome_read_only_spells: "Kun-Lesbare Trylleformularer"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
nav:
play: "Levels"
# community: "Community"
editor: "Editor"
blog: "Blog"
forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
autosave: "Aanpassingen Automatisch Opgeslagen"
me_tab: "Ik"
picture_tab: "Afbeelding"
# upload_picture: "Upload a picture"
wizard_tab: "Tovenaar"
password_tab: "Wachtwoord"
emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
new_password_verify: "Verifieer"
email_subscriptions: "E-mail Abonnementen"
email_announcements: "Aankondigingen"
email_notifications: "Notificaties"
email_notifications_description: "Krijg periodieke meldingen voor jouw account."
email_announcements_description: "Verkrijg emails over het laatste nieuws en de ontwikkelingen bij CodeCombat."
email_notifications: "Notificaties"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "Medewerker Klasse emails"
contribute_prefix: "We zoeken mensen om met ons te komen feesten! Bekijk de "
contribute_page: "bijdragepagina"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
multiplayer_hint_label: "Hint:"
multiplayer_hint: " Klik de link om alles te selecteren, druk dan op Apple-C of Ctrl-C om de link te kopiëren."
multiplayer_coming_soon: "Binnenkort komen er meer Multiplayermogelijkheden!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Handleiding"
tome_minion_spells: "Jouw Minions' Spreuken"
tome_read_only_spells: "Read-Only Spreuken"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
simple_ai: "Simpele AI"
warmup: "Opwarming"
vs: "tegen"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
multiplayer_launch:
introducing_dungeon_arena: "Introductie van Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
user_profile: "Gebruikersprofiel"
patches: "Patches"
model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
nav:
play: "Levels"
# community: "Community"
editor: "Editor"
blog: "Blog"
forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
autosave: "Aanpassingen Automatisch Opgeslagen"
me_tab: "Ik"
picture_tab: "Afbeelding"
# upload_picture: "Upload a picture"
wizard_tab: "Tovenaar"
password_tab: "Wachtwoord"
emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
new_password_verify: "Verifieer"
email_subscriptions: "E-mail Abonnementen"
email_announcements: "Aankondigingen"
email_notifications: "Notificaties"
email_notifications_description: "Krijg periodieke meldingen voor jouw account."
email_announcements_description: "Verkrijg emails over het laatste nieuws en de ontwikkelingen bij CodeCombat."
email_notifications: "Notificaties"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "Medewerker Klasse emails"
contribute_prefix: "We zoeken mensen om met ons te komen feesten! Bekijk de "
contribute_page: "bijdragepagina"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
multiplayer_hint_label: "Hint:"
multiplayer_hint: " Klik de link om alles te selecteren, druk dan op Apple-C of Ctrl-C om de link te kopiëren."
multiplayer_coming_soon: "Binnenkort komen er meer Multiplayermogelijkheden!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Handleiding"
tome_minion_spells: "Jouw Minions' Spreuken"
tome_read_only_spells: "Read-Only Spreuken"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
simple_ai: "Simpele AI"
warmup: "Opwarming"
vs: "tegen"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
multiplayer_launch:
introducing_dungeon_arena: "Introductie van Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
user_profile: "Gebruikersprofiel"
patches: "Patches"
model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -15,9 +15,9 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
fork: "Fork"
play: "Spelen"
retry: "Probeer opnieuw"
# watch: "Watch"
# unwatch: "Unwatch"
# submit_patch: "Submit Patch"
watch: "Volgen"
unwatch: "Ontvolgen"
submit_patch: "Correctie Opsturen"
units:
second: "seconde"
@ -36,10 +36,11 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
nav:
play: "Levels"
community: "Gemeenschap"
editor: "Editor"
blog: "Blog"
forum: "Forum"
# account: "Account"
account: "Lidmaatschap"
admin: "Administrator"
home: "Home"
contribute: "Bijdragen"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
autosave: "Aanpassingen Automatisch Opgeslagen"
me_tab: "Ik"
picture_tab: "Afbeelding"
upload_picture: "Je afbeelding opsturen"
wizard_tab: "Tovenaar"
password_tab: "Wachtwoord"
emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
new_password_verify: "Verifieer"
email_subscriptions: "E-mail Abonnementen"
email_announcements: "Aankondigingen"
email_notifications: "Notificaties"
email_notifications_description: "Krijg periodieke meldingen voor jouw account."
email_announcements_description: "Verkrijg emails over het laatste nieuws en de ontwikkelingen bij CodeCombat."
email_notifications: "Meldingen"
email_notifications_summary: "Instellingen voor gepersonaliseerde, automatische meldingen via e-mail omtrent je activiteit op CodeCombat."
email_any_notes: "Alle Meldingen"
email_any_notes_description: "Zet alle activiteit-meldingen via e-mail af."
email_recruit_notes: "Job Aanbiedingen"
email_recruit_notes_description: "Als je zeer goed speelt, zouden we je wel eens kunnen contacteren om je een (betere) job aan te bieden."
contributor_emails: "Medewerker Klasse emails"
contribute_prefix: "We zoeken mensen om met ons te komen feesten! Bekijk de "
contribute_page: "bijdragepagina"
@ -174,8 +180,8 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
job_profile: "Job Profiel"
job_profile_approved: "Jouw job profiel werd goedgekeurd door CodeCombat. Werkgevers zullen het kunnen bekijken totdat je het inactief zet of als er geen verandering in komt voor vier weken."
job_profile_explanation: "Hey! Vul dit in en we zullen je contacteren om je een job als softwareontwikkelaar te helpen vinden."
# sample_profile: "See a sample profile"
# view_profile: "View Your Profile"
sample_profile: "Bekijk een voorbeeld kandidaat-profiel"
view_profile: "Bekijk je eigen kandidaat-profiel"
account_profile:
edit_settings: "Instellingen Aanpassen"
@ -193,7 +199,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
employers:
want_to_hire_our_players: "Wil je expert CodeCombat spelers aanwerven? "
# see_candidates: "Click here to see our candidates"
see_candidates: "Klik om je kandidaten te zien"
candidates_count_prefix: "Momenteel hebben we "
candidates_count_many: "veel"
candidates_count_suffix: "zeer getalenteerde en ervaren ontwikkelaars die werk zoeken."
@ -204,8 +210,8 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
candidate_top_skills: "Beste vaardigheden"
candidate_years_experience: "Jaren ervaring"
candidate_last_updated: "Laatst aangepast"
# candidate_approved: "Us?"
# candidate_active: "Them?"
candidate_approved: "Wij?"
candidate_active: "Zij?"
play_level:
level_load_error: "Level kon niet geladen worden: "
@ -240,6 +246,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
multiplayer_hint_label: "Hint:"
multiplayer_hint: " Klik de link om alles te selecteren, druk dan op Apple-C of Ctrl-C om de link te kopiëren."
multiplayer_coming_soon: "Binnenkort komen er meer Multiplayermogelijkheden!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Handleiding"
tome_minion_spells: "Jouw Minions' Spreuken"
tome_read_only_spells: "Read-Only Spreuken"
@ -251,7 +258,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
tome_select_spell: "Selecteer een Spreuk"
tome_select_a_thang: "Selecteer Iemand voor "
tome_available_spells: "Beschikbare spreuken"
hud_continue: "Ga verder (druk shift-space)"
hud_continue: "Ga verder (druk shift-spatie)"
spell_saved: "Spreuk Opgeslagen"
skip_tutorial: "Overslaan (esc)"
editor_config: "Editor Configuratie"
@ -262,7 +269,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
editor_config_keybindings_default: "Standaard (Ace)"
editor_config_keybindings_description: "Voeg extra shortcuts toe van de gebruikelijke editors."
editor_config_invisibles_label: "Toon onzichtbare"
editor_config_invisibles_description: "Toon onzichtbare whitespace karakters."
editor_config_invisibles_description: "Toon onzichtbare (spatie) karakters."
editor_config_indentguides_label: "Toon inspringing regels"
editor_config_indentguides_description: "Toon verticale hulplijnen om de zichtbaarheid te verbeteren."
editor_config_behaviors_label: "Slim gedrag"
@ -282,9 +289,9 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
tip_debugging_program: "Als debuggen het proces is om bugs te verwijderen, dan moet programmeren het proces zijn om ze erin te stoppen. - Edsger W. Dijkstra"
tip_forums: "Ga naar de forums en vertel ons wat je denkt!"
tip_baby_coders: "Zelfs babies zullen in de toekomst een Tovenaar zijn."
tip_morale_improves: "Het spel zal blijven laden tot de moreel verbeterd."
tip_morale_improves: "Het spel zal blijven laden tot de moreel verbetert."
tip_all_species: "Wij geloven in gelijke kansen voor alle wezens om te leren programmeren."
# tip_reticulating: "Reticulating spines."
tip_reticulating: "Paden aan het verknopen."
tip_harry: "Je bent een tovenaar, "
tip_great_responsibility: "Met een groots talent voor programmeren komt een grootse debug verantwoordelijkheid."
tip_munchkin: "Als je je groentjes niet opeet zal een munchkin je ontvoeren terwijl je slaapt."
@ -314,12 +321,12 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
lg_title: "Laatste Spelletjes"
clas: "CLAs"
# community:
# level_editor: "Level Editor"
# main_title: "CodeCombat Community"
# facebook: "Facebook"
# twitter: "Twitter"
# gplus: "Google+"
community:
level_editor: "Level Bewerker"
main_title: "CodeCombat Gemeenschap"
facebook: "Facebook"
twitter: "Twitter"
gplus: "Google+"
editor:
main_title: "CodeCombat Editors"
@ -330,7 +337,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
thang_description: "Maak eenheden, beschrijf hun standaard logica, graphics en audio. Momenteel is enkel het importeren van vector graphics geëxporteerd uit Flash ondersteund."
level_title: "Level Editor"
level_description: "Bevat de benodigdheden om scripts te schrijven, audio te uploaden en aangepaste logica te creëren om alle soorten levels te maken. Het is alles wat wij zelf ook gebruiken!"
# got_questions: "Questions about using the CodeCombat editors?"
got_questions: "Heb je vragen over het gebruik van de CodeCombat editors?"
contact_us: "contacteer ons!"
hipchat_prefix: "Je kan ons ook vinden in ons"
hipchat_url: "(Engelstalig) HipChat kanaal."
@ -372,9 +379,9 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
new_article_title: "Maak een Nieuw Artikel"
new_thang_title: "Maak een Nieuw Thang Type"
new_level_title: "Maak een Nieuw Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
new_article_title_signup: "Meld je aan om een Nieuw Artikel te maken"
new_thang_title_signup: "Meld je aan op een Nieuw Thang Type te maken"
new_level_title_signup: "Meld je aan om een Nieuw Level te maken"
article_search_title: "Zoek Artikels Hier"
thang_search_title: "Zoek Thang Types Hier"
level_search_title: "Zoek Levels Hier"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
simple_ai: "Simpele AI"
warmup: "Opwarming"
vs: "tegen"
friends_playing: "Spelende Vrienden"
sign_up_for_friends: "Meld je aan om met je vrienden te spelen!"
social_connect_blurb: "Koppel je sociaal netwerk om tegen je vrienden te spelen!"
invite_friends_to_battle: "Nodig je vrienden uit om deel te nemen aan het gevecht!"
fight: "Aanvallen!"
watch_victory: "Aanschouw je overwinning!"
defeat_the: "Versla de"
multiplayer_launch:
introducing_dungeon_arena: "Introductie van Dungeon Arena"
@ -651,7 +665,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
to_battle: "Naar het slagveld, ontwikkelaars!"
modern_day_sorcerer: "Kan jij programmeren? Dat is pas stoer. Jij bent een moderne tovenaar! Is het niet tijd dat je jouw magische krachten gebruikt voor het besturen van jou minions in het slagveld? En nee, we praten hier niet over robots."
arenas_are_here: "CodeCombat's kop aan kop multiplayer arena's zijn er."
ladder_explanation: "Kies jouw helden, betover jouw mensen of ogre legers, en beklim jouw weg naar de top in de ladder, door het verslagen van vriend en vijand. Daag nu je vrienden uit in de multiplayer programmeer arena's en verdien eeuwige roem. Indien je creatief bent, kan je zelfs"
ladder_explanation: "Kies jouw helden, betover jouw mensen of ork-legers, en beklim jouw weg naar de top in de ladder, door het verslagen van vriend en vijand. Daag nu je vrienden uit in de multiplayer programmeer arena's en verdien eeuwige roem. Indien je creatief bent, kan je zelfs"
fork_our_arenas: "onze arenas forken"
create_worlds: "en jouw eigen werelden creëren."
javascript_rusty: "Jouw JavaScript is een beetje roestig? Wees niet bang, er is een"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
user_profile: "Gebruikersprofiel"
patches: "Patches"
model: "Model"
system: "Systeem"
component: "Component"
components: "Componenten"
thang: "Thang"
thangs: "Thangs"
level_session: "Jouw Sessie"
opponent_session: "Sessie van tegenstander"
article: "Artikel"
user_names: "Gebruikersnamen"
files: "Bestanden"
top_simulators: "Top Simulatoren"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
# nav:
# play: "Levels"
# community: "Community"
# editor: "Editor"
# blog: "Blog"
# forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
# autosave: "Changes Save Automatically"
# me_tab: "Me"
# picture_tab: "Picture"
# upload_picture: "Upload a picture"
# wizard_tab: "Wizard"
# password_tab: "Password"
# emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
# new_password_verify: "Verify"
# email_subscriptions: "Email Subscriptions"
# email_announcements: "Announcements"
# email_notifications: "Notifications"
# email_notifications_description: "Get periodic notifications for your account."
# email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
# contributor_emails: "Contributor Class Emails"
# contribute_prefix: "We're looking for people to join our party! Check out the "
# contribute_page: "contribute page"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
# multiplayer_hint_label: "Hint:"
# multiplayer_hint: " Click the link to select all, then press ⌘-C or Ctrl-C to copy the link."
# multiplayer_coming_soon: "More multiplayer features to come!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
# guide_title: "Guide"
# tome_minion_spells: "Your Minions' Spells"
# tome_read_only_spells: "Read-Only Spells"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
nav:
play: "Spill"
# community: "Community"
editor: "Editor"
blog: "Blogg"
forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
autosave: "Endringer Lagres Automatisk"
me_tab: "Meg"
picture_tab: "Bilde"
# upload_picture: "Upload a picture"
wizard_tab: "Trollmann"
password_tab: "Passord"
emails_tab: "Epost"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
new_password_verify: "Verifiser"
email_subscriptions: "Epost Abonnement"
email_announcements: "Kunngjøringer"
# email_notifications: "Notifications"
# email_notifications_description: "Get periodic notifications for your account."
email_announcements_description: "Få epost om siste nytt og utvikling fra CodeCombat."
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "Contributor Klasse Epost"
contribute_prefix: "Vi leter etter folk som vil delta på festen vår! Sjekk ut "
contribute_page: "bidra siden"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
multiplayer_hint_label: "Hint:"
multiplayer_hint: " Klikk lenken for å velge alle, så trykker du Apple-C eller Ctrl-C for å kopiere lenken."
multiplayer_coming_soon: "Det kommer flere flerspillsmuligheter!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Guide"
tome_minion_spells: "Din Minions' Trylleformularer"
tome_read_only_spells: "Kun-Lesbare Trylleformularer"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
nav:
play: "Graj"
# community: "Community"
editor: "Edytor"
blog: "Blog"
forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
autosave: "Zmiany zapisują się automatycznie"
me_tab: "Ja"
picture_tab: "Zdjęcie"
# upload_picture: "Upload a picture"
wizard_tab: "Czarodziej"
password_tab: "Hasło"
emails_tab: "Powiadomienia"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
new_password_verify: "Zweryfikuj"
email_subscriptions: "Powiadomienia email"
email_announcements: "Ogłoszenia"
email_notifications: "Powiadomienia"
email_notifications_description: "Otrzymuj okresowe powiadomienia dotyczące twojego konta."
email_announcements_description: "Otrzymuj powiadomienia o najnowszych wiadomościach i zmianach w CodeCombat."
email_notifications: "Powiadomienia"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "Powiadomienia asystentów"
contribute_prefix: "Szukamy osób, które chciałyby do nas dołączyć! Sprawdź "
contribute_page: "stronę współpracy"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
multiplayer_hint_label: "Podpowiedź:"
multiplayer_hint: "Kliknij link by zaznaczyć wszystko, potem wciśnij Cmd-C lub Ctrl-C by skopiować ten link."
multiplayer_coming_soon: "Wkrótce więcej opcji multiplayer"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Przewodnik"
tome_minion_spells: "Czary twojego podopiecznego"
tome_read_only_spells: "Czary tylko do odczytu"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
simple_ai: "Proste AI"
warmup: "Rozgrzewka"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
multiplayer_launch:
introducing_dungeon_arena: "Oto Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
nav:
play: "Jogar"
# community: "Community"
editor: "Editor"
blog: "Blog"
forum: "Fórum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
autosave: "As alterações serão salvas automaticamente."
me_tab: "Eu"
picture_tab: "Foto"
# upload_picture: "Upload a picture"
wizard_tab: "Feiticeiro"
password_tab: "Senha"
emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
new_password_verify: "Confirmação"
email_subscriptions: "Assinaturas para Notícias por Email"
email_announcements: "Notícias"
email_notifications: "Notificações"
email_notifications_description: "Recebe notificações periódicas em sua conta."
email_announcements_description: "Receba emails com as últimas notícias e desenvolvimentos do CodeCombat."
email_notifications: "Notificações"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "Emails para as Classes de Contribuidores"
contribute_prefix: "Estamos procurando pessoas para se juntar à nossa turma! Confira a nossa "
contribute_page: "página de contribuição"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
multiplayer_hint_label: "Dica:"
multiplayer_hint: " Clique no link para selecionar tudo, então dê Ctrl+C ou ⌘+C para copiar o link. "
multiplayer_coming_soon: "Mais novidades no multiplayer estão chegando!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Guia"
tome_minion_spells: "Magias dos seus subordinados"
tome_read_only_spells: "Magias não editáveis"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
simple_ai: "IA Simples"
warmup: "Aquecimento"
vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
multiplayer_launch:
introducing_dungeon_arena: "Introduzindo a Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P
nav:
play: "Jogar"
# community: "Community"
editor: "Editor"
blog: "Blog"
forum: "Fórum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P
autosave: "As alterações guardam-se automaticamente"
me_tab: "Eu"
picture_tab: "Fotografia"
# upload_picture: "Upload a picture"
wizard_tab: "Feiticeiro"
password_tab: "Palavra-passe"
emails_tab: "E-mails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P
new_password_verify: "Verificar"
email_subscriptions: "Subscrições de E-mail"
email_announcements: "Anúncios"
email_notifications: "Notificações"
email_notifications_description: "Recebe notificações periódicas sobre a tua conta."
email_announcements_description: "Recebe e-mails sobre as últimas novidades e desenvolvimentos no CodeCombat."
email_notifications: "Notificações"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "E-mails para Contribuintes"
contribute_prefix: "Estamos à procura de pessoas para se juntarem a nós! Visita a "
contribute_page: "página de contribuição"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P
multiplayer_hint_label: "Dica:"
multiplayer_hint: " Carrega no link para seleccionar tudp, depois pressiona ⌘-C ou Ctrl-C para copiar o link."
multiplayer_coming_soon: "Mais funcionalidades de multiplayer brevemente!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Guia"
tome_minion_spells: "Feitiços dos teus Minions"
tome_read_only_spells: "Feitiços apenas de leitura"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P
simple_ai: "Inteligência Artificial Simples"
warmup: "Aquecimento"
vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
multiplayer_launch:
introducing_dungeon_arena: "Introduzindo a Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues
nav:
play: "Jogar"
# community: "Community"
editor: "Editor"
blog: "Blog"
forum: "Fórum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues
autosave: "As alterações serão salvas automaticamente."
me_tab: "Eu"
picture_tab: "Foto"
# upload_picture: "Upload a picture"
wizard_tab: "Feiticeiro"
password_tab: "Senha"
emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues
new_password_verify: "Confirmação"
email_subscriptions: "Assinaturas para Notícias por Email"
email_announcements: "Notícias"
# email_notifications: "Notifications"
# email_notifications_description: "Get periodic notifications for your account."
email_announcements_description: "Receba emails com as últimas notícias e desenvolvimentos do CodeCombat."
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "Emails para as Classes de Contribuidores"
contribute_prefix: "Estamos procurando pessoas para se juntar à nossa turma! Confira a nossa "
contribute_page: "página de contribuição"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues
multiplayer_hint_label: "Dica:"
multiplayer_hint: " Clique no link para selecionar tudo, então dê Ctrl+C ou ⌘+C para copiar o link. "
multiplayer_coming_soon: "Mais novidades no multiplayer estão chegando!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Guia"
tome_minion_spells: "Magias dos seus subordinados"
tome_read_only_spells: "Magias não editáveis"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
nav:
play: "Nivele"
# community: "Community"
editor: "Editor"
blog: "Blog"
forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
autosave: "Modificările se salvează automat"
me_tab: "Eu"
picture_tab: "Poză"
# upload_picture: "Upload a picture"
wizard_tab: "Wizard"
password_tab: "Parolă"
emails_tab: "Email-uri"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
new_password_verify: "Verifică"
email_subscriptions: "Subscripție Email"
email_announcements: "Anunțuri"
email_notifications: "Notificări"
email_notifications_description: "Primește notificări periodic pentru contul tău."
email_announcements_description: "Primește email-uri cu ultimele știri despre CodeCombat."
email_notifications: "Notificări"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "Contributor Class Emails"
contribute_prefix: "Căutăm oameni să se alăture distracției! Intră pe "
contribute_page: "pagina de contribuție"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
multiplayer_hint_label: "Hint:"
multiplayer_hint: " Apasă pe link pentru a selecta tot, apoi apasă ⌘-C sau Ctrl-C pentru a copia link-ul."
multiplayer_coming_soon: "Mai multe feature-uri multiplayer în curând!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Ghid"
tome_minion_spells: "Vrăjile Minion-ilor tăi"
tome_read_only_spells: "Vrăji Read-Only"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
simple_ai: "AI simplu"
warmup: "Încălzire"
vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
multiplayer_launch:
introducing_dungeon_arena: "Prezentăm Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
nav:
play: "Уровни"
# community: "Community"
editor: "Редактор"
blog: "Блог"
forum: "Форум"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
autosave: "Настройки сохраняются автоматически"
me_tab: "Я"
picture_tab: "Аватар"
# upload_picture: "Upload a picture"
wizard_tab: "Волшебник"
password_tab: "Пароль"
emails_tab: "Email-адреса"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
new_password_verify: "Подтверждение пароля"
email_subscriptions: "Email-подписки"
email_announcements: "Оповещения"
email_notifications: "Уведомления"
email_notifications_description: "Получать периодические уведомления для вашего аккаунта."
email_announcements_description: "Получать email-оповещения о последних новостях CodeCombat."
email_notifications: "Уведомления"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "Рассылки по классам участников"
contribute_prefix: "Нам нужны люди, которые присоединятся к нашей команде! Зайдите на "
contribute_page: "страницу участников,"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
multiplayer_hint_label: "Подсказка: "
multiplayer_hint: "кликните на ссылку, чтобы выделить её, затем нажмите ⌘-С или Ctrl-C, чтобы скопировать."
multiplayer_coming_soon: "Больше возможностей мультиплеера на подходе!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Руководство"
tome_minion_spells: "Заклинания ваших миньонов"
tome_read_only_spells: "Заклинания только для чтения"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
simple_ai: "Простой ИИ"
warmup: "Разминка"
vs: "против"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
multiplayer_launch:
introducing_dungeon_arena: "Представляем Арену подземелья"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
user_profile: "Пользовательский профиль"
patches: "Патчи"
model: "Модель"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
nav:
play: "Hraj"
# community: "Community"
editor: "Editor"
blog: "Blog"
forum: "Fórum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
autosave: "Zmeny sa uložia automaticky"
me_tab: "Ja"
picture_tab: "Obrázok"
# upload_picture: "Upload a picture"
wizard_tab: "Kúzelník"
password_tab: "Heslo"
emails_tab: "E-maily"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
new_password_verify: "Overenie"
# email_subscriptions: "Email Subscriptions"
# email_announcements: "Announcements"
# email_notifications: "Notifications"
# email_notifications_description: "Get periodic notifications for your account."
# email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
# contributor_emails: "Contributor Class Emails"
# contribute_prefix: "We're looking for people to join our party! Check out the "
# contribute_page: "contribute page"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
# multiplayer_hint_label: "Hint:"
# multiplayer_hint: " Click the link to select all, then press ⌘-C or Ctrl-C to copy the link."
# multiplayer_coming_soon: "More multiplayer features to come!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
# guide_title: "Guide"
# tome_minion_spells: "Your Minions' Spells"
# tome_read_only_spells: "Read-Only Spells"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
# nav:
# play: "Levels"
# community: "Community"
# editor: "Editor"
# blog: "Blog"
# forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
# autosave: "Changes Save Automatically"
# me_tab: "Me"
# picture_tab: "Picture"
# upload_picture: "Upload a picture"
# wizard_tab: "Wizard"
# password_tab: "Password"
# emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
# new_password_verify: "Verify"
# email_subscriptions: "Email Subscriptions"
# email_announcements: "Announcements"
# email_notifications: "Notifications"
# email_notifications_description: "Get periodic notifications for your account."
# email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
# contributor_emails: "Contributor Class Emails"
# contribute_prefix: "We're looking for people to join our party! Check out the "
# contribute_page: "contribute page"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
# multiplayer_hint_label: "Hint:"
# multiplayer_hint: " Click the link to select all, then press ⌘-C or Ctrl-C to copy the link."
# multiplayer_coming_soon: "More multiplayer features to come!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
# guide_title: "Guide"
# tome_minion_spells: "Your Minions' Spells"
# tome_read_only_spells: "Read-Only Spells"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
nav:
play: "Нивои"
# community: "Community"
editor: "Уређивач"
blog: "Блог"
forum: "Форум"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
autosave: "Измене се чувају аутоматски"
me_tab: "Ја"
picture_tab: "Фотографија"
# upload_picture: "Upload a picture"
wizard_tab: "Чаробњак"
password_tab: "Шифра"
emails_tab: "Мејлови"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
new_password_verify: "Потврди"
email_subscriptions: "Мејл претплате"
email_announcements: "Обавештења"
# email_notifications: "Notifications"
# email_notifications_description: "Get periodic notifications for your account."
email_announcements_description: "Прими мејл за најновије вести и достигнућа на CodeCombat-у"
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "Мејлови реда сарадника"
contribute_prefix: "Тражимо људе који би нам се придружили! Погледај "
contribute_page: "страницу за сарадњу"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
multiplayer_hint_label: "Мала помоћ"
multiplayer_hint: " Кликни на линк да обележиш све, затим притисни Apple-C или Ctrl-C да копираш линк."
multiplayer_coming_soon: "Стиже још нових карактеристика!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Водич"
tome_minion_spells: "Чини твојих поданика"
tome_read_only_spells: "Чини које се могу само гледати"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
nav:
play: "Spela"
# community: "Community"
editor: "Nivåredigerare"
blog: "Blogg"
forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
autosave: "Ändringar sparas automatiskt"
me_tab: "Jag"
picture_tab: "Profilbild"
# upload_picture: "Upload a picture"
wizard_tab: "Trollkarl"
password_tab: "Lösenord"
emails_tab: "E-postadresser"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
new_password_verify: "Verifiera"
email_subscriptions: "E-postsprenumerationer"
email_announcements: "Meddelanden"
email_notifications: "Påminnelser"
email_notifications_description: "Få periodiska påminnelser för ditt konto."
email_announcements_description: "Få e-post med de senaste nyheterna och utvecklingen på CodeCombat."
email_notifications: "Påminnelser"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "E-post för bidragare"
contribute_prefix: "Vi söker mer folk som vill var med och hjälpa till! Kolla in "
contribute_page: " bidragarsidan "
@ -240,6 +246,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
multiplayer_hint_label: "Tips:"
multiplayer_hint: " Klicka på länken för att välja allt, tryck sedan på Cmd-C eller Ctrl-C för att kopiera länken."
multiplayer_coming_soon: "Fler flerspelarlägen kommer!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Guide"
tome_minion_spells: "Dina soldaters förmågor"
tome_read_only_spells: "Skrivskyddade förmågor"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
simple_ai: "Enkelt AI"
warmup: "Uppvärmning"
vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
multiplayer_launch:
introducing_dungeon_arena: "Introducerar grottarenan"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
nav:
play: "เล่น"
# community: "Community"
editor: "Editor"
blog: "บล็อก"
forum: "กระดานสนทนา"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
autosave: "บันทึกการเปลี่ยนแปลงอัตโนมัติ"
# me_tab: "Me"
picture_tab: "รูปภาพ"
# upload_picture: "Upload a picture"
# wizard_tab: "Wizard"
password_tab: "รหัสผ่าน"
# emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
# new_password_verify: "Verify"
# email_subscriptions: "Email Subscriptions"
email_announcements: "ประกาศ"
# email_notifications: "Notifications"
# email_notifications_description: "Get periodic notifications for your account."
# email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
# contributor_emails: "Contributor Class Emails"
# contribute_prefix: "We're looking for people to join our party! Check out the "
# contribute_page: "contribute page"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
multiplayer_hint_label: "คำใบ้"
# multiplayer_hint: " Click the link to select all, then press ⌘-C or Ctrl-C to copy the link."
# multiplayer_coming_soon: "More multiplayer features to come!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
# guide_title: "Guide"
# tome_minion_spells: "Your Minions' Spells"
# tome_read_only_spells: "Read-Only Spells"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
nav:
play: "Oyna"
# community: "Community"
editor: "Düzenleyici"
blog: "Blog"
forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
autosave: "Değişiklikler Kendiliğinden Kaydedilir"
me_tab: "Ben"
picture_tab: "Resim"
# upload_picture: "Upload a picture"
wizard_tab: "Sihirbaz"
password_tab: "Şifre"
emails_tab: "E-postalar"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
new_password_verify: "Teyit Et"
email_subscriptions: "E-posta Abonelikleri"
email_announcements: "Duyurular"
email_notifications: "Bilgilendirme"
email_notifications_description: "Düzenli bilgilendirmelere kaydol."
email_announcements_description: "CodeCombat ile ilgili son haberlere ve gelişmelere ulaşın."
email_notifications: "Bilgilendirme"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "İştirakçi Sınıfı E-postaları"
contribute_prefix: "Partimize katılmak üzere sizleri bekliyoruz ! Detaylı bilgi için "
contribute_page: "katkı sayfasını"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
multiplayer_hint_label: "İpucu:"
multiplayer_hint: " Kopyalamak için önce linke tıklayın, ardından CTRL+C veya ⌘+C kombinasyonuna basın."
multiplayer_coming_soon: "Daha bir çok çoklu oyuncu özelliği eklenecek!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Rehber"
tome_minion_spells: "Minyonlarınızın Büyüleri"
tome_read_only_spells: "Salt Okunur Büyüler"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "українська мова", englishDesc
nav:
play: "Грати"
# community: "Community"
editor: "Редактор"
blog: "Блог"
forum: "Форум"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "українська мова", englishDesc
autosave: "Зміни зберігаються автоматично"
me_tab: "Я"
picture_tab: "Аватар"
# upload_picture: "Upload a picture"
wizard_tab: "Персонаж"
password_tab: "Пароль"
emails_tab: "Email-адреси"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "українська мова", englishDesc
new_password_verify: "Підтвердження паролю"
email_subscriptions: "Email-підписки"
email_announcements: "Оголошення"
email_notifications: "Нотифікації"
email_notifications_description: "Отримувати періодичні нагадування для Вашого акаунта."
email_announcements_description: "Отримувати електронні листи про останні новини CodeCombat."
email_notifications: "Нотифікації"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "Підписки за класами учасників"
contribute_prefix: "Нам потрібні люди, які приєднаються до нашої команди! Зайдіть на "
contribute_page: "сторінку учасників,"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "українська мова", englishDesc
multiplayer_hint_label: "Підказка:"
multiplayer_hint: "Натисніть на посилання, щоб обрати всіх, та натисніть Apple-C або Ctrl-C, щоб скопіювати посилання."
multiplayer_coming_soon: "Скоро - більше можливостей у мультиплеєрі!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "Посібник"
tome_minion_spells: "Закляття ваших міньонів"
tome_read_only_spells: "Закляття тільки для читання"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "українська мова", englishDesc
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "українська мова", englishDesc
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
# nav:
# play: "Levels"
# community: "Community"
# editor: "Editor"
# blog: "Blog"
# forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
# autosave: "Changes Save Automatically"
# me_tab: "Me"
# picture_tab: "Picture"
# upload_picture: "Upload a picture"
# wizard_tab: "Wizard"
# password_tab: "Password"
# emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
# new_password_verify: "Verify"
# email_subscriptions: "Email Subscriptions"
# email_announcements: "Announcements"
# email_notifications: "Notifications"
# email_notifications_description: "Get periodic notifications for your account."
# email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
# contributor_emails: "Contributor Class Emails"
# contribute_prefix: "We're looking for people to join our party! Check out the "
# contribute_page: "contribute page"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
# multiplayer_hint_label: "Hint:"
# multiplayer_hint: " Click the link to select all, then press ⌘-C or Ctrl-C to copy the link."
# multiplayer_coming_soon: "More multiplayer features to come!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
# guide_title: "Guide"
# tome_minion_spells: "Your Minions' Spells"
# tome_read_only_spells: "Read-Only Spells"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
nav:
play: "Các cấp độ"
# community: "Community"
editor: "Chỉnh sửa"
# blog: "Blog"
forum: "Diễn đàn"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
autosave: "Tự động lưu thay đổi"
# me_tab: "Me"
picture_tab: "Bức tranh"
# upload_picture: "Upload a picture"
wizard_tab: "Wizard"
password_tab: "Mật khẩu"
emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
new_password_verify: "Xác nhận"
email_subscriptions: "Thuê bao Email"
email_announcements: "Thông báo"
# email_notifications: "Notifications"
# email_notifications_description: "Get periodic notifications for your account."
email_announcements_description: "Nhận email về tin tức mới nhất và sự phát triển của Codecombat."
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
# contributor_emails: "Contributor Class Emails"
contribute_prefix: "Chúng tôi đang tìm thêm người vào nhóm của chúng tôi! Hãy kiểm "
contribute_page: "trang đóng góp"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
# multiplayer_hint_label: "Hint:"
# multiplayer_hint: " Click the link to select all, then press ⌘-C or Ctrl-C to copy the link."
# multiplayer_coming_soon: "More multiplayer features to come!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
# guide_title: "Guide"
# tome_minion_spells: "Your Minions' Spells"
# tome_read_only_spells: "Read-Only Spells"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -15,9 +15,9 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
fork: "派生"
play: "开始"
retry: "重试"
# watch: "Watch"
# unwatch: "Unwatch"
# submit_patch: "Submit Patch"
watch: "关注"
unwatch: "取消关注"
submit_patch: "提交补丁"
units:
second: ""
@ -36,10 +36,11 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
nav:
play: "开始游戏"
community: "社区"
editor: "编辑器"
blog: "博客"
forum: "论坛"
# account: "Account"
account: "账号"
admin: "管理"
home: "首页"
contribute: "贡献"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
autosave: "自动保存修改"
me_tab: ""
picture_tab: "图片"
upload_picture: "上传一张图片"
wizard_tab: "巫师"
password_tab: "密码"
emails_tab: "邮件"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
new_password_verify: "核实"
email_subscriptions: "邮箱验证"
email_announcements: "通知"
email_notifications: "通知"
email_notifications_description: "接收来自你的账户的定期通知。"
email_announcements_description: "接收关于 CodeCombat 的邮件。"
email_notifications: "通知"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
email_any_notes: "任何通知"
email_any_notes_description: "取消接收所有活动提醒邮件"
email_recruit_notes: "工作机会"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "贡献者通知"
contribute_prefix: "我们在寻找志同道合的人!请到"
contribute_page: "贡献页面"
@ -175,7 +181,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
job_profile_approved: "你填写的工作经历将由CodeCombat认证. 雇主将看到这些信息,除非你将它设置为不启用状态或者连续四周没有更新."
job_profile_explanation: "你好! 填写这些信息, 我们将使用它帮你寻找一份软件开发的工作."
# sample_profile: "See a sample profile"
# view_profile: "View Your Profile"
view_profile: "浏览个人信息"
account_profile:
edit_settings: "编辑设置"
@ -193,7 +199,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
employers:
want_to_hire_our_players: "想要雇用CodeCombat上的专业玩家"
# see_candidates: "Click here to see our candidates"
see_candidates: "点击这里查看我们的忧患人"
candidates_count_prefix: "我们当前有 "
candidates_count_many: "很多"
candidates_count_suffix: "经过我们认证的高手们正在找工作。"
@ -204,8 +210,8 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
candidate_top_skills: "高级技能"
candidate_years_experience: "多年工作经验"
candidate_last_updated: "最后一次更新"
# candidate_approved: "Us?"
# candidate_active: "Them?"
candidate_approved: "我们"
candidate_active: "他们"
play_level:
level_load_error: "关卡不能载入: "
@ -240,6 +246,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
multiplayer_hint_label: "提示:"
multiplayer_hint: " 点击全选,然后按 Apple-C苹果电脑或 Ctrl-C 复制链接。"
multiplayer_coming_soon: "多人游戏的更多特性!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "指南"
tome_minion_spells: "助手的咒语"
tome_read_only_spells: "只读的咒语"
@ -265,7 +272,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
editor_config_invisibles_description: "显示诸如空格或TAB键。"
editor_config_indentguides_label: "显示缩进提示"
editor_config_indentguides_description: "显示一条竖线以使缩进更明显。"
# editor_config_behaviors_label: "Smart Behaviors"
editor_config_behaviors_label: "聪明的行为"
editor_config_behaviors_description: "自动完成括号,大括号和引号。"
loading_ready: "载入完成!"
tip_insert_positions: "使用Shift+左键来插入拼写编辑器。"
@ -314,9 +321,9 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
lg_title: "最新的游戏"
# clas: "CLAs"
# community:
# level_editor: "Level Editor"
# main_title: "CodeCombat Community"
community:
level_editor: "关卡编辑器"
main_title: "CodeCombat 社区"
# facebook: "Facebook"
# twitter: "Twitter"
# gplus: "Google+"
@ -330,7 +337,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
thang_description: "创建单元,并定义单元的逻辑、图形和音频。目前只支持导入 Flash 导出的矢量图形。"
level_title: "关卡编辑器"
level_description: "所有用来创造所有难度的关卡的工具,包括脚本、上传音频和构建自定义逻辑。"
# got_questions: "Questions about using the CodeCombat editors?"
got_questions: "使用CodeCombat编辑器有问题"
contact_us: "联系我们!"
hipchat_prefix: "你也可以在这里找到我们"
hipchat_url: "HipChat 房间。"
@ -372,9 +379,9 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
new_article_title: "创建一个新物品"
new_thang_title: "创建一个新物品类型"
new_level_title: "创建一个新关卡"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
new_article_title_signup: "注册以创建新的物品"
new_thang_title_signup: "注册以创建新的物品类型"
new_level_title_signup: "注册以创建新的关卡"
article_search_title: "在这里搜索物品"
thang_search_title: "在这里搜索物品类型"
level_search_title: "在这里搜索关卡"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
simple_ai: "简单电脑"
warmup: "热身"
vs: "对决"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
multiplayer_launch:
introducing_dungeon_arena: "介绍地下城竞技场"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
user_profile: "User Profile"
patches: "补丁"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -36,6 +36,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
nav:
play: "開始遊戲"
# community: "Community"
editor: "編輯"
blog: "官方部落格"
forum: "論壇"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
autosave: "自動保存修改"
me_tab: ""
picture_tab: "頭像"
# upload_picture: "Upload a picture"
wizard_tab: "巫師"
password_tab: "密碼"
emails_tab: "郵件"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
new_password_verify: "確認密碼"
email_subscriptions: "訂閱"
email_announcements: "通知"
# email_notifications: "Notifications"
email_notifications_description: "接收帳號通知"
email_announcements_description: "接收關於 CodeCombat 的新聞和開發消息。"
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "貢獻者電郵"
contribute_prefix: "我們在尋找志同道合的人!請到 "
contribute_page: "貢獻頁面"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
multiplayer_hint_label: "提示:"
multiplayer_hint: " 點擊全選,然後按 ⌘-C 或 Ctrl-C 複製連結。"
multiplayer_coming_soon: "請期待更多的多人關卡!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "指南"
tome_minion_spells: "助手的咒語"
tome_read_only_spells: "唯讀的咒語"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -1,4 +1,4 @@
module.exports = nativeDescription: "巫师吴语", englishDescription: "Wuu (Simplified)", translation:
module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplified)", translation:
common:
loading: "徕搭读取……"
# saving: "Saving..."
@ -36,6 +36,7 @@ module.exports = nativeDescription: "巫师吴语", englishDescription: "Wuu (Si
# nav:
# play: "Levels"
# community: "Community"
# editor: "Editor"
# blog: "Blog"
# forum: "Forum"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "巫师吴语", englishDescription: "Wuu (Si
# autosave: "Changes Save Automatically"
# me_tab: "Me"
# picture_tab: "Picture"
# upload_picture: "Upload a picture"
# wizard_tab: "Wizard"
# password_tab: "Password"
# emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "巫师吴语", englishDescription: "Wuu (Si
# new_password_verify: "Verify"
# email_subscriptions: "Email Subscriptions"
# email_announcements: "Announcements"
# email_notifications: "Notifications"
# email_notifications_description: "Get periodic notifications for your account."
# email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
# contributor_emails: "Contributor Class Emails"
# contribute_prefix: "We're looking for people to join our party! Check out the "
# contribute_page: "contribute page"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "巫师吴语", englishDescription: "Wuu (Si
# multiplayer_hint_label: "Hint:"
# multiplayer_hint: " Click the link to select all, then press ⌘-C or Ctrl-C to copy the link."
# multiplayer_coming_soon: "More multiplayer features to come!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
# guide_title: "Guide"
# tome_minion_spells: "Your Minions' Spells"
# tome_read_only_spells: "Read-Only Spells"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "巫师吴语", englishDescription: "Wuu (Si
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -697,3 +711,4 @@ module.exports = nativeDescription: "巫师吴语", englishDescription: "Wuu (Si
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -1,4 +1,4 @@
module.exports = nativeDescription: "巫師吳語", englishDescription: "Wuu (Traditional)", translation:
module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditional)", translation:
common:
loading: "徠搭讀取……"
saving: "徠搭存檔……"
@ -36,6 +36,7 @@ module.exports = nativeDescription: "巫師吳語", englishDescription: "Wuu (Tr
nav:
play: "遊戲開來"
# community: "Community"
editor: "編寫器"
blog: "部落格"
forum: "論壇"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "巫師吳語", englishDescription: "Wuu (Tr
autosave: "改動自動存檔"
me_tab: ""
picture_tab: "圖片"
# upload_picture: "Upload a picture"
wizard_tab: ""
password_tab: "密碼"
emails_tab: "電子信"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "巫師吳語", englishDescription: "Wuu (Tr
new_password_verify: "覈實"
email_subscriptions: "郵箱校對"
email_announcements: "通知"
email_notifications: "通知"
email_notifications_description: "收 爾賬號個定期通知。"
email_announcements_description: "收 有關 CodeCombat 個電子信。"
email_notifications: "通知"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
contributor_emails: "貢獻人個通知"
contribute_prefix: "我裏徠搭尋志同道合個人!請去到"
contribute_page: "貢獻頁面"
@ -209,7 +215,7 @@ module.exports = nativeDescription: "巫師吳語", englishDescription: "Wuu (Tr
play_level:
level_load_error: "箇關讀取弗出: "
done: "完成"
done: "妝下落"
grid: "格子"
customize_wizard: "自設定獻路人"
home: "主頁"
@ -223,7 +229,7 @@ module.exports = nativeDescription: "巫師吳語", englishDescription: "Wuu (Tr
reload_really: "準定轉讀取箇關,回轉到扣起頭?"
reload_confirm: "轉讀取全部"
victory_title_prefix: ""
victory_title_suffix: " 完成"
victory_title_suffix: "妝下落"
victory_sign_up: "存檔進度"
victory_sign_up_poke: "想存檔爾個代碼?造一個免費賬號起!"
victory_rate_the_level: "箇關評價:"
@ -233,13 +239,14 @@ module.exports = nativeDescription: "巫師吳語", englishDescription: "Wuu (Tr
victory_play_next_level: "下關"
victory_go_home: "轉到主頁"
victory_review: "搭我裏反應!"
victory_hour_of_code_done: "完成爻噃?"
victory_hour_of_code_done_yes: "正是, 完成爻!"
victory_hour_of_code_done: "妝下落爻噃?"
victory_hour_of_code_done_yes: "正是, 妝下落爻!"
multiplayer_title: "多人遊戲設定"
multiplayer_link_description: "畀箇個鏈接搭朋友家講,聚隊攪。"
multiplayer_hint_label: "提醒:"
multiplayer_hint: " 點牢全選,再捺 Apple-C蘋果電腦要勿 Ctrl-C 複製鏈接。"
multiplayer_coming_soon: "多人遊戲還多特性!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
guide_title: "指南"
tome_minion_spells: "下手個咒語"
tome_read_only_spells: "只讀個咒語"
@ -267,7 +274,7 @@ module.exports = nativeDescription: "巫師吳語", englishDescription: "Wuu (Tr
editor_config_indentguides_description: "顯示一條豎線讓縮進顯眼。"
# editor_config_behaviors_label: "Smart Behaviors"
editor_config_behaviors_description: "自動完成括號,大括號搭引號。"
loading_ready: "讀取完成"
loading_ready: "讀取下落"
tip_insert_positions: "用Shift+濟鍵來嵌進拼寫編寫器。"
tip_toggle_play: "用 Ctrl+P 暫停/繼續"
tip_scrub_shortcut: "用 Ctrl+[ 搭 Ctrl+] 倒退搭快進。"
@ -304,14 +311,14 @@ module.exports = nativeDescription: "巫師吳語", englishDescription: "Wuu (Tr
infinite_loop_comment_out: "爲我個代碼加註解"
admin:
av_title: "管理员视图"
av_entities_sub_title: "实体"
av_entities_users_url: ""
av_entities_active_instances_url: "动实例"
av_other_sub_title: "其他"
av_other_debug_base_url: "Base于调试 base.jade"
u_title: "列表"
lg_title: "最新的游戏"
av_title: "管理員角度"
av_entities_sub_title: "實體"
av_entities_users_url: ""
av_entities_active_instances_url: "動樣品"
av_other_sub_title: "別樣"
av_other_debug_base_url: "Base來調試 base.jade"
u_title: "列表"
lg_title: "最新個遊戲"
# clas: "CLAs"
# community:
@ -322,114 +329,114 @@ module.exports = nativeDescription: "巫師吳語", englishDescription: "Wuu (Tr
# gplus: "Google+"
editor:
main_title: "CodeCombat 编辑"
main_description: "建立你自己的关卡、 战役、单元和教育内容。我们会提供所有你需要的工具"
article_title: "示编辑"
article_description: "编写提示,让玩家可以使用编程概念来通过各种关卡和战役"
thang_title: "体编辑"
thang_description: "创建单元,并定义单元的逻辑、图形和音频。目前只支持导入 Flash 导出的矢量图形。"
level_title: "关卡编辑"
level_description: "所有用来创造所有难度的关卡的工具,包括脚本、上传音频和构建自定义逻辑"
main_title: "CodeCombat 編寫"
main_description: "造自己個關、仗、單元搭教育內容。我裏會提供所有用得着個傢伙"
article_title: "醒編寫"
article_description: "編寫提醒,讓攪個人好用編程概念來通關搭贏仗"
thang_title: "事編寫"
thang_description: "造單元,定寫單元個邏輯、圖像搭聲音。能界只支持導進用 Flash 導出個矢量圖形。"
level_title: "關編寫"
level_description: "所有用來做各個難度關個傢伙,包括腳本、上傳聲音搭自做邏輯"
# got_questions: "Questions about using the CodeCombat editors?"
contact_us: "联系我们"
hipchat_prefix: "你也可以在这里找到我们"
hipchat_url: "HipChat 房间"
back: "退"
revert: ""
revert_models: "原模式"
contact_us: "搭我裏聯繫"
hipchat_prefix: "爾徠搭也尋得着我裏"
hipchat_url: "HipChat"
back: "退"
revert: ""
revert_models: "原模式"
fork_title: "派生新版本"
fork_creating: "正在执行派生..."
more: "更多"
wiki: ""
live_chat: "在线聊天"
level_some_options: "哪些选项"
level_tab_thangs: ""
level_tab_scripts: ""
level_tab_settings: ""
level_tab_components: ""
level_tab_systems: ""
level_tab_thangs_title: "目前所有物体"
fork_creating: "徠搭執行派生..."
more: "無數"
wiki: ""
live_chat: "上線白嗒"
level_some_options: "解某條目"
level_tab_thangs: ""
level_tab_scripts: ""
level_tab_settings: ""
level_tab_components: ""
level_tab_systems: ""
level_tab_thangs_title: "能界所有物事"
level_tab_thangs_all: "所有"
level_tab_thangs_conditions: "启动条"
level_tab_thangs_add: "增加物体"
delete: ""
duplicate: "复制"
level_settings_title: "设置"
level_component_tab_title: "目前所有组"
level_component_btn_new: "创建新的组"
level_systems_tab_title: "目前所有系统"
level_systems_btn_new: "创建新的系统"
level_systems_btn_add: "增加系统"
level_components_title: "返回到所有物体主页"
level_components_type: ""
level_component_edit_title: "编辑组"
level_tab_thangs_conditions: "發動條"
level_tab_thangs_add: "加物事"
delete: ""
duplicate: "翻做"
level_settings_title: "設定"
level_component_tab_title: "能界所有組"
level_component_btn_new: "造新個組"
level_systems_tab_title: "能界所有系統"
level_systems_btn_new: "造新系統"
level_systems_btn_add: "加系統"
level_components_title: "轉到所有物事主頁"
level_components_type: ""
level_component_edit_title: "編寫組"
level_component_config_schema: "配置模式"
level_component_settings: "设置"
level_system_edit_title: "编辑系统"
create_system_title: "创建新的系统"
new_component_title: "创建新的组"
new_component_field_system: ""
new_article_title: "创建一个新物品"
new_thang_title: "创建一个新物品类"
new_level_title: "创建一个新关卡"
level_component_settings: "設定"
level_system_edit_title: "改寫系統"
create_system_title: "造新系統"
new_component_title: "造新組"
new_component_field_system: ""
new_article_title: "造新物事"
new_thang_title: "造新物事類"
new_level_title: "造新關數"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
article_search_title: "在这里搜索物品"
thang_search_title: "在这里搜索物品类"
level_search_title: "在这里搜索关卡"
read_only_warning2: "示:你不能保存任何编辑,因为你没有登陆"
article_search_title: "徠箇搭尋物事"
thang_search_title: "徠箇搭尋物事類"
level_search_title: "徠箇搭尋關"
read_only_warning2: "醒:爾嘸處存編寫,朆登進之故"
article:
edit_btn_preview: "预览"
edit_btn_preview: "試望"
edit_article_title: "编辑提示"
general:
and: ""
and: ""
name: "名字"
body: "正文"
version: "版本"
commit_msg: "提交"
version_history: "版本"
version_history_for: "版本史: "
result: ""
results: ""
commit_msg: "提交"
version_history: "版本"
version_history_for: "版本史: "
result: ""
results: ""
description: "描述"
or: ""
subject: ""
email: "邮件"
password: ""
message: ""
code: ""
ladder: "级比赛"
when: ""
opponent: ""
rank: ""
score: ""
win: "胜利"
loss: "失败"
tie: ""
easy: "容易"
medium: "中等"
hard: "困难"
player: "玩家"
or: "要勿"
subject: "題目頭"
email: "郵箱"
password: ""
message: ""
code: ""
ladder: "級比賽"
when: ""
opponent: ""
rank: ""
score: ""
win: "贏爻"
loss: "輸爻"
tie: ""
easy: "省力"
medium: "公道"
hard: "煩難"
player: "來個人"
about:
who_is_codecombat: "什么是 CodeCombat?"
why_codecombat: "为什么选择 CodeCombat?"
who_description_prefix: "在 2013 年开始一起编写 CodeCombat。在 2008 年时,我们还创造"
who_description_suffix: "并且发展出了开发中文和日文的 Web 和 IOS 应用的首选教程"
who_description_ending: "现在是时候教人们如何写代码了"
why_paragraph_1: "当我们制作 Skritter 时George 还不会写程序,对于不能实现他的灵感这一点很苦恼。他试着学了学,但那些课程都太慢了。他的室友不想通过教材学习新技能,试了试 CodeAcademy但是觉得“太无聊了。”每星期都会有个熟人尝试 CodeAcademy然后无一例外地放弃掉。我们发现这和 Skritter 想要解决的是一个问题:人们想要的是高速学习、充分练习,得到的却是缓慢、冗长的课程。我们知道该怎么办了"
why_paragraph_2: "你想学编程?你不用上课。你需要的是写好多代码,并且享受这个过程"
why_paragraph_3_prefix: "这才是编程的要义。编程必须要好玩。不"
why_paragraph_3_italic: "又一个奖章诶"
why_paragraph_3_center: "那种“好玩”,而"
why_paragraph_3_italic_caps: "妈,我得先把这关打完"
why_paragraph_3_suffix: "这就是为什么 CodeCombat 是个多人游戏,而不是一个游戏化的编程课。你不停,我们就不停——但这次这是件好事"
why_paragraph_4: "如果你一定要对游戏上瘾,那就对这个游戏上瘾,然后成为科技时代的法师吧"
why_ending: "说,这游戏还是免费的"
why_ending_url: "开始学习法术"
who_is_codecombat: "何某是 CodeCombat"
why_codecombat: "爲何某選 CodeCombat"
who_description_prefix: "徠 2013 年開始聚隊寫 CodeCombat。徠 2008 年朞,我裏還做起"
who_description_suffix: "搭發展出中文搭日文個 Web 搭 IOS 应用個首選教程"
who_description_ending: "瑲朞到鐘點教大家人怎兒寫代碼爻"
why_paragraph_1: "我裏做 Skritter 朞George 程序還要弗得寫,渠實現弗了渠個靈感箇點猴難過個。渠試試學學相,不過許課程都忒慢爻。渠個同寢室間朋友弗想用教材來學新技能,嚇試一記 CodeAcademy咦覺得“忒嘸較話爻。”個加個星期都會有個熟人試 CodeAcademy也都嘸一個意外個全部歇爻。我裏發現箇搭 Skritter 想要解決個是同個問題:人家想快速學、練殺甲,學個反到咦慢、咦長個課。我裏曉得怎兒妝爻"
why_paragraph_2: "爾想學編程?課甮上。只講代碼多點寫寫,寫無數,還猴中意寫,寫功味道"
why_paragraph_3_prefix: "箇正是編程個要旨。編程佩要攪功好。勿"
why_paragraph_3_italic: ",咦一個獎牌啊"
why_paragraph_3_center: "箇種“攪功”,"
why_paragraph_3_italic_caps: "孃,我畀箇關打過去爻起"
why_paragraph_3_suffix: "箇佩是爲解某 CodeCombat 是一個多人遊戲,勿是一個遊戲化個編程課。爾弗停,我裏佩𣍐停——不過此垡樣事幹是好個"
why_paragraph_4: "空是講爾佩一念起打遊戲,箇勿念箇遊戲,變至科技時代個法師替"
why_ending: "講,箇遊戲還免費湊"
why_ending_url: "法術開學起"
# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
@ -438,153 +445,153 @@ module.exports = nativeDescription: "巫師吳語", englishDescription: "Wuu (Tr
# glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that matter. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
legal:
page_title: ""
opensource_intro: "CodeCombat 是一个自由发挥,完全开源的项目。"
opensource_description_prefix: "查看 "
github_url: "们的 GitHub"
opensource_description_center: "并做你想做的修改吧CodeCombat 是构筑在几十个开源项目之上的,我们爱它们。请查阅"
archmage_wiki_url: "们 大法师的维基页"
opensource_description_suffix: " 看看是哪些人让这个游戏成为可能."
practices_title: "尊重最佳实践"
practices_description: "这是我们对您的承诺,即玩家,尽管这在法律用语中略显不足"
privacy_title: ""
privacy_description: "们不会出售您的任何个人信息。我们计划最终通过招聘来盈利,但请您放心,未经您的明确同意,我们不会将您的个人信息出售有兴趣的公司。"
page_title: ""
opensource_intro: "CodeCombat 是一個候自發揮,整個開源個項目。"
opensource_description_prefix: " "
github_url: "裏個 GitHub"
opensource_description_center: "做爾想做個改動嘈CodeCombat 是起徠幾十個開源項目上向,我裏中意渠裏。望"
archmage_wiki_url: "裏 大法師個維基頁"
opensource_description_suffix: " 望望相哪許人讓箇個遊戲有可能。"
practices_title: "尊重最讚真做"
practices_description: "箇是我裏對爾個保證,也佩是攪個人,徠法律用語裏向望起扣搭弗足相"
privacy_title: ""
privacy_description: "裏弗會畀爾個任何情報賣爻。我裏划算最後用招聘來得利,爾也放心,空是爾朆明确講肯,我裏弗會畀爾個私人情報賣畀有意個公司。"
security_title: "安全"
security_description: "们竭力保证您的个人信息安全性。作为一个开源项目,任何人都可以检讨并改善我们自由开放的网站的安全性"
email_title: "电子邮件"
email_description_prefix: "们不会发给您垃圾邮件。通过"
email_settings_url: "您的电子邮件设置"
email_description_suffix: "或者我们发送的邮件中的链接,您可以随时更改您的偏好设置或者随时取消订阅"
cost_title: ""
cost_description: "目前来说CodeCombat 是完全免费的!我们的主要目标之一也是保持目前这种方式,让尽可能多的人玩得更好,不论是否是生活中。如果天空变暗,我们可能会对某些内容采取订阅收费,但我们宁愿不那么做。运气好的话,我们可以维持公司,通过"
recruitment_title: ""
recruitment_description_prefix: "在 CodeCombat 这里,你将得以成为一名法力强大的“巫师”,不只是在游戏中,更在生活中"
url_hire_programmers: "没有人能以足够快速度招聘程序员"
recruitment_description_suffix: "所以一旦你的技能成熟并且得到你的同意,我们将战士你的最佳编码成就给上万名雇主,希望他们垂涎欲滴。而他们支付给我们一点点报酬,并且付给你工资"
recruitment_description_italic: "“一大"
recruitment_description_ending: "而这网站也就能保持免费,皆大欢喜。计划就是这样"
copyrights_title: "权与许"
contributor_title: "贡献者许可协议"
contributor_description_prefix: "所有对本网站或是 GitHub 代码库的贡献都依照我们的"
cla_url: "贡献者许可协议CLA"
contributor_description_suffix: "而这在您贡献之前就应该已经同意"
code_title: " - MIT"
code_description_prefix: "所有由 CodeCombat 拥有或是托管在 codecombat.com 的代码,在 GitHub 版本库或者 codecombat.com 数据库,以上许可协议都依"
mit_license_url: "MIT 许可证"
code_description_suffix: "这包括所有 CodeCombat 公开的制作关卡用的系统和组件代码"
art_title: "美术和音乐 - Creative Commons"
art_description_prefix: "所有共通的内容都在"
security_description: "裏儘話保證爾個個人隱私安全。當開源項目,管感爾都好檢查搭改進我裏自由開放個網站個安全"
email_title: "電子郵箱"
email_description_prefix: "裏𣍐發垃圾信畀爾個。只要"
email_settings_url: "設定爾個電子郵箱"
email_description_suffix: "要勿我裏發畀爾個信裏向有鏈接爾随低2都好改偏向設定要勿取消訂閱"
cost_title: ""
cost_description: "目前來講CodeCombat 是全個免費個!我裏個大目標之一也是保持目前箇種方式,讓越多越好個人攪功還好,弗管是弗是生活裏向。空把天黯落來,我裏嘸數會畀訂一許內容收費,不過我裏能可弗馨妝。運道好個話,我裏好開公司,通過"
recruitment_title: "兵買馬"
recruitment_description_prefix: "來 CodeCombat 搭,爾會變做一個法力高強個“巫師”,弗單單徠遊戲裏,來生活當中也是"
url_hire_programmers: "嘸人招程序員有得快爻"
recruitment_description_suffix: "怪得只講爾手藝讚起爻咦經過爾同意,我裏會畀爾最好個編碼成果畀講萬個僱主望,希望渠裏眼紅。渠裏解眼功夫鈿畀我裏,薪水發畀爾"
recruitment_description_italic: "“一大"
recruitment_description_ending: "箇網站也佩好一直免費,兩門進。划算佩馨寧"
copyrights_title: "權搭許"
contributor_title: "貢獻者許可協議"
contributor_description_prefix: "所有對本網站要勿 GitHub 代碼庫個努力都照我裏個"
cla_url: "貢獻者許可協議CLA"
contributor_description_suffix: "爾徠貢獻之前箇佩應該同意爻個"
code_title: " - MIT"
code_description_prefix: "所有 CodeCombat 個個要勿囥 codecombat.com 託管個代碼,徠 GitHub 版本庫要勿 codecombat.com 數據庫裏,以上許可協議都"
mit_license_url: "MIT 許可證"
code_description_suffix: "箇包括所有 CodeCombat 公開個做關用個系統搭組件代碼"
art_title: "圖畫搭音樂 - Creative Commons"
art_description_prefix: "所有共通個內容都徠"
# cc_license_url: "Creative Commons Attribution 4.0 International License"
art_description_suffix: "条款下公开。共通内容是指所有 CodeCombat 发布出来用于制作关卡的内容。这包括:"
art_music: ""
art_sound: "声效"
art_artwork: "图画"
art_sprites: ""
art_other: "所有制作关卡时公开的,不是代码的创造性产品。"
art_access: "目前还没有简便通用的下载素材的方式。一般来讲从网站上使用的URL下载或者联系我们寻找帮助。当然你也可以帮我们扩展网站让这些资源更容易下载"
art_paragraph_1: "关于署名,请说明并在使用处附近,或对媒体形式来说合适的地方提供一个 codecombat.com 的链接。举例"
use_list_1: "如果是用在电影里或者其他游戏里,请在制作人员表中加入 codecombat.com 。"
use_list_2: "如果用在网站上,将链接在使用的地方附近,比如图片下面,或者一个你放置其他 Creative Commons 署名和开源软件协议的专门页面。如果你的内容明确提到关于 CodeCombat那你就不需要额外署名。"
art_paragraph_2: "如果你使用的内容不是由 CodeCombat 制作,而是由 codecombat.com 上其他的用户制作的,那你应该给他们署名。如果相应资源的页面上有署名指示,那你应该遵循那些指示"
rights_title: "所有"
rights_desc: "所有关卡由他们自己版权所有。这包括"
rights_scripts: ""
rights_unit: "元配置"
art_description_suffix: "條款下公開。共通內容是講所有 CodeCombat 發佈出用來做關個內容。許包括:"
art_music: ""
art_sound: "聲音"
art_artwork: "圖像"
art_sprites: ""
art_other: "所有做關到公開個,弗是代碼個創造性產品。"
art_access: "目前还嘸省便、通用個下載素材個方法。一般來講從網站裏用個URL來下載要勿搭我裏聯繫幫爾。爾也好幫我裏豐富網站讓許資源下載還要方便"
art_paragraph_1: "有關署名,用個邊裏寫明,要勿合适個蕩地有 codecombat.com 個鏈接。比方"
use_list_1: "空是囥電影裏要勿各許遊戲裏用,要僵製作人員表裏頭加上 codecombat.com 。"
use_list_2: "空是徠網站裏用,畀鏈接徠用個蕩地邊裏,比方圖片下底,要勿一個囥各許 Creative Commons 署名搭開源軟件協議個趕清頁面。空是爾個內容裏明文誦着 CodeCombat箇勿甮另外署名。"
art_paragraph_2: "空是爾用個內容勿是 CodeCombat 做個,是 codecombat.com 上向各許用戶做個,爾應該爲渠裏署名。空是對應個資源頁面裏有署名提醒爻,爾應當照提醒做"
rights_title: "所有"
rights_desc: "所有關數照渠裏自己個版權所有。包括"
rights_scripts: ""
rights_unit: "元配置"
rights_description: "描述"
rights_writings: "作品"
rights_media: "声音、音乐以及其他专门为某个关卡制作,而不对其他关卡开放的创造性内"
rights_clarification: "澄清所有在关卡编辑器里公开用于制作关卡的资源都是在CC协议下发布的而使用关卡编辑器制作或者在关卡制作过程中上传的内容则不是"
nutshell_title: "简而言之"
nutshell_description: "们在关卡编辑器里公开的任何资源,你都可以在制作关卡时随意使用,但我们保留限制在 codecombat.com 之上创建的关卡本身传播的权利,因为我们以后可能决定为它们收费"
canonical: "这篇说明的英文版本是权威版本。如果各个翻译版本之间有任何冲突,以英文版为准"
rights_media: "声音、音樂搭各許專門爲獨關做,弗對別關開放個創造性內"
rights_clarification: "講清爽所有徠關編寫器裏公開用來做關個資源都是徠CC協議下發佈個用關編輯器做個要勿徠做關過程當中傳上來個內容勿是徠CC協議下發佈"
nutshell_title: "省講佩是"
nutshell_description: "裏徠關編寫器裏公開個所有資源,做關到都候爾用,不過我裏保留限制 codecombat.com 上向所造各關傳播個權利,因爲我裏轉日嘸數畀箇許關數收鈔票"
canonical: "箇篇講明個英文版是權威版本。空是各許翻譯版本對弗牢,照英文版裏講個算數"
contribute:
page_title: "贡献"
character_classes_title: "贡献者职业"
introduction_desc_intro: "们对 CodeCombat 有很高的期望"
introduction_desc_pref: "们希望所有的程序员一起来学习和游戏,让其他人也见识到代码的美妙,并且展现出社区的最好一面。我们无法, 而且也不想独自完成这个目标:你要知道, 让 GitHub、Stack Overflow 和 Linux 真正伟大的是它们的用户。为了完成这个目标"
introduction_desc_github_url: "们把 CodeCombat 完全开"
introduction_desc_suf: "而且我们希望提供尽可能多的方法让你来参加这个项目,与我们一起创造。"
introduction_desc_ending: "们希望你也能一起加入进来"
introduction_desc_signature: "- Nick, George, Scott, Michael, Jeremy 以及 Glen"
alert_account_message_intro: "好!"
alert_account_message_pref: "要订阅贡献者邮件,你得先"
page_title: "貢獻"
character_classes_title: "貢獻者職業"
introduction_desc_intro: "裏對 CodeCombat 個希望大險"
introduction_desc_pref: "裏希望所有個程序員聚隊趒來學學嬉戲,遊戲打打,讓各許人也見識到代碼個意思,展示社區最好個一面。我裏要弗得,也弗想單獨達成箇目標:爾要曉得, 讓 GitHub、Stack Overflow 搭 Linux 真當性本事是渠裏個用戶。爲達成箇目標"
introduction_desc_github_url: "裏畀 CodeCombat 整個開"
introduction_desc_suf: "我裏也希望提供越多越好個方法讓爾參加箇項目,搭我裏聚隊造。"
introduction_desc_ending: "裏希望爾也聚隊加進來"
introduction_desc_signature: "- Nick, George, Scott, Michael, Jeremy Glen"
alert_account_message_intro: "好!"
alert_account_message_pref: "想訂貢獻者信,爾要先頭"
alert_account_message_suf: ""
alert_account_message_create_url: "创建账号"
archmage_summary: "你对游戏图像、界面设计、数据库和服务器运营、多人在线、物理、声音、游戏引擎性能感兴趣吗?想做一个教别人编程的游戏吗?如果你有编程经验,想要开发 CodeCombat ,那就选择这个职业吧。我们会非常高兴在制作史上最棒编程游戏的过程中得到你的帮助"
archmage_introduction: "制作游戏时,最令人激动的事莫过于整合诸多东西。图像、音响、实时网络交流、社交网络,从底层数据库管理到服务器运维,再到用户界面的设计和实现。制作游戏有很多事情要做,所以如果你有编程经验, 那么你应该选择这个职业。我们会很高兴在制作史上最好编程游戏的路上有你的陪伴."
class_attributes: "职业说"
archmage_attribute_1_pref: ""
archmage_attribute_1_suf: "或者想要学习。我们的多数代码都是用它写就的。如果你喜欢 Ruby 或者 Python那你肯定会感到很熟悉。它就是 JavaScript但它的语法更友好"
archmage_attribute_2: "编程经验和干劲。我们可以帮你走上正规,但恐怕没多少时间培训你"
how_to_join: "如何加入"
join_desc_1: "谁都可以加入!先看看我们的"
join_desc_2: "然后勾选下面的复选框,这样你就会作为勇敢的大法师收到我们的电邮。如果你想和开发人员聊天或者更深入地参与,可以 "
join_desc_3: " 或者去我们的"
join_desc_4: "然后我们有话好说"
join_url_email: "给我们发邮件"
join_url_hipchat: " HipChat 聊天室"
more_about_archmage: "了解如何成为一名大法师"
archmage_subscribe_desc: "通过电子邮件获得新的编码机会和公告。"
artisan_summary_pref: "要设计 CodeCombat 的关卡吗人们玩的比我们做的快多了现在我们的关卡编辑器还很基本所以做起关卡来会有点麻烦还会有bug。只要你有制作关卡的灵感不管是简单的for循环还"
artisan_summary_suf: "这种东西,这个职业都很适合你"
alert_account_message_create_url: "做賬號"
archmage_summary: "爾對遊戲圖像、界面設計、數據庫搭服務器運行、多人徠線、物理、聲音、遊戲引擎性能許感興趣噃?想做一個教別人編程個遊戲噃?空是爾有編程經驗,想開發 CodeCombat ,箇勿職業揀箇去。我裏候快活個,徠造“史上最讚個編程遊戲”個過程當中有爾個幫襯"
archmage_introduction: "做遊戲到,最激動個弗朝佩是拼合無數物事。圖像、音樂、實時網際通信、社交網絡,從底層數據庫管理到服務器運行維護,再到用戶界面個設計搭實現。造遊戲有無數事幹要捉拾,怪得空是爾有編程經驗,箇勿爾應該揀箇個職業。我裏猴高興來造“史上最讚個編程遊戲”條路裏搭爾佐隊。"
class_attributes: "職業講"
archmage_attribute_1_pref: ""
archmage_attribute_1_suf: "要勿想學。我裏個上架代碼都是用渠寫起個。空是爾中意 Ruby 要勿 Python爾坐可會覺得熟險。渠佩是 JavaScript不過渠個語法好懂點"
archmage_attribute_2: "編程經驗搭做勁。我裏幫得到畀爾帶進正道,不過只䁨嘸多少時間訓練爾"
how_to_join: "怎兒加進"
join_desc_1: "咸爾都好加!先頭望望相我裏個"
join_desc_2: "再畀下底個多選框勾起,勾起佩會當勇敢個大法師收得到我裏個電子信。空是爾想搭開發人員白嗒要勿入心參加,好 "
join_desc_3: " 要勿到我裏個"
join_desc_4: "嚇我裏有較慢慢講"
join_url_email: "發信畀我裏"
join_url_hipchat: " HipChat 白嗒間"
more_about_archmage: "瞭解怎兒當大法師"
archmage_subscribe_desc: "用電子郵箱收新個編碼機會搭公告。"
artisan_summary_pref: "做 CodeCombat 個關人家攪個比我裏做個快無數啊能界我裏個關編寫器還猴基本做關做做還一粒煩難還會有bug。只講爾有做關個想法管簡單個for循環也"
artisan_summary_suf: "許物事,箇個職業都搭爾猴相配個"
# artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to"
# artisan_introduction_suf: ", then this class might be for you."
# artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!"
# artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix."
# artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!"
# artisan_join_desc: "Use the Level Editor in these steps, give or take:"
artisan_join_step1: "阅读文档."
artisan_join_step2: "创建一个新关卡 以及探索已经存在的关卡."
artisan_join_step3: "来我们的 HipChat 聊天室寻求帮助."
artisan_join_step4: "吧你的关卡发到论坛让别人给你评价."
more_about_artisan: "了解如何成为一名工匠"
artisan_subscribe_desc: "通过电子邮件获得关卡编辑器更新和公告"
adventurer_summary: "丑话说在前面,你就是那个挡枪子的,而且你会伤得很重。我们需要人手来测试崭新的关卡,并且提出改进意见。做一个好游戏是一个漫长的过程,没人第一次就能搞对。如果你能忍得了这些,而且身体健壮,那这个职业就是你的了"
artisan_join_step1: "獨文檔。"
artisan_join_step2: "做新關 搭打有個關數。"
artisan_join_step3: "趒我裏個 HipChat 白嗒間來尋幫手。"
artisan_join_step4: "畀爾個關發論壇讓別人畀爾評評。"
more_about_artisan: "瞭解怎兒當泥水"
artisan_subscribe_desc: "用電子郵箱收關編寫器個新消息"
adventurer_summary: "講講難聽點,爾佩是擋箭牌,還會傷殺甲險。我裏喫人試驗新關,再提提改進意見。做好個遊戲喫長久險個,嘸人頭一垡佩下落。空是爾熬得牢,人山板扎,箇職業註牢爾當"
# adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you."
# adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though."
# adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve."
# adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like"
adventurer_forum_url: "们的论坛"
adventurer_join_suf: "如果你更喜欢以这些方式被通知, 那就注册吧!"
more_about_adventurer: "了解如何成为一名冒险"
adventurer_subscribe_desc: "通过电子邮件获得新关卡通知"
scribe_summary_pref: "CodeCombat 不只是一堆关卡的集合,它还是玩家们编程知识的来源。这样的话,每个工匠都能链接详尽的文档,以供玩家们学习,类似于"
scribe_summary_suf: "那些。如果你喜欢解释编程概念,那么这个职业很适合你"
adventurer_forum_url: "裏個論壇"
adventurer_join_suf: "空是爾值得馨寧個方式得到通知, 箇勿註冊來!"
more_about_adventurer: "瞭解怎兒當冒險"
adventurer_subscribe_desc: "用電子郵箱收出新關消息"
scribe_summary_pref: "CodeCombat 弗是單單整堆頭關數撞來,渠還是攪個人編程知識個來源。馨個話,個加個泥水人都好鏈接到詳細個文檔,畀攪遊戲個人學學,扣搭 "
scribe_summary_suf: "向。空是爾中意解釋編程個概念,箇勿箇職業爾猴合身個"
# scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the "
scribe_introduction_url_mozilla: "Mozilla 开发者社区"
scribe_introduction_url_mozilla: "Mozilla 開發人社區"
# scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you."
# scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others."
contact_us_url: "联系我们"
scribe_join_description: "介绍一下你自己, 比如你的编程经历和你喜欢写什么东西, 我们将从这里开始了解你!!"
more_about_scribe: "了解如何成为一名文书"
scribe_subscribe_desc: "通过电子邮件获得写作新文档的通知。"
contact_us_url: "聯繫我裏"
scribe_join_description: "爾自己介紹記, 比方爾個編程經歷搭中意寫個物事,我裏會從搭開始畀爾瞭解!"
more_about_scribe: "瞭解怎兒當文書"
scribe_subscribe_desc: "用電子郵箱收寫新文檔個通知。"
diplomat_summary: "無數國家弗講英語,不過許人也對 CodeCombat 興致頭高險!我裏需要有熱情個翻譯人,畀箇網站裏個文字儘話快速傳到全世界。假使爾想幫我裏傳播全球,箇勿箇職業適合爾。"
diplomat_introduction_pref: "空是講我裏從"
diplomat_launch_url: "十月個發佈"
diplomat_introduction_suf: "裏向得到解某啓發:佩是全世界個人都對 CodeCombat 興致頭高險。我们召集了一群翻译者,尽快地把网站上的信息翻译成各国文字。如果你对即将发布的新内容很感兴趣,想让你的国家的人们玩上,就快来成为外交官吧"
diplomat_attribute_1: "既会说流利的英语,也熟悉自己的语言。编程是一件很复杂的事情,而要翻译复杂的概念,你必须对两种语言都在行"
diplomat_join_pref_github: ""
diplomat_introduction_suf: "裏向得到解某啓發:佩是全世界個人都對 CodeCombat 興致頭高險。我裏籠來一陣翻譯人,儘話快速畀網站裏個訊息翻譯成各地文字。空是爾對發佈新個內容有興趣,想讓爾個國土裏個人也來攪,快點趒來當外交官"
diplomat_attribute_1: "英語順溜,自己個話也熟。編程是猴煩難個事幹,翻譯囉唆個概念,爾也喫得兩種話都內照"
diplomat_join_pref_github: ""
diplomat_github_url: " GitHub "
diplomat_join_suf_github: "找到你的语言文件 (中文的是: codecombat/app/locale/zh-HNAS.coffee),在线编辑它,然后提交一个合并请求。同时,选中下面这个复选框来关注最新的国际化开发"
more_about_diplomat: "了解如何成为一名外交官"
diplomat_subscribe_desc: "受有关国际化开发和翻译情况的邮件"
ambassador_summary: "们要建立一个社区,而当社区遇到麻烦的时候,就要支持人员出场了。我们运用 IRC、电邮、社交网站等多种平台帮助玩家熟悉游戏。如果你想帮人们参与进来学习编程然后玩的开心那这个职业属于你"
ambassador_introduction: "这是一个正在成长的社区而你将成为我们与世界的联结点。大家可以通过Olark即时聊天、邮件、参与者众多的社交网络来认识了解讨论我们的游戏。如果你想帮助大家尽早参与进来、获得乐趣、感受CodeCombat的脉搏、与我们同行那么这将是一个适合你的职业"
ambassador_attribute_1: "有出色的沟通能力。能够辨识出玩家遇到的问题并帮助他们解决这些问题。与此同时,和我们保持联系,及时反馈玩家的喜恶和愿望"
ambassador_join_desc: "介绍一下你自己:你做过什么?你喜欢做什么?我们将从这里开始了解你"
diplomat_join_suf_github: "尋着爾個語言文件 (吳語是: codecombat/app/locale/zh-WUU-HANT.coffee),徠線編寫渠,隨底提交一個合併請求。同時,選牢下底箇個多選框關注最新個國際化開發"
more_about_diplomat: "瞭解如何當外交官"
diplomat_subscribe_desc: "收國際化開發搭翻譯情況個信"
ambassador_summary: "裏要起一個社區,社區碰着囉唆事幹個時候,佩要支持人員上馬爻。我裏用 IRC、电子信、社交網站許各方平臺幫助攪箇遊戲個人熟悉箇遊戲。空是爾想幫人家參加進來學編程攪得高興馨箇職業佩爾個"
ambassador_introduction: "箇是一個起頭個社區爾也會變成我裏搭世界聯結個點。大家人都好用Olark隨底白嗒、發信、参加個人無數個社交網絡來認識瞭解討論我裏個遊戲。空是爾想幫助大家人快點加進來、攪攪意思、感受CodeCombat個脈搏、搭我裏聚隊箇勿箇佩適合爾來做"
ambassador_attribute_1: "搭人家溝通本事好。識別得出攪個人碰着個問題,幫渠裏解決許問題。同時,搭我裏保持聯繫,及時反映攪個人哪搭中意弗中意、所望有解某"
ambassador_join_desc: "自己介紹記:爾解某做過爻?解某中意做?我裏從箇搭開始畀爾瞭解"
# ambassador_join_note_strong: "Note"
# ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!"
more_about_ambassador: "了解如何成为一名使节"
ambassador_subscribe_desc: "通过电子邮件获得支持系统的现状,以及多人游戏方面的新进展"
counselor_summary: "以上的职业都不适合你?没关系,我们欢迎每一个想参与 CodeCombat 开发的人!如果你熟悉教学、游戏开发、开源管理,或者任何你觉得和我们有关的方面,那这个职业属于你"
counselor_introduction_1: "也许你有人生的经验,也许你对 CodeCombat 的发展有独特的观点。在所有这些角色中,这个角色花费的时间可能最少,但作为个人你的价值却最高。我们在寻找各方面的贤人,尤其是在教学、游戏开发、开源软件管理、技术企业招聘、创业或者设计方面的"
counselor_introduction_2: "任何和 CodeCombat 的开发有关系的又可以。如果你有知识,并且希望分享给我们,帮这个项目成长,那这个职业属于你"
counselor_attribute_1: "经验。上述的任何领域,或者你认为对我们有帮助的领域"
counselor_attribute_2: "点用来谈笑风生的时间"
counselor_join_desc: "向我们介绍以下你自己:你做过什么、对什么有兴趣。当我们需要你的建议的时候,我们会联系你的(不会很经常)。"
more_about_counselor: "了解如何成为一名顾问"
changes_auto_save: "在你勾选复选框后,更改将自动保存"
more_about_ambassador: "瞭解怎兒當使節"
ambassador_subscribe_desc: "用電子郵箱收 支持系統個情況,搭多人遊戲方面個新情況"
counselor_summary: "上向許職業都弗中意?嘸較相干,我裏歡迎所有想參加 CodeCombat 開發個人!空是爾對教學、遊戲開發、開源管理方面許熟,要勿管哪許爾覺得搭我裏有相干個方面,箇勿箇職業適合爾"
counselor_introduction_1: "嘸數爾有人生個經驗,也嘸數爾對 CodeCombat 個發展有自己特別個想法。徠所有箇許角色裏向,箇角色用個時間嘸數最少,不過以個人個角度爾個价值頂高。我裏徠搭尋各方面個能人,特別是教學、遊戲開發、開源軟件開發管理、技術企業招人、創業要勿設計方面個"
counselor_introduction_2: "管解某,只講搭 CodeCombat 個開發搭界個都好用。空是爾有知識,咦想搭我裏搭搭,幫箇項目大起,箇職業適合爾"
counselor_attribute_1: "經驗。上向所講個管哪個方面,要勿爾覺得對我裏有用場個方面"
counselor_attribute_2: "眼用來講講笑笑個時間"
counselor_join_desc: "搭我裏介紹記:爾做過解某、對何某有興趣。我裏需要爾個建議到會搭爾聯繫個(弗道道)。"
more_about_counselor: "瞭解怎兒當顧問"
changes_auto_save: "多選框勾起之後,改動會自動存檔"
diligent_scribes: "我裏勤力個文書:"
powerful_archmages: "我裏強力個大法師:"
creative_artisans: "我裏有頭路個泥水人:"
@ -595,7 +602,7 @@ module.exports = nativeDescription: "巫師吳語", englishDescription: "Wuu (Tr
classes:
archmage_title: "大法師"
archmage_title_description: "(寫代碼個人)"
artisan_title: "泥水"
artisan_title: "泥水"
artisan_title_description: "(做關造關人)"
adventurer_title: "冒險家"
adventurer_title_description: "(闖關測試人)"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "巫師吳語", englishDescription: "Wuu (Tr
simple_ai: "省力腦子"
warmup: "熱身"
vs: "對打"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
multiplayer_launch:
introducing_dungeon_arena: "介紹地下城競技場"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "巫師吳語", englishDescription: "Wuu (Tr
user_profile: "User Profile"
patches: "補丁"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -17,7 +17,7 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra
retry: "重试"
# watch: "Watch"
# unwatch: "Unwatch"
# submit_patch: "Submit Patch"
submit_patch: "提交补丁"
units:
second: ""
@ -36,6 +36,7 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra
nav:
play: ""
community: "社区"
editor: "编辑"
blog: "博客"
forum: "论坛"
@ -52,7 +53,7 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra
versions:
save_version_title: "保存新版本"
new_major_version: "最新主要版本"
# cla_prefix: "To save changes, first you must agree to our"
cla_prefix: "要保存更改, 首先你必须要统一我们的"
# cla_url: "CLA"
# cla_suffix: "."
cla_agree: "我同意"
@ -60,7 +61,7 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra
login:
sign_up: "注册"
log_in: "登录"
# logging_in: "Logging In"
logging_in: "登录中..."
log_out: "登出"
recover: "找回账户"
@ -77,7 +78,7 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra
creating: "账户在创新中"
sign_up: "注册"
log_in: "以密码登录"
# social_signup: "Or, you can sign up through Facebook or G+:"
social_signup: "或者, 你可以通过Facebook 或者 G+ 注册:"
home:
slogan: "通过游戏学习Javascript脚本语言"
@ -129,21 +130,21 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra
# learn_more: "Learn more about being a Diplomat"
# subscribe_as_diplomat: "Subscribe as a Diplomat"
# wizard_settings:
# title: "Wizard Settings"
# customize_avatar: "Customize Your Avatar"
# active: "Active"
# color: "Color"
# group: "Group"
# clothes: "Clothes"
# trim: "Trim"
# cloud: "Cloud"
# team: "Team"
# spell: "Spell"
# boots: "Boots"
# hue: "Hue"
# saturation: "Saturation"
# lightness: "Lightness"
wizard_settings:
title: "巫师设定"
customize_avatar: "设置你的头像"
active: "启用"
color: "颜色"
group: "类别"
clothes: "衣服"
trim: "条纹"
cloud: ""
team: "队伍"
spell: "魔法球"
boots: "鞋子"
hue: "色彩"
saturation: "饱和度"
lightness: "亮度"
# account_settings:
# title: "Account Settings"
@ -151,6 +152,7 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra
# autosave: "Changes Save Automatically"
# me_tab: "Me"
# picture_tab: "Picture"
# upload_picture: "Upload a picture"
# wizard_tab: "Wizard"
# password_tab: "Password"
# emails_tab: "Emails"
@ -160,9 +162,13 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra
# new_password_verify: "Verify"
# email_subscriptions: "Email Subscriptions"
# email_announcements: "Announcements"
# email_notifications: "Notifications"
# email_notifications_description: "Get periodic notifications for your account."
# email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
# contributor_emails: "Contributor Class Emails"
# contribute_prefix: "We're looking for people to join our party! Check out the "
# contribute_page: "contribute page"
@ -240,6 +246,7 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra
# multiplayer_hint_label: "Hint:"
# multiplayer_hint: " Click the link to select all, then press ⌘-C or Ctrl-C to copy the link."
# multiplayer_coming_soon: "More multiplayer features to come!"
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
# guide_title: "Guide"
# tome_minion_spells: "Your Minions' Spells"
# tome_read_only_spells: "Read-Only Spells"
@ -644,6 +651,13 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra
# simple_ai: "Simple AI"
# warmup: "Warmup"
# vs: "VS"
# friends_playing: "Friends Playing"
# sign_up_for_friends: "Sign up to play with your friends!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# multiplayer_launch:
# introducing_dungeon_arena: "Introducing Dungeon Arena"
@ -686,3 +700,15 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra
# user_profile: "User Profile"
# patches: "Patches"
# model: "Model"
# system: "System"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
# article: "Article"
# user_names: "User Names"
# files: "Files"
# top_simulators: "Top Simulators"
# source_document: "Source Document"

View file

@ -1,6 +1,5 @@
storage = require 'lib/storage'
deltasLib = require 'lib/deltas'
auth = require 'lib/auth'
class CocoModel extends Backbone.Model
idAttribute: "_id"
@ -9,6 +8,8 @@ class CocoModel extends Backbone.Model
saveBackups: false
@schema: null
getMe: -> @me or @me = require('lib/auth').me
initialize: ->
super()
if not @constructor.className
@ -27,7 +28,7 @@ class CocoModel extends Backbone.Model
clone = super()
clone.set($.extend(true, {}, if withChanges then @attributes else @_revertAttributes))
clone
onError: ->
@loading = false
@ -98,7 +99,8 @@ class CocoModel extends Backbone.Model
not _.isEqual @attributes, @_revertAttributes
cloneNewMinorVersion: ->
newData = $.extend(null, {}, @attributes)
newData = _.clone @attributes
clone = new @constructor(newData)
clone
@ -138,7 +140,7 @@ class CocoModel extends Backbone.Model
hasReadAccess: (actor) ->
# actor is a User object
actor ?= auth.me
actor ?= @getMe()
return true if actor.isAdmin()
if @get('permissions')?
for permission in @get('permissions')
@ -150,7 +152,7 @@ class CocoModel extends Backbone.Model
hasWriteAccess: (actor) ->
# actor is a User object
actor ?= auth.me
actor ?= @getMe()
return true if actor.isAdmin()
if @get('permissions')?
for permission in @get('permissions')
@ -162,6 +164,10 @@ class CocoModel extends Backbone.Model
getDelta: ->
differ = deltasLib.makeJSONDiffer()
differ.diff @_revertAttributes, @attributes
getDeltaWith: (otherModel) ->
differ = deltasLib.makeJSONDiffer()
differ.diff @attributes, otherModel.attributes
applyDelta: (delta) ->
newAttributes = $.extend(true, {}, @attributes)
@ -172,13 +178,17 @@ class CocoModel extends Backbone.Model
delta = @getDelta()
deltasLib.expandDelta(delta, @_revertAttributes, @schema())
getExpandedDeltaWith: (otherModel) ->
delta = @getDeltaWith(otherModel)
deltasLib.expandDelta(delta, @attributes, @schema())
watch: (doWatch=true) ->
$.ajax("#{@urlRoot}/#{@id}/watch", {type:'PUT', data:{on:doWatch}})
@watching = -> doWatch
watching: ->
return me.id in (@get('watchers') or [])
populateI18N: (data, schema, path='') ->
# TODO: Better schema/json walking
sum = 0
@ -187,7 +197,7 @@ class CocoModel extends Backbone.Model
if schema.properties?.i18n and _.isPlainObject(data) and not data.i18n?
data.i18n = {}
sum += 1
if _.isPlainObject data
for key, value of data
numChanged = 0
@ -195,10 +205,10 @@ class CocoModel extends Backbone.Model
if numChanged and not path # should only do this for the root object
@set key, value
sum += numChanged
if schema.items and _.isArray data
sum += @populateI18N(value, schema.items, path+'/'+index) for value, index in data
sum
@getReferencedModel: (data, schema) ->
@ -229,13 +239,13 @@ class CocoModel extends Backbone.Model
model = new Model()
model.url = makeUrlFunc(link)
return model
setURL: (url) ->
makeURLFunc = (u) -> -> u
@url = makeURLFunc(url)
@
getURL: ->
return if _.isString @url then @url else @url()
module.exports = CocoModel

View file

@ -24,3 +24,15 @@ module.exports = class LevelSession extends CocoModel
code = @get('code')
parts = spellKey.split '/'
code?[parts[0]]?[parts[1]]
readyToRank: ->
return false unless @get('levelID') # If it hasn't been denormalized, then it's not ready.
return false unless c1 = @get('code')
return false unless team = @get('team')
return true unless c2 = @get('submittedCode')
thangSpellArr = (s.split("/") for s in @get('teamSpells')[team])
for item in thangSpellArr
thang = item[0]
spell = item[1]
return true if c1[thang][spell] isnt c2[thang][spell]
false

View file

@ -31,8 +31,9 @@ module.exports = class SuperModel extends Backbone.Model
else
@registerModel(model)
console.debug 'Registering model', model.getURL()
return @addModelResource(model, name, fetchOptions, value).load()
res = @addModelResource(model, name, fetchOptions, value)
if model.loaded then res.markLoaded() else res.load()
return res
loadCollection: (collection, name, fetchOptions, value=1) ->
url = collection.getURL()
@ -52,7 +53,9 @@ module.exports = class SuperModel extends Backbone.Model
@listenToOnce collection, 'sync', (c) ->
console.debug 'Registering collection', url
@registerCollection c
return @addModelResource(collection, name, fetchOptions, value).load()
res = @addModelResource(collection, name, fetchOptions, value)
res.load() if not (res.isLoading or res.isLoaded)
return res
# replace or overwrite
shouldSaveBackups: (model) -> false

View file

@ -4,6 +4,7 @@ ThangComponentSchema = require './thang_component'
SpecificArticleSchema = c.object()
c.extendNamedProperties SpecificArticleSchema # name first
SpecificArticleSchema.properties.body = { type: 'string', title: 'Content', description: "The body content of the article, in Markdown.", format: 'markdown' }
SpecificArticleSchema.properties.i18n = {type: "object", format: 'i18n', props: ['name', 'body'], description: "Help translate this article"}
SpecificArticleSchema.displayProperty = 'name'
side = {title: "Side", description: "A side.", type: 'string', 'enum': ['left', 'right', 'top', 'bottom']}

View file

@ -101,8 +101,8 @@ a[data-toggle="modal"]
.modal-dialog
padding: 5px
margin-top: 0px !important
margin-bottom: 0px !important
margin-top: 30px
margin-bottom: 0px
padding-top: 30px
.background-wrapper
background: url("/images/pages/base/modal_background.png")
@ -281,4 +281,4 @@ body[lang='ja']
.spr:after
content: " "
.spl:before
content: " "
content: " "

View file

@ -5,7 +5,10 @@
#component-patches
padding: 0 10px 10px
background: white
.patches-view
padding: 10px 20px 10px 0px
.navbar-text
float: left

View file

@ -2,4 +2,4 @@
color: black
.treema-value img
width: 100%
max-width: 100%

View file

@ -1,4 +1,14 @@
#editor-level-system-edit-view
nav
margin-bottom: 0
#system-patches
padding: 0 10px 10px
background: white
.patches-view
padding: 10px 20px 10px 0px
.navbar-text
float: left

View file

@ -50,6 +50,9 @@
#settings-col
float: left
width: 550px
.treema-row img
max-width: 100%
#thang-type-treema
height: 400px
@ -66,6 +69,8 @@
background-color: white
border-radius: 4px
#spritesheets
border: 1px solid green
max-width: 100%

View file

@ -7,28 +7,31 @@
top: 42px
user-select: none
-webkit-user-select: none
@include transition(background-color .2s linear)
@include transition(box-shadow .2s linear)
padding: 4px
background: transparent url(/images/level/gold_background.png) no-repeat
background-size: 100% 100%
border-radius: 4px
&:hover
background-color: rgba(255, 255, 255, 0.75)
box-shadow: 2px 2px 2px black
.team-gold
font-size: 16px
margin: 0
line-height: 20px
color: hsla(205,0%,31%,1)
text-shadow: 0px 1px 1px white, 0px -1px 1px white, 1px 0px 1px white, -1px 0px 1px white
color: hsla(205,0%,51%,1)
display: inline-block
padding: 0px 4px
&.team-humans
color: hsla(4,80%,51%,1)
&.team-ogres
color: hsla(205,100%,31%,1)
color: hsla(205,100%,51%,1)
&.team-allies, &.team-minions
color: hsla(116,80%,31%,1)
color: hsla(116,80%,51%,1)
img
width: 16px
@ -36,17 +39,7 @@
border-radius: 2px
padding: 1px
margin-top: -1px
@include gradient-radial-custom-stops(hsla(205,0%,74%,1), 20%, hsla(205,0%,31%,1), 70%)
&.team-humans img
@include gradient-radial-custom-stops(hsla(4,80%,74%,1), 20%, hsla(4,80%,51%,1), 70%)
&.team-ogres img
@include gradient-radial-custom-stops(hsla(205,100%,74%,1), 20%, hsla(205,100%,31%,1), 70%)
&.team-allies img, &.team-minions img
@include gradient-radial-custom-stops(hsla(116,80%,74%,1), 20%, hsla(116,80%,31%,1), 70%)
.gold-amount
display: inline-block
min-width: 20px

View file

@ -10,6 +10,8 @@
display: none
#docs-button
display: none
#gold-view
right: 1%
#control-bar-view
width: 100%
@ -41,7 +43,7 @@
margin: 0 auto
canvas#surface
background-color: #ddd
background-color: #333
max-height: 93%
max-height: -webkit-calc(100% - 60px)
max-height: calc(100% - 60px)

View file

@ -17,7 +17,7 @@ block content
if user.id != me.id
button.btn.edit-settings-button#enter-espionage-mode 007
if user.get('jobProfile')
if user.get('jobProfile') && allowedToViewJobProfile
- var profile = user.get('jobProfile');
.job-profile-container
.job-profile-row
@ -112,7 +112,11 @@ block content
.project-image(style="background-image: url('/file/" + project.picture + "')")
p= project.name
div!= marked(project.description)
else if allowedToViewJobProfile
.public-profile-container
h2 Loading...
else
.public-profile-container
h2

View file

@ -73,18 +73,18 @@ block content
hr
h4(data-i18n="account_settings.email_notifications") Notifications
span Controls for transactional emails, ie emails specific to your account.
span(data-i18n="account_settings.email_notifications_summary") Controls for personalized, automatic email notifications related to your CodeCombat activity.
.form
.form-group.checkbox
label.control-label(for="email_anyNotes", data-i18n="account_settings.any_notifications") Any Notifications
label.control-label(for="email_anyNotes", data-i18n="account_settings.email_any_notes") Any Notifications
input#email_anyNotes(name="email_anyNotes", type="checkbox", checked=subs.anyNotes)
span.help-block(data-i18n="account_settings.email_any_notes_description") Disable to universally stop ALL notifications for this account.
span.help-block(data-i18n="account_settings.email_any_notes_description") Disable to stop all activity notification emails.
fieldset#specific-notification-settings
.form-group.checkbox
label.control-label(for="email_recruitNotes", data-i18n="account_settings.recruit_notes") Recruitment Opportunities
label.control-label(for="email_recruitNotes", data-i18n="account_settings.email_recruit_notes") Job Opportunities
input#email_recruitNotes(name="email_recruitNotes", type="checkbox", checked=subs.recruitNotes)
span.help-block(data-i18n="account_settings.email_recruit_notes_description") If you play really well, we may contact you about getting you a (better) job.

View file

@ -37,10 +37,12 @@ mixin deltaPanel(delta, conflict)
if delta.conflict && !conflict
.panel-body
strong MERGE CONFLICT WITH
strong(data-i18n="delta.merge_conflict_with") MERGE CONFLICT WITH
+deltaPanel(delta.conflict, true)
.panel-group(id='delta-accordion-'+(counter))
for delta in deltas
+deltaPanel(delta)
if !deltas.length
alert.alert-warning(data-i18n="delta.no_changes") No changes

View file

@ -24,7 +24,7 @@ block header
li
a(href="#editor-level-settings-tab-view", data-toggle="tab", data-i18n="editor.level_tab_settings") Settings
li
a(href="#editor-level-components-tab-view", data-toggle="tab", data-i18n="editor.level_tab_components") Components
a(href="#editor-level-components-tab-view", data-toggle="tab", data-i18n="editor.level_tab_components")#components-tab Components
li
a(href="#editor-level-systems-tab-view", data-toggle="tab", data-i18n="editor.level_tab_systems") Systems
li

View file

@ -29,8 +29,8 @@ block content
th(data-i18n="employers.candidate_years_experience") Yrs Exp
th(data-i18n="employers.candidate_last_updated") Last Updated
if me.isAdmin()
th(data-i18n="employers.candidate_us") Us?
th(data-i18n="employers.candidate_them") Them?
th(data-i18n="employers.candidate_approved") Us?
th(data-i18n="employers.candidate_active") Them?
tbody
for candidate, index in candidates

View file

@ -10,15 +10,21 @@ block modal-body-content
if dataList
table.table.table-condensed
tr
th
th(data-i18n="general.name") Name
th(data-i18n="general.version") Version
th(data-i18n="general.commit_msg") Commit Message
for data in dataList
tr
td
input(type="checkbox", value=data._id).select
td
a(href="/editor/#{page}/#{data.slug || data._id}")
| #{data.name}
td #{data.version.major}.#{data.version.minor}
td #{data.commitMessage}
div.delta-container
div.delta-view
block modal-footer-content

View file

@ -44,20 +44,20 @@ div#columns.row
.btn.btn-sm.load-more-ladder-entries More
div.column.col-md-4
h4.friends-header Friends Playing
h4.friends-header(data-i18n="ladder.friends_playing") Friends Playing
if me.get('anonymous')
div.alert.alert-info
a(data-toggle="coco-modal", data-target="modal/signup") Sign up to play with your friends!
a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="ladder.sign_up_for_friends") Sign up to play with your friends!
else
if !onFacebook || !onGPlus
div.connect-buttons
| Connect and play against your friends!
span(data-i18n="ladder.social_connect_blurb") Connect and play against your friends!
br
if !onFacebook
button.btn.btn-sm.connect-facebook Facebook
button.btn.btn-sm.connect-facebook(data-i18n="community.facebook") Facebook
if !onGPlus
button.btn.btn-sm.connect-google-plus Google+
button.btn.btn-sm.connect-google-plus(data-i18n="community.gplus") Google+
if friends.length
for friend in friends
@ -72,5 +72,5 @@ div#columns.row
a(href="/play/level/#{level.get('slug') || level.id}/?team=#{friend.otherTeam}&opponent=#{friend._id}")
span(data-i18n="ladder.fight") Fight!
else
p Invite your friends to join you in battle!
else if onFacebook || onGPlus
p(data-i18n="ladder.invite_friends_to_battle") Invite your friends to join you in battle!

View file

@ -27,10 +27,11 @@ block modal-body-content
if ladderGame
if me.get('anonymous')
p Sign in or create an account and get your solution on the leaderboard!
p(data-i18n="play_level.multiplayer_sign_in_leaderboard") Sign in or create an account and get your solution on the leaderboard.
else if readyToRank
button.btn.btn-success.rank-game-button(data-i18n="play_level.victory_rank_my_game") Rank My Game
else
a#go-to-leaderboard-button.btn.btn-primary(href="/play/ladder/#{levelSlug}#my-matches") Go to the leaderboard!
p You can submit your game to be ranked from the leaderboard page.
a.btn.btn-primary(href="/play/ladder/#{levelSlug}#my-matches", data-i18n="play_level.victory_go_ladder") Return to Ladder
block modal-footer-content
a(href='#', data-dismiss="modal", aria-hidden="true", data-i18n="modal.close").btn.btn-primary Close

View file

@ -0,0 +1,3 @@
div(class="team-gold team-" + team, title="Gold: " + team)
img(src="/images/level/gold_icon.png", alt="")
div(class="gold-amount team-" + team)

View file

@ -18,7 +18,7 @@ module.exports = class ProfileView extends View
super options
if @userID is me.id
@user = me
else
else if me.isAdmin() or "employer" in me.get('permissions')
@user = User.getByID(@userID)
@user.fetch()
@listenTo @user, "sync", =>
@ -27,6 +27,7 @@ module.exports = class ProfileView extends View
getRenderData: ->
context = super()
context.user = @user
context.allowedToViewJobProfile = me.isAdmin() or "employer" in me.get('permissions')
context.myProfile = @user.id is context.me.id
context.marked = marked
context.moment = moment

View file

@ -49,7 +49,7 @@ module.exports = class ArticleEditView extends View
data: data
filePath: "db/thang.type/#{@article.get('original')}"
schema: Article.schema
readOnly: true unless me.isAdmin() or @article.hasWriteAccess(me)
readOnly: me.get('anonymous')
callbacks:
change: @pushChangesToPreview
@treema = @$el.find('#article-treema').treema(options)

View file

@ -9,19 +9,62 @@ TEXTDIFF_OPTIONS =
viewType: 1
module.exports = class DeltaView extends CocoView
###
Takes a CocoModel instance (model) and displays changes since the
last save (attributes vs _revertAttributes).
* If headModel is included, will look for and display conflicts with the changes in model.
* If comparisonModel is included, will show deltas between model and comparisonModel instead
of changes within model itself.
###
@deltaCounter: 0
className: "delta-view"
template: template
constructor: (options) ->
super(options)
@model = options.model
@headModel = options.headModel
@expandedDeltas = @model.getExpandedDelta()
@expandedDeltas = []
@skipPaths = options.skipPaths
for modelName in ['model', 'headModel', 'comparisonModel']
continue unless m = options[modelName]
@[modelName] = @supermodel.loadModel(m, 'document').model
@buildDeltas() if @supermodel.finished()
onLoaded: ->
@buildDeltas()
super()
buildDeltas: ->
if @comparisonModel
@expandedDeltas = @model.getExpandedDeltaWith(@comparisonModel)
else
@expandedDeltas = @model.getExpandedDelta()
@filterExpandedDeltas()
if @headModel
@headDeltas = @headModel.getExpandedDelta()
@conflicts = deltasLib.getConflicts(@headDeltas, @expandedDeltas)
filterExpandedDeltas: ->
return unless @skipPaths
for path, i in @skipPaths
@skipPaths[i] = [path] if _.isString(path)
newDeltas = []
for delta in @expandedDeltas
skip = false
for skipPath in @skipPaths
if _.isEqual _.first(delta.dataPath, skipPath.length), skipPath
skip = true
break
newDeltas.push delta unless skip
@expandedDeltas = newDeltas
getRenderData: ->
c = super()
c.deltas = @expandedDeltas

View file

@ -46,11 +46,12 @@ module.exports = class LevelComponentEditView extends View
schema = _.cloneDeep LevelComponent.schema
schema.properties = _.pick schema.properties, (value, key) => key in @editableSettings
schema.required = _.intersection schema.required, @editableSettings
treemaOptions =
supermodel: @supermodel
schema: schema
data: data
readonly: me.get('anonymous')
callbacks: {change: @onComponentSettingsEdited}
@componentSettingsTreema = @$el.find('#edit-component-treema').treema treemaOptions
@componentSettingsTreema.build()
@ -68,6 +69,7 @@ module.exports = class LevelComponentEditView extends View
supermodel: @supermodel
schema: LevelComponent.schema.properties.configSchema
data: @levelComponent.get 'configSchema'
readOnly: me.get('anonymous')
callbacks: {change: @onConfigSchemaEdited}
@configSchemaTreema = @$el.find('#config-schema-treema').treema treemaOptions
@configSchemaTreema.build()
@ -84,13 +86,14 @@ module.exports = class LevelComponentEditView extends View
editorEl = $('<div></div>').text(@levelComponent.get('code')).addClass('inner-editor')
@$el.find('#component-code-editor').empty().append(editorEl)
@editor = ace.edit(editorEl[0])
@editor.setReadOnly(me.get('anonymous'))
session = @editor.getSession()
session.setMode 'ace/mode/coffee'
session.setTabSize 2
session.setNewLineMode = 'unix'
session.setUseSoftTabs true
@editor.on('change', @onEditorChange)
onEditorChange: =>
@levelComponent.set 'code', @editor.getValue()
Backbone.Mediator.publish 'level-component-edited', levelComponent: @levelComponent
@ -104,7 +107,7 @@ module.exports = class LevelComponentEditView extends View
versionHistoryView = new VersionHistoryView {}, @levelComponent.id
@openModalView versionHistoryView
Backbone.Mediator.publish 'level:view-switched', e
startPatchingComponent: (e) ->
@openModalView new SaveVersionModal({model:@levelComponent})
Backbone.Mediator.publish 'level:view-switched', e
@ -117,4 +120,3 @@ module.exports = class LevelComponentEditView extends View
destroy: ->
@editor?.destroy()
super()

View file

@ -14,7 +14,6 @@ module.exports = class ComponentsTabView extends View
className: 'tab-pane'
subscriptions:
'level-thangs-changed': 'onLevelThangsChanged'
'edit-level-component': 'editLevelComponent'
'level-component-edited': 'onLevelComponentEdited'
'level-component-editing-ended': 'onLevelComponentEditingEnded'
@ -24,8 +23,8 @@ module.exports = class ComponentsTabView extends View
'click #create-new-component-button-no-select': 'createNewLevelComponent'
onLoaded: ->
onLevelThangsChanged: (e) ->
thangsData = e.thangsData
refreshLevelThangsTreema: (thangsData) ->
presentComponents = {}
for thang in thangsData
for component in thang.components

Some files were not shown because too many files have changed in this diff Show more