From 7537817081e29a93cdd6941a3c71033099d3bd3e Mon Sep 17 00:00:00 2001 From: Matt Lott Date: Thu, 4 Dec 2014 09:57:01 -0800 Subject: [PATCH 1/6] Update subscribe parent copy --- app/locale/en.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/locale/en.coffee b/app/locale/en.coffee index 053dfe29d..e13714240 100644 --- a/app/locale/en.coffee +++ b/app/locale/en.coffee @@ -345,7 +345,7 @@ parents: "For Parents" parents_title: "Your child will learn to code." parents_blurb1: "With CodeCombat, your child learns by writing real code. They start by learning simple commands, and progress to more advanced topics." - parents_blurb2: "For 9.99/mo, they get new challenges and personal email support from professional programmers." + parents_blurb2: "For 9.99/mo, they get new challenges every week and personal email support from professional programmers." parents_blurb3: "No Risk: 100% money back guarantee, easy 1-click unsubscribe." subscribe_button: "Subscribe Now" stripe_description: "Monthly Subscription" From bde08dd24bee11537a70052832a95bc01f1adb35 Mon Sep 17 00:00:00 2001 From: Lirai Date: Thu, 4 Dec 2014 19:34:28 +0100 Subject: [PATCH 2/6] Update de-DE.coffee Checked for errors and better translations. --- app/locale/de-DE.coffee | 90 ++++++++++++++++++++--------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/app/locale/de-DE.coffee b/app/locale/de-DE.coffee index 44fc06618..eb9a5d97e 100644 --- a/app/locale/de-DE.coffee +++ b/app/locale/de-DE.coffee @@ -43,7 +43,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: title: "Hilf CodeCombat zu übersetzen!" # This shows up when a player switches to a non-English language using the language selector. sub_heading: "Wir brauchen Deine Sprachfähigkeiten." pitch_body: "Wir entwickeln CodeCombat in Englisch, aber wir haben Spieler in der ganzen Welt. Viele von ihnen wollen in Deutsch spielen, sprechen aber kein Englisch. Wenn Du also beide Sprachen beherrscht, melde Dich an um ein Diplomat zu werden und hilf die Website und die Levels zu Deutsch zu übersetzen." - missing_translations: "Solange wir nicht alles ins Deutsche übesetzt haben, siehst Du die englische Übersetzung, wo Deutsch leider noch nicht zur Verfügung steht." + missing_translations: "Solange wir nicht alles ins Deutsche übersetzt haben, siehst Du die englische Übersetzung, wo Deutsch leider noch nicht zur Verfügung steht." learn_more: "Finde heraus, wie Du ein Diplomat werden kannst" subscribe_as_diplomat: "Schreibe dich als Diplomat ein" @@ -55,7 +55,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: items: "Gegenstände" # Tooltip on item shop button from /play unlock: "Entsperren" # For purchasing items and heroes confirm: "Bestätigen" - owned: "Besitzen" # For items you own + owned: "im Besitz" # For items you own locked: "Gesperrt" # purchasable: "Purchasable" # For a hero you unlocked but haven't purchased available: "Verfügbar" @@ -82,8 +82,8 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: campaign_old_beginner: "Alte Anfänger Kampagne" campaign_old_beginner_description: "... in der Du die Zauberei der Programmierung lernst." campaign_dev: "Beliebiges schwierigeres Level" - campaign_dev_description: "... in welchem Du die Bedienung erlernst, indem Du etwas schwierigeres machst." - campaign_multiplayer: "Multiplayerarena" + campaign_dev_description: "... in welchem Du die Bedienung erlernst, indem Du etwas Schwierigeres machst." + campaign_multiplayer: "Mehrspieler Arena" campaign_multiplayer_description: "... in der Du Kopf-an-Kopf gegen andere Spieler programmierst." campaign_player_created: "Von Spielern erstellt" campaign_player_created_description: "... in welchem Du gegen die Kreativität eines Artisan Zauberers kämpfst." @@ -112,7 +112,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: creating: "Erzeuge Account..." sign_up: "Neuen Account anlegen" log_in: "mit Passwort einloggen" - social_signup: "oder, du registriest dich über Facebook oder G+:" + social_signup: "oder, du registrierst dich über Facebook oder G+:" required: "Du musst dich vorher einloggen um dort hin zu gehen." recover: @@ -139,10 +139,10 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: create: "Erstelle" manual: "Manuell" fork: "Fork" - play: "Abspielen" # When used as an action verb, like "Play next level" + play: "Spiel starten" # When used as an action verb, like "Play next level" retry: "Erneut versuchen" - watch: "Verfolgen" - unwatch: "Nicht verfolgen" + watch: "Beobachten" + unwatch: "Nicht beobachten" submit_patch: "Patch einreichen" general: @@ -151,7 +151,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: date: "Datum" body: "Inhalt" version: "Version" - commit_msg: "Commit Nachricht" + commit_msg: "Übertrage Nachricht" version_history: "Versionshistorie" version_history_for: "Versionsgeschichte für: " result: "Ergebnis" @@ -210,8 +210,8 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: failing: "Fehlgeschlagen" action_timeline: "Aktionszeitstrahl" click_to_select: "Klicke auf eine Einheit, um sie auszuwählen." -# control_bar_multiplayer: "Multiplayer" -# control_bar_join_game: "Join Game" +# control_bar_multiplayer: "Mehrspieler" +# control_bar_join_game: "Spiel beitreten" reload: "Neu laden" reload_title: "Gesamten Code neu laden?" reload_really: "Bist Du sicher, dass Du das Level neu beginnen willst?" @@ -238,9 +238,9 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: tome_minion_spells: "Die Zaubersprüche Deiner Knechte" # Only in old-style levels. tome_read_only_spells: "Nur-lesen Zauberspüche" # Only in old-style levels. tome_other_units: "Andere Einheiten" # Only in old-style levels. - tome_cast_button_run: "Run" - tome_cast_button_running: "Running" - tome_cast_button_ran: "Ran" + tome_cast_button_run: "Zaubern" + tome_cast_button_running: "Wird gezaubert" + tome_cast_button_ran: "Wurde gezaubert" tome_submit_button: "Senden" tome_reload_method: "Original Code für diese Methode neu laden" # Title text for individual method reload button. tome_select_method: "Methode auswählen" @@ -248,7 +248,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: tome_select_a_thang: "Wähle jemanden aus, um " tome_available_spells: "Verfügbare Zauber" tome_your_skills: "Deine Fähigkeiten" -# tome_help: "Help" +# tome_help: "Hilfe" tome_current_method: "Aktuelle Methode" hud_continue_short: "Fortsetzen" code_saved: "Code gespeichert" @@ -272,7 +272,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: tip_theory_practice: "In der Theorie gibt es keinen Unterschied zwischen Theorie und Praxis. In der Praxis schon. - Yogi Berra" tip_error_free: "Es gibt zwei Wege fehlerfreie Programme zu schreiben; nur der Dritte funktioniert. - Alan Perlis" tip_debugging_program: "Wenn Debugging der Prozess zum Fehler entfernen ist, dann muss Programmieren der Prozess sein Fehler zu machen. - Edsger W. Dijkstra" - tip_forums: "Gehe zum Forum und sage uns was du denkst!" + tip_forums: "Komm ins Forum und sage uns was du denkst!" tip_baby_coders: "In der Zukunft werden sogar Babies Erzmagier sein." tip_morale_improves: "Das Laden wird weiter gehen bis die Stimmung sich verbessert." tip_all_species: "Wir glauben an gleiche Chancen für alle Arten Programmieren zu lernen." @@ -280,32 +280,32 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: tip_harry: "Du bist ein Zauberer, " tip_great_responsibility: "Mit großen Programmierfähigkeiten kommt große Verantwortung." tip_munchkin: "Wenn du dein Gemüse nicht isst, besucht dich ein Zwerg während du schläfst." - tip_binary: "Es gibt auf der Welt nur 10 Arten von Menschen: die, welche Binär verstehen und die, welche nicht." + tip_binary: "Es gibt auf der Welt nur 10 Arten von Menschen: die die Binär verstehen und die die nicht." tip_commitment_yoda: "Ein Programmier muss die größte Hingabe haben, den ernstesten Verstand. ~ Yoda" tip_no_try: "Tu. Oder tu nicht. Es gibt kein Versuchen. - Yoda" - tip_patience: "Geduld du musst haben, junger Padawan. - Yoda" + tip_patience: "Geduld du haben musst, junger Padawan. - Yoda" tip_documented_bug: "Ein dokumentierter Fehler ist kein Fehler; er ist ein Merkmal." tip_impossible: "Es wirkt immer unmöglich bis es vollbracht ist. - Nelson Mandela" tip_talk_is_cheap: "Reden ist billig. Zeig mir den Code. - Linus Torvalds" - tip_first_language: "Das schwierigste, das du jemals lernen wirst, ist die erste Programmiersprache. - Alan Kay" + tip_first_language: "Das Schwierigste, das du jemals lernen wirst, ist die erste Programmiersprache. - Alan Kay" tip_hardware_problem: "Q: Wie viele Programmierer braucht man um eine Glühbirne auszuwechseln? A: Keine, es ist ein Hardware-Problem." tip_hofstadters_law: "Hofstadter's Gesetz: Es dauert immer länger als erwartet, auch wenn du Hofstadter's Gesetz anwendest." - tip_premature_optimization: "Vorzeitige Optimierung ist die Wurzel alles Übels (oder der mindestens Meister) bei der Programmierung - Donald Knuth" + tip_premature_optimization: "Vorzeitige Optimierung ist die Wurzel allen Übels (oder mindestens des meisten) bei der Programmierung - Donald Knuth" tip_brute_force: "Verwende im Zweifelsfall rohe Gewalt. - Ken Thompson" customize_wizard: "Bearbeite den Zauberer" game_menu: inventory_tab: "Inventar" - save_load_tab: "Speichere/Lade" + save_load_tab: "Speicher/Lade" options_tab: "Einstellungen" - guide_tab: "Guide" + guide_tab: "Handbuch" multiplayer_tab: "Mehrspieler" auth_tab: "Registrieren" inventory_caption: "Rüste deinen Helden aus" choose_hero_caption: "Wähle Helden, Sprache" save_load_caption: "... und schaue dir die Historie an" options_caption: "konfiguriere Einstellungen" - guide_caption: "Doku und Tipps" + guide_caption: "Handbuch und Tipps" multiplayer_caption: "Spiele mit Freunden!" auth_caption: "Fortschritt speichern." @@ -319,7 +319,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: locked: "(gesperrt)" restricted: "(benötigt für dieses Level)" equip: "Ausrüsten" - unequip: "Abrüsten" + unequip: "Ablegen" buy_gems: few_gems: "Ein paar Edelsteine" @@ -327,7 +327,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: chest_gems: "Kiste von Edelsteinen" purchasing: "Kaufabwicklung..." declined: "Deine Karte wurde abgelehnt" - retrying: "Serverfehler, versuche erneut." + retrying: "Serverfehler, versuche es erneut." prompt_title: "Nicht genug Edelsteine" prompt_body: "Benötigst du mehr?" prompt_button: "Laden betreten" @@ -339,25 +339,25 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: default: "Standard" experimental: "Experimentell" python_blurb: "Einfach jedoch leistungsfähig, Python ist eine gute Allzweck-Programmiersprache." - javascript_blurb: "Die Sprache des Web." + javascript_blurb: "Die Sprache des Netzes." coffeescript_blurb: "Schönere JavaScript Syntax." clojure_blurb: "Ein modernes Lisp." lua_blurb: "Skriptsprache für Spiele." io_blurb: "Simpel aber obskur." status: "Status" weapons: "Waffen" - weapons_warrior: "Schwert - Kurze Reichweite, Kein Zauber" - weapons_ranger: "Armbrust, Geschütz - Hohe Reichweite, Kein Zauber" + weapons_warrior: "Schwert - Kurze Reichweite, Keine Zauber" + weapons_ranger: "Armbrust, Geschütz - Hohe Reichweite, Keine Zauber" weapons_wizard: "Stäbe, Stäbe - Lange Reichweite, Zauber" attack: "Schaden" # Can also translate as "Attack" health: "Gesundheit" speed: "Geschwindigkeit" regeneration: "Regeneration" range: "Reichweite" # As in "attack or visual range" - blocks: "Blockieren" # As in "this shield blocks this much damage" + blocks: "Blocken" # As in "this shield blocks this much damage" skills: "Fähigkeiten" -# available_for_purchase: "Available for Purchase" -# level_to_unlock: "Level to unlock:" +# available_for_purchase: "Verkäuflich" +# level_to_unlock: "Benötigtes Level:" restricted_to_certain_heroes: "Nur bestimmte Helden können dieses Level spielen." skill_docs: @@ -371,12 +371,12 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: action_radius: "Radius" action_duration: "Dauer" example: "Beispiel" -# ex: "ex" # Abbreviation of "example" +# ex: "Bsp." # Abbreviation of "example" current_value: "Aktueller Wert" default_value: "Standardwert" parameters: "Parameter" # returns: "Returns" -# granted_by: "Granted by" +# granted_by: "Gewährt durch" save_load: granularity_saved_games: "Gespeichert" @@ -402,7 +402,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: editor_config_livecompletion_description: "Zeigt Vorschläge der Auto-Vervollständigung an während du tippst." editor_config_invisibles_label: "Zeige unsichtbare Zeichen" editor_config_invisibles_description: "Zeigt unsichtbare Zeichen wie Leertasten an." - editor_config_indentguides_label: "Zeige Einrückungshilfe" + editor_config_indentguides_label: "Zeige Einrückhilfe" editor_config_indentguides_description: "Zeigt vertikale Linien an um Einrückungen besser zu sehen." editor_config_behaviors_label: "Intelligentes Verhalten" editor_config_behaviors_description: "Vervollständigt automatisch Klammern und Anführungszeichen." @@ -415,7 +415,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: why_paragraph_2_center: "sondern Spaß wie" why_paragraph_2_italic_caps: "NEIN MUTTI ICH MUSS NOCH DEN LEVEL BEENDEN !" why_paragraph_2_suffix: "Deshalb ist CodeCombat ein Multiplayerspiel und kein spielähnlicher Kurs. Wir werden nicht aufhören bis du nicht mehr aufhören kannst -- nur diesmal ist das eine gute Sache." - why_paragraph_3: "Wenn dich Spiele süchtig machen, dass lass dich von diesem süchtig machen und werde ein Zauberer des Technologiezeitalters." + why_paragraph_3: "Wenn dich Spiele süchtig machen, dann lass dich von diesem süchtig machen und werde ein Zauberer des Technologiezeitalters." press_title: "Blogger/Presse" press_paragraph_1_prefix: "Sie möchten über uns schreiben? Laden und benutzen Sie ruhig alle Ressourcen in unserem" press_paragraph_1_link: "Presse-Paket" @@ -520,7 +520,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: level_editor_prefix: "Benutze den CodeCombat" level_editor_suffix: "um Level zu erstellen oder zu bearbeiten. Benutzer haben bereits Level für ihre Klassen, Freunde, Hackathons, Schüler und Geschwister erstellt. Wenn das Neuerstellen eines Levels abschreckend wirkt, dann kannst du erstmal ein bestehendes kopieren!" thang_editor_prefix: "Wir nennen Einheiten innerhalb des Spiels 'Thangs'. Benutze den" -# thang_editor_suffix: "to modify the CodeCombat source artwork. Allow units to throw projectiles, alter the direction of an animation, change a unit's hit points, or upload your own vector sprites." +# thang_editor_suffix: "um die CodeCombat Grafik Dateien zu bearbeiten. Gib Einheiten die Fähigkeit Projektile zu werfen, throw projectiles, änder die Richtung einer Animation, die Lebenspunkte einer Einheit, oder lade deine eigenen vector sprites hoch." article_editor_prefix: "Hast du einen Fehler in unseren Dokus gefunden? Willst du Anleitungen für deine Kreationen erstellen? Schau dir den" article_editor_suffix: "und hilf CodeCombat Spielern das meiste aus ihrer Spielzeit heraus zu bekommen." find_us: "Finde uns auf diesen Seiten" @@ -554,7 +554,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: achievement_title: "Achievement Editor" back: "Zurück" revert: "Zurücksetzen" - revert_models: "Models zurücksetzen." + revert_models: "Modelle zurücksetzen." pick_a_terrain: "Wähle ein Terrain" small: "Klein" grassy: "Grasig" @@ -722,12 +722,12 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: summary_matches: "Matches - " summary_wins: " Siege, " summary_losses: " Verluste" -# rank_no_code: "No New Code to Rank" -# rank_my_game: "Rank My Game!" +# rank_no_code: "Kein neuer Code zu bewerten" +# rank_my_game: "Bewerte mein Spiel!" rank_submitting: "Übermitteln..." -# rank_submitted: "Submitted for Ranking" -# rank_failed: "Failed to Rank" -# rank_being_ranked: "Game Being Ranked" +# rank_submitted: "Zur Bewertung übermittelt" +# rank_failed: "Bewertung gescheitert" +# rank_being_ranked: "Spiel wird bewertet" rank_last_submitted: "übermittelt " help_simulate: "Hilf Spiele zu simulieren?" # code_being_simulated: "Your new code is being simulated by other players for ranking. This will refresh as new matches come in." @@ -774,11 +774,11 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: favorite_postfix: "." achievements: -# last_earned: "Last Earned" +# last_earned: "Zuletzt erhalten" amount_achieved: "Anzahl" achievement: "Achievement" category_contributor: "Mitwirkender" -# category_ladder: "Ladder" +# category_ladder: "Rangliste" # category_level: "Level" category_miscellaneous: "Sonstiges" category_levels: "Level" @@ -1124,7 +1124,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: candidate_looking_for: "Sucht nach" candidate_role: "Rolle" candidate_top_skills: "Top Fähigkeiten" -# candidate_years_experience: "Yrs Exp" +# candidate_years_experience: "Erfahrung (Jahre)" candidate_last_updated: "Zuletzt aktualisiert" candidate_who: "Wer" # featured_developers: "Featured Developers" From 324a7491496f98af77fd80c4a3d8fbd5b5673b59 Mon Sep 17 00:00:00 2001 From: Lirai Date: Thu, 4 Dec 2014 20:28:56 +0100 Subject: [PATCH 3/6] Update de-DE.coffee uncommented... --- app/locale/de-DE.coffee | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/app/locale/de-DE.coffee b/app/locale/de-DE.coffee index eb9a5d97e..7bd49458c 100644 --- a/app/locale/de-DE.coffee +++ b/app/locale/de-DE.coffee @@ -210,8 +210,8 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: failing: "Fehlgeschlagen" action_timeline: "Aktionszeitstrahl" click_to_select: "Klicke auf eine Einheit, um sie auszuwählen." -# control_bar_multiplayer: "Mehrspieler" -# control_bar_join_game: "Spiel beitreten" + control_bar_multiplayer: "Mehrspieler" + control_bar_join_game: "Spiel beitreten" reload: "Neu laden" reload_title: "Gesamten Code neu laden?" reload_really: "Bist Du sicher, dass Du das Level neu beginnen willst?" @@ -248,7 +248,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: tome_select_a_thang: "Wähle jemanden aus, um " tome_available_spells: "Verfügbare Zauber" tome_your_skills: "Deine Fähigkeiten" -# tome_help: "Hilfe" + tome_help: "Hilfe" tome_current_method: "Aktuelle Methode" hud_continue_short: "Fortsetzen" code_saved: "Code gespeichert" @@ -356,8 +356,8 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: range: "Reichweite" # As in "attack or visual range" blocks: "Blocken" # As in "this shield blocks this much damage" skills: "Fähigkeiten" -# available_for_purchase: "Verkäuflich" -# level_to_unlock: "Benötigtes Level:" + available_for_purchase: "Verkäuflich" + level_to_unlock: "Benötigtes Level:" restricted_to_certain_heroes: "Nur bestimmte Helden können dieses Level spielen." skill_docs: @@ -371,12 +371,12 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: action_radius: "Radius" action_duration: "Dauer" example: "Beispiel" -# ex: "Bsp." # Abbreviation of "example" + ex: "Bsp." # Abbreviation of "example" current_value: "Aktueller Wert" default_value: "Standardwert" parameters: "Parameter" # returns: "Returns" -# granted_by: "Gewährt durch" + granted_by: "Gewährt durch" save_load: granularity_saved_games: "Gespeichert" @@ -520,7 +520,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: level_editor_prefix: "Benutze den CodeCombat" level_editor_suffix: "um Level zu erstellen oder zu bearbeiten. Benutzer haben bereits Level für ihre Klassen, Freunde, Hackathons, Schüler und Geschwister erstellt. Wenn das Neuerstellen eines Levels abschreckend wirkt, dann kannst du erstmal ein bestehendes kopieren!" thang_editor_prefix: "Wir nennen Einheiten innerhalb des Spiels 'Thangs'. Benutze den" -# thang_editor_suffix: "um die CodeCombat Grafik Dateien zu bearbeiten. Gib Einheiten die Fähigkeit Projektile zu werfen, throw projectiles, änder die Richtung einer Animation, die Lebenspunkte einer Einheit, oder lade deine eigenen vector sprites hoch." + thang_editor_suffix: "um die CodeCombat Grafik Dateien zu bearbeiten. Gib Einheiten die Fähigkeit Projektile zu werfen, throw projectiles, änder die Richtung einer Animation, die Lebenspunkte einer Einheit, oder lade deine eigenen vector sprites hoch." article_editor_prefix: "Hast du einen Fehler in unseren Dokus gefunden? Willst du Anleitungen für deine Kreationen erstellen? Schau dir den" article_editor_suffix: "und hilf CodeCombat Spielern das meiste aus ihrer Spielzeit heraus zu bekommen." find_us: "Finde uns auf diesen Seiten" @@ -722,12 +722,12 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: summary_matches: "Matches - " summary_wins: " Siege, " summary_losses: " Verluste" -# rank_no_code: "Kein neuer Code zu bewerten" -# rank_my_game: "Bewerte mein Spiel!" + rank_no_code: "Kein neuer Code zu bewerten" + rank_my_game: "Bewerte mein Spiel!" rank_submitting: "Übermitteln..." -# rank_submitted: "Zur Bewertung übermittelt" -# rank_failed: "Bewertung gescheitert" -# rank_being_ranked: "Spiel wird bewertet" + rank_submitted: "Zur Bewertung übermittelt" + rank_failed: "Bewertung gescheitert" + rank_being_ranked: "Spiel wird bewertet" rank_last_submitted: "übermittelt " help_simulate: "Hilf Spiele zu simulieren?" # code_being_simulated: "Your new code is being simulated by other players for ranking. This will refresh as new matches come in." @@ -774,12 +774,12 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: favorite_postfix: "." achievements: -# last_earned: "Zuletzt erhalten" + last_earned: "Zuletzt erhalten" amount_achieved: "Anzahl" achievement: "Achievement" category_contributor: "Mitwirkender" -# category_ladder: "Rangliste" -# category_level: "Level" + category_ladder: "Rangliste" + category_level: "Level" category_miscellaneous: "Sonstiges" category_levels: "Level" category_undefined: "ohne Kategorie" @@ -1124,7 +1124,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: candidate_looking_for: "Sucht nach" candidate_role: "Rolle" candidate_top_skills: "Top Fähigkeiten" -# candidate_years_experience: "Erfahrung (Jahre)" + candidate_years_experience: "Erfahrung (Jahre)" candidate_last_updated: "Zuletzt aktualisiert" candidate_who: "Wer" # featured_developers: "Featured Developers" From 7bfe0e5c9e180eb52c0bcac46c7f32b585a1e52e Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Thu, 4 Dec 2014 11:04:04 -0800 Subject: [PATCH 4/6] Updated Programmaticon II requirements. Adjust editor height after reloading code. --- app/lib/LevelOptions.coffee | 52 +++++++++++----------- app/views/play/level/tome/SpellView.coffee | 5 ++- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/app/lib/LevelOptions.coffee b/app/lib/LevelOptions.coffee index 7d020793d..cd8247719 100644 --- a/app/lib/LevelOptions.coffee +++ b/app/lib/LevelOptions.coffee @@ -216,80 +216,80 @@ module.exports = LevelOptions = hidesCodeToolbar: true lockDefaultCode: true requiredGear: {feet: 'leather-boots', 'right-hand': 'simple-sword', 'programming-book': 'programmaticon-ii', eyes: 'crude-glasses'} - restrictedGear: {feet: 'simple-boots', 'right-hand': 'crude-builders-hammer'} + restrictedGear: {feet: 'simple-boots', 'right-hand': 'crude-builders-hammer', 'programming-book': 'programmaticon-i'} 'thornbush-farm': hidesCodeToolbar: true lockDefaultCode: true requiredGear: {feet: 'leather-boots', 'right-hand': 'crude-builders-hammer', 'programming-book': 'programmaticon-ii', eyes: 'crude-glasses'} - restrictedGear: {feet: 'simple-boots', 'right-hand': 'simple-sword'} + restrictedGear: {feet: 'simple-boots', 'right-hand': 'simple-sword', 'programming-book': 'programmaticon-i'} requiredCode: ['topEnemy'] 'back-to-back': hidesCodeToolbar: true requiredGear: {feet: 'leather-boots', torso: 'tarnished-bronze-breastplate', waist: 'leather-belt', 'programming-book': 'programmaticon-ii', eyes: 'crude-glasses', 'right-hand': 'simple-sword', 'left-hand': 'wooden-shield'} - restrictedGear: {feet: 'simple-boots', 'right-hand': 'crude-builders-hammer'} + restrictedGear: {feet: 'simple-boots', 'right-hand': 'crude-builders-hammer', 'programming-book': 'programmaticon-i'} 'ogre-encampment': requiredGear: {torso: 'tarnished-bronze-breastplate', waist: 'leather-belt', 'programming-book': 'programmaticon-ii', eyes: 'crude-glasses', 'right-hand': 'simple-sword', 'left-hand': 'wooden-shield'} - restrictedGear: {feet: 'simple-boots', 'right-hand': 'crude-builders-hammer'} + restrictedGear: {feet: 'simple-boots', 'right-hand': 'crude-builders-hammer', 'programming-book': 'programmaticon-i'} 'woodland-cleaver': requiredGear: {torso: 'tarnished-bronze-breastplate', waist: 'leather-belt', 'programming-book': 'programmaticon-ii', eyes: 'crude-glasses', 'right-hand': 'long-sword', 'left-hand': 'wooden-shield', wrists: 'sundial-wristwatch', feet: 'leather-boots'} - restrictedGear: {feet: 'simple-boots', 'right-hand': 'simple-sword'} + restrictedGear: {feet: 'simple-boots', 'right-hand': 'simple-sword', 'programming-book': 'programmaticon-i'} 'shield-rush': requiredGear: {torso: 'tarnished-bronze-breastplate', waist: 'leather-belt', 'programming-book': 'programmaticon-ii', eyes: 'crude-glasses', 'right-hand': 'long-sword', 'left-hand': 'bronze-shield', wrists: 'sundial-wristwatch'} - restrictedGear: {'left-hand': 'wooden-shield'} + restrictedGear: {'left-hand': 'wooden-shield', 'programming-book': 'programmaticon-i'} # Warrior branch 'peasant-protection': requiredGear: {torso: 'tarnished-bronze-breastplate', waist: 'leather-belt', 'programming-book': 'programmaticon-ii', eyes: 'wooden-glasses', 'right-hand': 'long-sword', 'left-hand': 'bronze-shield', wrists: 'sundial-wristwatch'} - restrictedGear: {eyes: 'crude-glasses'} + restrictedGear: {eyes: 'crude-glasses', 'programming-book': 'programmaticon-i'} 'munchkin-swarm': requiredGear: {torso: 'tarnished-bronze-breastplate', waist: 'leather-belt', 'programming-book': 'programmaticon-ii', eyes: 'wooden-glasses', 'right-hand': 'long-sword', 'left-hand': 'bronze-shield', wrists: 'sundial-wristwatch'} - restrictedGear: {} + restrictedGear: {'programming-book': 'programmaticon-i'} # Ranger branch 'munchkin-harvest': requiredGear: {waist: 'leather-belt', 'programming-book': 'programmaticon-ii', eyes: 'wooden-glasses', 'right-hand': 'long-sword', 'left-hand': 'bronze-shield', wrists: 'sundial-wristwatch'} - restrictedGear: {} + restrictedGear: {'programming-book': 'programmaticon-i'} 'swift-dagger': requiredGear: {waist: 'leather-belt', 'programming-book': 'programmaticon-ii', eyes: 'wooden-glasses', 'right-hand': 'crude-crossbow', 'left-hand': 'crude-dagger', wrists: 'sundial-wristwatch'} - restrictedGear: {eyes: 'crude-glasses'} + restrictedGear: {eyes: 'crude-glasses', 'programming-book': 'programmaticon-i'} allowedHeroes: ['ninja', 'trapper', 'forest-archer'] 'shrapnel': requiredGear: {waist: 'leather-belt', 'programming-book': 'programmaticon-ii', eyes: 'wooden-glasses', 'right-hand': 'crude-crossbow', 'left-hand': 'weak-charge', wrists: 'sundial-wristwatch'} - restrictedGear: {eyes: 'crude-glasses', 'left-hand': 'crude-dagger'} + restrictedGear: {eyes: 'crude-glasses', 'left-hand': 'crude-dagger', 'programming-book': 'programmaticon-i'} allowedHeroes: ['ninja', 'trapper', 'forest-archer'] # Wizard branch 'arcane-ally': requiredGear: {waist: 'leather-belt', 'programming-book': 'programmaticon-ii', eyes: 'wooden-glasses', 'right-hand': 'long-sword', 'left-hand': 'bronze-shield', wrists: 'sundial-wristwatch'} - restrictedGear: {eyes: 'crude-glasses'} + restrictedGear: {eyes: 'crude-glasses', 'programming-book': 'programmaticon-i'} 'touch-of-death': requiredGear: {waist: 'leather-belt', 'programming-book': 'programmaticon-ii', eyes: 'wooden-glasses', 'right-hand': 'enchanted-stick', 'left-hand': 'unholy-tome-i', wrists: 'sundial-wristwatch'} - restrictedGear: {} + restrictedGear: {'programming-book': 'programmaticon-i'} allowedHeroes: ['librarian', 'potion-master', 'sorcerer'] 'bonemender': requiredGear: {waist: 'leather-belt', 'programming-book': 'programmaticon-ii', eyes: 'wooden-glasses', 'right-hand': 'enchanted-stick', 'left-hand': 'book-of-life-i', wrists: 'sundial-wristwatch'} - restrictedGear: {'left-hand': 'unholy-tome-i'} + restrictedGear: {'left-hand': 'unholy-tome-i', 'programming-book': 'programmaticon-i'} requiredCode: ['canCast'] allowedHeroes: ['librarian', 'potion-master', 'sorcerer'] 'coinucopia': - requiredGear: {'programming-book': 'programmaticon-i', feet: 'leather-boots', 'programming-book': 'programmaticon-ii', flag: 'basic-flags'} - restrictedGear: {} + requiredGear: {'programming-book': 'programmaticon-ii', feet: 'leather-boots', flag: 'basic-flags'} + restrictedGear: {'programming-book': 'programmaticon-i'} 'copper-meadows': - requiredGear: {'programming-book': 'programmaticon-i', feet: 'leather-boots', 'programming-book': 'programmaticon-ii', flag: 'basic-flags', eyes: 'wooden-glasses'} - restrictedGear: {} + requiredGear: {'programming-book': 'programmaticon-ii', feet: 'leather-boots', flag: 'basic-flags', eyes: 'wooden-glasses'} + restrictedGear: {'programming-book': 'programmaticon-i'} 'drop-the-flag': - requiredGear: {'programming-book': 'programmaticon-i', feet: 'leather-boots', 'programming-book': 'programmaticon-ii', flag: 'basic-flags', eyes: 'wooden-glasses', 'right-hand': 'crude-builders-hammer'} - restrictedGear: {'right-hand': 'long-sword'} + requiredGear: {'programming-book': 'programmaticon-ii', feet: 'leather-boots', flag: 'basic-flags', eyes: 'wooden-glasses', 'right-hand': 'crude-builders-hammer'} + restrictedGear: {'right-hand': 'long-sword', 'programming-book': 'programmaticon-i'} 'deadly-pursuit': - requiredGear: {'programming-book': 'programmaticon-i', feet: 'leather-boots', 'programming-book': 'programmaticon-ii', flag: 'basic-flags', eyes: 'wooden-glasses', 'right-hand': 'crude-builders-hammer'} - restrictedGear: {'right-hand': 'long-sword'} + requiredGear: {'programming-book': 'programmaticon-ii', feet: 'leather-boots', flag: 'basic-flags', eyes: 'wooden-glasses', 'right-hand': 'crude-builders-hammer'} + restrictedGear: {'right-hand': 'long-sword', 'programming-book': 'programmaticon-i'} 'rich-forager': - requiredGear: {'programming-book': 'programmaticon-i', feet: 'leather-boots', 'programming-book': 'programmaticon-ii', flag: 'basic-flags', eyes: 'wooden-glasses', torso: 'tarnished-bronze-breastplate', 'right-hand': 'long-sword', 'left-hand': 'bronze-shield'} - restrictedGear: {'right-hand': 'crude-builders-hammer'} + requiredGear: {'programming-book': 'programmaticon-ii', feet: 'leather-boots', flag: 'basic-flags', eyes: 'wooden-glasses', torso: 'tarnished-bronze-breastplate', 'right-hand': 'long-sword', 'left-hand': 'bronze-shield'} + restrictedGear: {'right-hand': 'crude-builders-hammer', 'programming-book': 'programmaticon-i'} 'multiplayer-treasure-grove': - requiredGear: {'programming-book': 'programmaticon-i', feet: 'leather-boots', 'programming-book': 'programmaticon-ii', flag: 'basic-flags', eyes: 'wooden-glasses', torso: 'tarnished-bronze-breastplate'} - restrictedGear: {} + requiredGear: {'programming-book': 'programmaticon-ii', feet: 'leather-boots', flag: 'basic-flags', eyes: 'wooden-glasses', torso: 'tarnished-bronze-breastplate'} + restrictedGear: {'programming-book': 'programmaticon-i'} 'siege-of-stonehold': requiredGear: {} restrictedGear: {} diff --git a/app/views/play/level/tome/SpellView.coffee b/app/views/play/level/tome/SpellView.coffee index 818f13fab..0582b9fb8 100644 --- a/app/views/play/level/tome/SpellView.coffee +++ b/app/views/play/level/tome/SpellView.coffee @@ -263,7 +263,7 @@ module.exports = class SpellView extends CocoView intersects = => return true for range in @readOnlyRanges when @ace.getSelectionRange().intersects(range) false - + intersectsLeft = => leftRange = @ace.getSelectionRange().clone() if leftRange.start.column > 0 @@ -304,7 +304,7 @@ module.exports = class SpellView extends CocoView finishRange row - 1, startRow, startColumn startRow = startColumn = null if startRow? and startColumn? - finishRange @aceSession.getLength() - 1, startRow, startColumn + finishRange @aceSession.getLength() - 1, startRow, startColumn # Override write operations that intersect with default code interceptCommand @ace, 'onPaste', preventReadonly @@ -530,6 +530,7 @@ module.exports = class SpellView extends CocoView @lockDefaultCode true @recompile cast Backbone.Mediator.publish 'tome:spell-loaded', spell: @spell + @updateLines() recompileIfNeeded: => @recompile() if @recompileNeeded From 86be36621d7fc378e1d1e61601e8d5df780c5d86 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Thu, 4 Dec 2014 11:27:14 -0800 Subject: [PATCH 5/6] Sped up real-time playback on some more non-randomized levels. --- app/lib/world/world.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/lib/world/world.coffee b/app/lib/world/world.coffee index d640d705d..a4ee8aaea 100644 --- a/app/lib/world/world.coffee +++ b/app/lib/world/world.coffee @@ -102,7 +102,7 @@ module.exports = class World if @realTime and not @countdownFinished @realTimeSpeedFactor = 1 unless @showsCountdown - if @levelID in ['thornbush-farm', 'back-to-back', 'ogre-encampment', 'woodland-cleaver', 'shield-rush', 'peasant-protection', 'munchkin-swarm'] + if @levelID in ['village-guard', 'thornbush-farm', 'back-to-back', 'ogre-encampment', 'woodland-cleaver', 'shield-rush', 'peasant-protection', 'munchkin-swarm', 'munchkin-harvest', 'swift-dagger', 'shrapnel', 'arcane-ally', 'touch-of-death', 'bonemender'] @realTimeSpeedFactor = 3 if @showsCountdown return setTimeout @finishCountdown(continueLaterFn), REAL_TIME_COUNTDOWN_DELAY From 7025f0a48822bb3e3664363b8815a6aa70a2fbc0 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Thu, 4 Dec 2014 11:55:53 -0800 Subject: [PATCH 6/6] Another hotfix for people having preferredLanguage set to null. It's preventing people from subscribing because they can't put a User object that does not validate. Still can't repro, but it's happened to a lot of people and continues to happen to new people signing up. --- app/schemas/models/user.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/schemas/models/user.coffee b/app/schemas/models/user.coffee index 00bd6d483..015145768 100644 --- a/app/schemas/models/user.coffee +++ b/app/schemas/models/user.coffee @@ -103,7 +103,7 @@ _.extend UserSchema.properties, emailHash: {type: 'string'} #Internationalization stuff - preferredLanguage: {type: 'string', 'enum': c.getLanguageCodeArray()} + preferredLanguage: {'enum': [null].concat(c.getLanguageCodeArray())} signedCLA: c.date({title: 'Date Signed the CLA'}) wizard: c.object {},