More translations, fixed existing ones

This commit is contained in:
Jens Bremmekamp 2013-12-18 21:12:51 +01:00
parent f7a6acd494
commit bdb799da32
9 changed files with 378 additions and 17 deletions

View file

@ -26,15 +26,14 @@ exports.dialog = {
'', '',
'So funktioniert\'s:', 'So funktioniert\'s:',
'', '',
' * Stelle mit git-Kommandos die Ausganssituation her', ' * Stelle mit Git-Befehlen die Ausganssituation her',
' * Leg den Startpunkt mit ```define start``` fest', ' * Leg den Startpunkt mit ```define start``` fest',
' * Gib eine Abfolge von git-Kommandos ein, welche die (optimale) Lösung darstellen', ' * Gib eine Abfolge von Git-Befehlen ein, welche die (optimale) Lösung darstellen',
' * Leg den Ziel-Baum mit ```define goal``` fest. Damit markierst du den Endpunkt der Lösung', ' * Leg den Ziel-Baum mit ```define goal``` fest. Damit markierst du den Endpunkt der Lösung',
' * Optionally define a hint with ```define hint```',
' * Gib einen Hinweis mittels ```define hint``` an, wenn du willst', ' * Gib einen Hinweis mittels ```define hint``` an, wenn du willst',
' * Änder den Namen mittels ```define name```', ' * Änder den Namen mittels ```define name```',
' * Wenn du magst, erstelle einen schönene Einführungsdialog mit ```edit dialog```', ' * Wenn du magst, erstelle einen schönene Einführungsdialog mit ```edit dialog```',
' * Gib das Kommando ```finish``` ein um deinen Level als JSON auszugeben!' ' * Gib das Kommando ```finish``` ein um deinen Level als JSON auszugeben'
] ]
} }
}], }],

View file

@ -10,14 +10,14 @@ exports.dialog = {
] ]
} }
}], }],
'en_US': [{ 'de_DE': [{
type: 'ModalAlert', type: 'ModalAlert',
options: { options: {
markdowns: [ markdowns: [
'## Super gemacht!', '## Super gemacht',
'', '',
'Du hast den level in *{numCommands}* command(s) gelöst;', 'Du hast den Level in *{numCommands}* Befehl(en) gelöst;',
'unsere Lösung braucht {best}.' 'meine Lösung besteht aus {best}.'
] ]
} }
}], }],

View file

@ -62,7 +62,7 @@ exports.dialog = {
'## Willkommen bei LearnGitBranching!', '## Willkommen bei LearnGitBranching!',
'', '',
'Diese Anwendung wurde geschrieben um die umfangreichen', 'Diese Anwendung wurde geschrieben um die umfangreichen',
'Zusammenhänge beim Arbeiten mit Branches in git zu', 'Zusammenhänge beim Arbeiten mit Branches in Git zu',
'verdeutlichen. Wir hoffen du hast Spaß und lernst', 'verdeutlichen. Wir hoffen du hast Spaß und lernst',
'vielleicht sogar etwas dabei!', 'vielleicht sogar etwas dabei!',
'', '',
@ -72,7 +72,7 @@ exports.dialog = {
'', '',
'[http://pcottle.github.io/learnGitBranching/?demo](http://pcottle.github.io/learnGitBranching/?demo)', '[http://pcottle.github.io/learnGitBranching/?demo](http://pcottle.github.io/learnGitBranching/?demo)',
'', '',
'Genervt von diesem Fenster? Häng `?NODEM` an die url um es los zu werden, siehe unten:', 'Genervt von diesem Fenster? Häng `?NODEMO` an die URL um es los zu werden, siehe unten:',
'', '',
'[http://pcottle.github.io/learnGitBranching/?NODEMO](?NODEMO)' '[http://pcottle.github.io/learnGitBranching/?NODEMO](?NODEMO)'
] ]
@ -83,7 +83,7 @@ exports.dialog = {
markdowns: [ markdowns: [
'## Git-Kommandos', '## Git-Kommandos',
'', '',
'Dir steht eine große Zahl von git-Kommandos im Sandkasten-Modus zur Verfügung. Unter anderem', 'Dir steht eine große Zahl von Git-Befehlen im Sandkasten-Modus zur Verfügung. Unter anderem',
'', '',
' * commit', ' * commit',
' * branch', ' * branch',
@ -101,9 +101,9 @@ exports.dialog = {
markdowns: [ markdowns: [
'## Teilen macht Spaß!', '## Teilen macht Spaß!',
'', '',
'Teile diese git-Bäume mit deinen Freunden mittels `export tree` und `import tree`', 'Teile diese Git-Bäume mit deinen Freunden mittels `export tree` und `import tree`',
'', '',
'Hast du Wissenswertes zu git zu vermitteln? Versuch einen Level mit `build level` zu bauen oder probier den Level eines Freundes mit `import level` aus', 'Hast du Wissenswertes zu Git zu vermitteln? Versuch einen Level mit `build level` zu bauen oder probier den Level eines Freundes mit `import level` aus',
'', '',
'Um alle Kommandos zu sehen, gib `show commands` ein. Darunter gibt\'s kleine Schätze wie `undo` und `reset`', 'Um alle Kommandos zu sehen, gib `show commands` ein. Darunter gibt\'s kleine Schätze wie `undo` und `reset`',
'', '',

View file

@ -4,10 +4,12 @@ exports.level = {
"startTree": "{\"branches\":{\"master\":{\"target\":\"C7\",\"id\":\"master\"}},\"commits\":{\"C0\":{\"parents\":[],\"id\":\"C0\",\"rootCommit\":true},\"C1\":{\"parents\":[\"C0\"],\"id\":\"C1\"},\"C2\":{\"parents\":[\"C1\"],\"id\":\"C2\"},\"C3\":{\"parents\":[\"C1\"],\"id\":\"C3\"},\"C4\":{\"parents\":[\"C3\"],\"id\":\"C4\"},\"C5\":{\"parents\":[\"C2\"],\"id\":\"C5\"},\"C6\":{\"parents\":[\"C4\",\"C5\"],\"id\":\"C6\"},\"C7\":{\"parents\":[\"C6\"],\"id\":\"C7\"}},\"HEAD\":{\"target\":\"master\",\"id\":\"HEAD\"}}", "startTree": "{\"branches\":{\"master\":{\"target\":\"C7\",\"id\":\"master\"}},\"commits\":{\"C0\":{\"parents\":[],\"id\":\"C0\",\"rootCommit\":true},\"C1\":{\"parents\":[\"C0\"],\"id\":\"C1\"},\"C2\":{\"parents\":[\"C1\"],\"id\":\"C2\"},\"C3\":{\"parents\":[\"C1\"],\"id\":\"C3\"},\"C4\":{\"parents\":[\"C3\"],\"id\":\"C4\"},\"C5\":{\"parents\":[\"C2\"],\"id\":\"C5\"},\"C6\":{\"parents\":[\"C4\",\"C5\"],\"id\":\"C6\"},\"C7\":{\"parents\":[\"C6\"],\"id\":\"C7\"}},\"HEAD\":{\"target\":\"master\",\"id\":\"HEAD\"}}",
"name": { "name": {
"en_US": "Multiple parents", "en_US": "Multiple parents",
"de_DE": "Mehrere Vorgänger",
"zh_CN": "多个父提交记录" "zh_CN": "多个父提交记录"
}, },
"hint": { "hint": {
"en_US": "Use `git branch bugWork` with a target commit to create the missing reference.", "en_US": "Use `git branch bugWork` with a target commit to create the missing reference.",
"de_DE": "Nutze `git branch bugWork` mit einem Ziel-Commit um die fehlende Referenz zu erstellen.",
"zh_CN": "使用`git branch bugWork`加上一个目标提交记录来创建消失的引用。" "zh_CN": "使用`git branch bugWork`加上一个目标提交记录来创建消失的引用。"
}, },
"startDialog": { "startDialog": {
@ -98,6 +100,93 @@ exports.level = {
} }
] ]
}, },
"de_DE": {
"childViews": [
{
"type": "ModalAlert",
"options": {
"markdowns": [
"### Vorgänger ansteuern",
"",
"Wie der Operator `~` akzeptiert auch der Operator `^` eine optionale Anzahl.",
"",
"Anstatt der Anzahl von Schritten, die zurückgegangen werden soll (das ist das, was man bei `~` angibt), bezeichnet die Anzahl nach `^` welchem Vorgänger bei einem Merge-Commit gefolgt werden soll. Du erinnerst dich, dass ein Merge-Commit mehrere Vorgänger hat; es gilt also aus diesen auszuwählen.",
"",
"Normalerweise folgt Git dem \"ersten\" Vorgänger des Merge-Commit, aber durch Angabe einer Zahl nach dem `^` lässt sich dieses Verhalten ändern.",
"",
"Aber genug gequatscht, schauen wir's uns in Aktion an.",
""
]
}
},
{
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Hier sehen wir einen Merge-Commit. Wenn wir einen Checkout von `master^` ohne Zahl machen, wird Git auf den ersten Vorgänger des Commits zurückgehen. ",
"",
"*(In unserer Darstellung befindet sich der erste Vorgänger direkt über dem Merge-Commit.)*"
],
"afterMarkdowns": [
"Simpel -- so kennen wir das."
],
"command": "git checkout master^",
"beforeCommand": "git checkout HEAD^; git commit; git checkout master; git merge C2"
}
},
{
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Jetzt versuchen wir mal stattdessen den zweiten Vorgänger anzugeben ..."
],
"afterMarkdowns": [
"Gesehen? Wir gehen zu dem anderen Vorgänger zurück."
],
"command": "git checkout master^2",
"beforeCommand": "git checkout HEAD^; git commit; git checkout master; git merge C2"
}
},
{
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Die Operatoren `^` und `~` geben uns eine Menge Möglichkeiten für das Navigieren durch den Commit-Baum:"
],
"afterMarkdowns": [
"Bämm!"
],
"command": "git checkout HEAD~; git checkout HEAD^2; git checkout HEAD~2",
"beforeCommand": "git commit; git checkout C0; git commit; git commit; git commit; git checkout master; git merge C5; git commit"
}
},
{
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Noch abgefahrener: die beiden Operatoren können verkettet werden. Aufgepasst:"
],
"afterMarkdowns": [
"Gleicher Ablauf wie zuvor, nur alles in einem Befehl."
],
"command": "git checkout HEAD~^2~2",
"beforeCommand": "git commit; git checkout C0; git commit; git commit; git commit; git checkout master; git merge C5; git commit"
}
},
{
"type": "ModalAlert",
"options": {
"markdowns": [
"### Setzen wir's um",
"",
"Erstelle einen neuen Branch an dem angegebenen Ziel, um diesen Level abzuschließen.",
"",
"Es ist natürlich möglich den Commit einfach direkt anzugeben (also mit sowas wie `C6`), aber ich fordere dich heraus stattdessen die relativen Operatoren zu benutzen!"
]
}
}
]
},
"zh_CN": { "zh_CN": {
"childViews": [ "childViews": [
{ {

View file

@ -55,6 +55,7 @@ var sequenceInfo = exports.sequenceInfo = {
intro: { intro: {
displayName: { displayName: {
'en_US': 'Introduction Sequence', 'en_US': 'Introduction Sequence',
'de_DE': 'Einführung',
'ja': 'まずはここから', 'ja': 'まずはここから',
'fr_FR': 'Séquence d\'introduction', 'fr_FR': 'Séquence d\'introduction',
'zh_CN': '基础篇', 'zh_CN': '基础篇',
@ -62,6 +63,7 @@ var sequenceInfo = exports.sequenceInfo = {
}, },
about: { about: {
'en_US': 'A nicely paced introduction to the majority of git commands', 'en_US': 'A nicely paced introduction to the majority of git commands',
'de_DE': 'Eine gut abgestimmte Einführung in die wichtigsten Git-Befehle',
'ja': 'gitの基本的なコマンド群をほどよいペースで学ぶ', 'ja': 'gitの基本的なコマンド群をほどよいペースで学ぶ',
'fr_FR': 'Une introduction en douceur à la majorité des commandes git', 'fr_FR': 'Une introduction en douceur à la majorité des commandes git',
'zh_CN': '循序渐进介绍git主要命令', 'zh_CN': '循序渐进介绍git主要命令',
@ -71,12 +73,14 @@ var sequenceInfo = exports.sequenceInfo = {
rampup: { rampup: {
displayName: { displayName: {
'en_US': 'Ramping Up', 'en_US': 'Ramping Up',
'de_DE': 'Aufstieg',
'ja': '次のレベルに進もう', 'ja': '次のレベルに進もう',
'fr_FR': 'Montée en puissance', 'fr_FR': 'Montée en puissance',
'zh_CN': '进阶篇' 'zh_CN': '进阶篇'
}, },
about: { about: {
'en_US': 'The next serving of 100% git awesomes-ness. Hope you\'re hungry', 'en_US': 'The next serving of 100% git awesomes-ness. Hope you\'re hungry',
'de_DE': 'Eine Portion Git-Wahnsinn zum Thema Navigation',
'ja': '更にgitの素晴らしさを堪能しよう', 'ja': '更にgitの素晴らしさを堪能しよう',
'fr_FR' : 'Le prochain service git 100% excellence. J\'espère que vous êtes affamés', 'fr_FR' : 'Le prochain service git 100% excellence. J\'espère que vous êtes affamés',
'zh_CN': '接下来是git的超赞特性。迫不及待了吧' 'zh_CN': '接下来是git的超赞特性。迫不及待了吧'
@ -85,24 +89,29 @@ var sequenceInfo = exports.sequenceInfo = {
remote: { remote: {
tab: 'remote', tab: 'remote',
displayName: { displayName: {
'en_US': 'Push & Pull -- Git Remotes!' 'en_US': 'Push & Pull -- Git Remotes!',
'de_DE': 'Push & Pull -- entfernte Repositories'
}, },
about: { about: {
'en_US': 'Time to share your 1\'s and 0\'s kids; coding just got social' 'en_US': 'Time to share your 1\'s and 0\'s kids; coding just got social',
'de_DE': 'Zeit Eure 1en und 0en zu teilen; Coding mit sozialer Komponente'
} }
}, },
remoteAdvanced: { remoteAdvanced: {
tab: 'remote', tab: 'remote',
displayName: { displayName: {
'en_US': 'To Origin And Beyond -- Advanced Git Remotes!' 'en_US': 'To Origin And Beyond -- Advanced Git Remotes!',
'de_DE': 'Bis zum origin und noch weiter'
}, },
about: { about: {
'en_US': 'And you thought being a benevolent dictator would be fun...' 'en_US': 'And you thought being a benevolent dictator would be fun...',
'de_DE': 'Git Remotes für Fortgeschrittene'
} }
}, },
move: { move: {
displayName: { displayName: {
'en_US': 'Moving Work Around', 'en_US': 'Moving Work Around',
'de_DE': 'Code Umherschieben',
// INTL out of sync :( // INTL out of sync :(
'ja': 'Rebaseをモにする', 'ja': 'Rebaseをモにする',
'fr_FR': 'Maîtrise Rebase, Luke!', 'fr_FR': 'Maîtrise Rebase, Luke!',
@ -111,6 +120,7 @@ var sequenceInfo = exports.sequenceInfo = {
}, },
about: { about: {
'en_US': 'Get comfortable with modifying the source tree', 'en_US': 'Get comfortable with modifying the source tree',
'de_DE': 'Gewöhn dich daran, den Git-Baum zu verändern',
// INTL out of sync :( // INTL out of sync :(
'ja': '話題のrebaseってどんなものだろうって人にオススメ', 'ja': '話題のrebaseってどんなものだろうって人にオススメ',
'fr_FR': 'Qu\'est-ce que ce rebase dont tout le monde parle ? Découvrez-le !', 'fr_FR': 'Qu\'est-ce que ce rebase dont tout le monde parle ? Découvrez-le !',
@ -121,6 +131,7 @@ var sequenceInfo = exports.sequenceInfo = {
mixed: { mixed: {
displayName: { displayName: {
'en_US': 'A Mixed Bag', 'en_US': 'A Mixed Bag',
'de_DE': 'Ein Kessel Buntes',
'ja': '様々なtips', 'ja': '様々なtips',
'fr_FR': 'Un assortiment', 'fr_FR': 'Un assortiment',
'ko': '종합선물세트', 'ko': '종합선물세트',
@ -128,6 +139,7 @@ var sequenceInfo = exports.sequenceInfo = {
}, },
about: { about: {
'en_US': 'A mixed bag of Git techniques, tricks, and tips', 'en_US': 'A mixed bag of Git techniques, tricks, and tips',
'de_DE': 'Eine bunte Mischung von Techniken, Tipps und Tricks',
'ja': 'gitを使う上での様々なtipsやテクニックなど', 'ja': 'gitを使う上での様々なtipsやテクニックなど',
'fr_FR': 'Un assortiment de techniques et astuces pour utiliser Git', 'fr_FR': 'Un assortiment de techniques et astuces pour utiliser Git',
'ko': 'Git을 다루는 다양한 팁과 테크닉을 다양하게 알아봅니다', 'ko': 'Git을 다루는 다양한 팁과 테크닉을 다양하게 알아봅니다',
@ -137,11 +149,13 @@ var sequenceInfo = exports.sequenceInfo = {
advanced: { advanced: {
displayName: { displayName: {
'en_US': 'Advanced Topics', 'en_US': 'Advanced Topics',
'de_DE': 'Themen für Fortgeschrittene',
'fr_FR': 'Sujets Avancés', 'fr_FR': 'Sujets Avancés',
'zh_CN': '高级主题' 'zh_CN': '高级主题'
}, },
about: { about: {
'en_US': 'For the truly brave!', 'en_US': 'For the truly brave!',
'de_DE': '... die nie ein Mensch zuvor gesehen hat.',
'fr_FR': 'Pour les plus courageux !', 'fr_FR': 'Pour les plus courageux !',
'zh_CN': '只为真正的勇士!' 'zh_CN': '只为真正的勇士!'
} }

View file

@ -3,6 +3,7 @@ exports.level = {
"solutionCommand": "git branch bugFix;git checkout bugFix", "solutionCommand": "git branch bugFix;git checkout bugFix",
"name": { "name": {
"en_US": "Branching in Git", "en_US": "Branching in Git",
"de_DE": "Branches in Git",
"ja": "Gitのブランチ", "ja": "Gitのブランチ",
"ko": "Git에서 브랜치 쓰기", "ko": "Git에서 브랜치 쓰기",
"fr_FR": "Gérer les branches avec Git", "fr_FR": "Gérer les branches avec Git",
@ -10,6 +11,7 @@ exports.level = {
}, },
"hint": { "hint": {
"en_US": "Make a new branch with \"git branch [name]\" and check it out with \"git checkout [name]\"", "en_US": "Make a new branch with \"git branch [name]\" and check it out with \"git checkout [name]\"",
"de_DE": 'Lege mit "git branch [Name]" einen neuen Branch an und checke ihn mit "git checkout [Name] aus',
"ja": "ブランチの作成(\"git branch [ブランチ名]\")と、チェックアウト(\"git checkout [ブランチ名]\"", "ja": "ブランチの作成(\"git branch [ブランチ名]\")と、チェックアウト(\"git checkout [ブランチ名]\"",
"fr_FR": "Faites une nouvelle branche avec \"git branch [nom]\" positionnez-vous dans celle-ci avec \"git checkout [nom]\"", "fr_FR": "Faites une nouvelle branche avec \"git branch [nom]\" positionnez-vous dans celle-ci avec \"git checkout [nom]\"",
"zh_CN": "用 'git branch [分支名]' 来创建分支,用 'git checkout [分支名]' 切换到分支", "zh_CN": "用 'git branch [分支名]' 来创建分支,用 'git checkout [分支名]' 切换到分支",
@ -97,6 +99,79 @@ exports.level = {
} }
] ]
}, },
"de_DE": {
"childViews": [
{
"type": "ModalAlert",
"options": {
"markdowns": [
"## Branches in Git",
"",
"Branches sind in Git extrem schlank. Sie sind einfach Verweise auf einen bestimmten Commit -- das ist alles. Es ist unter Git-Enthusiasten deshalb gängige Praxis, früh und oft Branches anzulegen.",
"",
"Da das Anlegen von Branches keinen Plattenplatz und Speicher verbraucht, liegt es nahe die Arbeit in kleine logische Häppchen aufzuteilen, anstatt mit wenigen großen, monolithischen Branches zu hantieren.",
"",
"Wir werden sehen wie Commits und Branches zusammengehören sobald wir anfangen mit beiden zu arbeiten. Bis hierhin merk dir einfach, dass ein Branch im Prinzip bedeutet \"ich möchte die Arbeit, die in diesem Commit und seinen Vorgändern steckt, sichern\"."
]
}
},
{
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Schauen wir mal, wie Branches in der Praxis aussehen.",
"",
"Wir legen einen neuen Branch an und nennen ihn `issue`:"
],
"afterMarkdowns": [
"Und das war's auch schon, mehr ist es nicht. Der Branch `issue` zeigt nun auf den Commit `C1`."
],
"command": "git branch issue",
"beforeCommand": ""
}
},
{
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Lass uns mal ein wenig auf dem neuen Branch arbeiten. Machen wir einen Commit:"
],
"afterMarkdowns": [
"Oi! Der Branch `master` hat sich verändert, aber der Branch `issue` nicht. Das liegt daran, dass wir nicht \"auf\" dem neuen Branch waren, weshalb das Sternchen `*` auch hinter `master` steht."
],
"command": "git commit",
"beforeCommand": "git branch issue"
}
},
{
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Sagen wir Git also erst mal auf welchem Branch wir arbeiten wollen, und zwar mit",
"",
"```",
"git checkout [Name]",
"```",
"",
"Das wird uns auf den neuen Branch bringen bevor wir unsere Änderungen committen."
],
"afterMarkdowns": [
"Und fertig! Unsere Änderungen wurden im neuen Branch gespeichert."
],
"command": "git checkout issue; git commit",
"beforeCommand": "git branch issue"
}
},
{
"type": "ModalAlert",
"options": {
"markdowns": [
"Cool! Jetzt bist du soweit, selbst Branches anzulegen. Wenn dieses Fenster geschlossen wurde, leg einen neuen Branch namens `bugFix` an und schalte auf diesen um."
]
}
}
]
},
"ja": { "ja": {
"childViews": [ "childViews": [
{ {

View file

@ -1,6 +1,7 @@
exports.level = { exports.level = {
"name": { "name": {
"en_US": "Introduction to Git Commits", "en_US": "Introduction to Git Commits",
"de_DE": "Einführung in Git Commits",
"fr_FR": "Introduction aux commits avec Git", "fr_FR": "Introduction aux commits avec Git",
"ja": "Gitのコミット", "ja": "Gitのコミット",
'ko': 'Git 커밋 소개', 'ko': 'Git 커밋 소개',
@ -11,6 +12,7 @@ exports.level = {
"startTree": "{\"branches\":{\"master\":{\"target\":\"C1\",\"id\":\"master\"}},\"commits\":{\"C0\":{\"parents\":[],\"id\":\"C0\",\"rootCommit\":true},\"C1\":{\"parents\":[\"C0\"],\"id\":\"C1\"}},\"HEAD\":{\"target\":\"master\",\"id\":\"HEAD\"}}", "startTree": "{\"branches\":{\"master\":{\"target\":\"C1\",\"id\":\"master\"}},\"commits\":{\"C0\":{\"parents\":[],\"id\":\"C0\",\"rootCommit\":true},\"C1\":{\"parents\":[\"C0\"],\"id\":\"C1\"}},\"HEAD\":{\"target\":\"master\",\"id\":\"HEAD\"}}",
"hint": { "hint": {
"en_US": "Just type in 'git commit' twice to finish!", "en_US": "Just type in 'git commit' twice to finish!",
"de_DE": "Gib einfach zweimal 'git commit' ein um den Level abzuschließen",
"fr_FR": "Il suffit de saisir 'git commit' deux fois pour réussir !", "fr_FR": "Il suffit de saisir 'git commit' deux fois pour réussir !",
"zh_CN": "敲两次 'git commit' 就好啦!", "zh_CN": "敲两次 'git commit' 就好啦!",
"ja": "'git commit'コマンドを2回打てば完成!", "ja": "'git commit'コマンドを2回打てば完成!",
@ -62,6 +64,48 @@ exports.level = {
} }
] ]
}, },
"de_DE": {
"childViews": [
{
"type": "ModalAlert",
"options": {
"markdowns": [
"## Git Commits",
"Ein Commit in ein Git-Repository speichert einen Abbildung aller Dateien in deinem Projektverzeichnis. Es ist wie ein riesiges Kopieren und Einfügen, nur besser.",
"",
"Allerdings will Git die Commits so schlank wie möglich halten, also kopiert es nicht einfach stur das ganze Verzeichnis jedes Mal wenn du committest. Es kann (wenn möglich) Commits als Menge von Änderungen zusammenpacken, von einer Version des Repositorys zur nächsten.",
"",
"Außerdem führt Git ein Protokoll darüber welche Commits wann gemacht wurden, und welcher auf welchen folgt. Deshalb werden die Commits hier mit ihrem Vorgänger über sich gezeigt -- wir verwenden Pfeile zur Darstellung der Beziehung. Dieses Protokoll zu haben ist eine tolle Sache für jeden, der an einem Projekt arbeitet.",
"",
"Das war jetzt eine Menge Neues, aber vorerst kannst du dir Commits einfach als Abbildungen des Projekts vorstellen. Commits sind sehr ressourcenschonend, und zwischen ihnen wechseln geht superschnell!"
]
}
},
{
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Mal sehen wie das in der Praxis ist. Rechts sehen wir ein (kleines) Git-Repository. Es gibt akutell zwei Commits -- den initialen, `C0`, und den danach, `C1`, der irgendwelche Änderungen enthält.",
"",
"Klick die Schaltfläche unten um einen neuen Commit zu erzeugen:"
],
"afterMarkdowns": [
"Fertig. Klasse! Wir haben gerade Änderungen gemacht und als Commit im Repository gespeichert. Der Commit, den wir gerade gemacht haben, hat den Vorgänger `C1`; der verweist wiederum auf den Commit, auf dem er basiert: `C0`."
],
"command": "git commit",
"beforeCommand": ""
}
},
{
"type": "ModalAlert",
"options": {
"markdowns": [
"Probier das committen gleich mal aus! Mach zwei Commits um den Level abzuschließen."
]
}
}
]
},
"ja": { "ja": {
"childViews": [ "childViews": [
{ {

View file

@ -3,6 +3,7 @@ exports.level = {
"solutionCommand": "git checkout -b bugFix;git commit;git checkout master;git commit;git merge bugFix", "solutionCommand": "git checkout -b bugFix;git commit;git checkout master;git commit;git merge bugFix",
"name": { "name": {
"en_US": "Merging in Git", "en_US": "Merging in Git",
"de_DE": "Mergen in git",
"fr_FR": "Faire des 'merge' (fusions de branches) avec Git", "fr_FR": "Faire des 'merge' (fusions de branches) avec Git",
"ko": "Git에서 브랜치 합치기(Merge)", "ko": "Git에서 브랜치 합치기(Merge)",
"ja": "ブランチとマージ", "ja": "ブランチとマージ",
@ -10,6 +11,7 @@ exports.level = {
}, },
"hint": { "hint": {
"en_US": "Remember to commit in the order specified (bugFix before master)", "en_US": "Remember to commit in the order specified (bugFix before master)",
"de_DE": "Denk dran in der angegebenen Reihenfolge zu committen (erst bugFix, dann master)",
"ja": "指示された順番でコミットすることmasterの前にbugFixで", "ja": "指示された順番でコミットすることmasterの前にbugFixで",
"fr_FR": "Pensez à faire des commits dans l'ordre indiqué (bugFix avant master)", "fr_FR": "Pensez à faire des commits dans l'ordre indiqué (bugFix avant master)",
"zh_CN": "记住按指定的顺序提交bugFix先于master", "zh_CN": "记住按指定的顺序提交bugFix先于master",
@ -88,6 +90,75 @@ exports.level = {
} }
] ]
}, },
"de_DE": {
"childViews": [
{
"type": "ModalAlert",
"options": {
"markdowns": [
"## Branches und Mergen",
"",
"Super! Wir wissen jetzt, wie man committet und einen Branch anlegt. Jetzt müssen wir nur noch rauskriegen, wie man die Arbeit, die in verschiedenen Branches steckt, zusammenführen kann. Dann können wir einen neuen Branch erstellen, darin ein neues Feature entwickeln, und das dann in den ursprünglichen Zweig integrieren.",
"",
"Die einfachste Methode, mit der man Branches zusammenführen kann, ist `git merge`. Das Mergen erzeugt in git einen speziellen Commit, der zwei Vorgänger hat. Ein solcher Commit bedeutet im Prinzip \"ich möchte alle Arbeit von dem Vorgänger hier und dem dort *und* allen ihren jeweiligen Vorgängern miteinander kombinieren\".",
"",
"Grafisch dargestellt ist es einfacher zu verstehen, lass es uns mal ansehen"
]
}
},
{
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Hier haben wir zwei Branches; jeder besteht jeweils aus einem eigenen Commit. Das bedeutet, dass keiner der beiden Branches alle Inhalte des gesamten Repositorys kennt. Das werden wir mit einem Merge ändern.",
"",
"Wir werden den Branch `bugFix` in `master` integrieren"
],
"afterMarkdowns": [
"Wow! Hast du das gesehen? Zunächst mal zeigt `master` jetzt auf einen Commit mit zwei Vorgängern. Wenn du den beiden Pfeilen immer weiter folgst, kommst du an jedem Commit im Repository vorbei. Das heißt `master` enthält jetzt alles, was es im Repository gibt.",
"",
"Siehst du außerdem wie sich die Farben der Commits verändert haben? Um die Vorgänge zu verdeutlichen hab ich etwas Farbe ins Spiel gebracht. Jeder Branch hat seine eindeutige Farbe. Jeder Merge Commit bekommt als Farbe eine Mischung aus den Farben seiner Vorgänger.",
"",
"Wir sehen also, dass die Farbe des Branch `master` in alle Commits gemischt wurde, die von `bugFix` aber nicht. Ändern wir das ..."
],
"command": "git merge bugFix",
"beforeCommand": "git checkout -b bugFix; git commit; git checkout master; git commit"
}
},
{
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Mergen wir `master` in `bugFix`:"
],
"afterMarkdowns": [
"Da `bugFix` ein Vorgänger von `master` war, musste git hier kaum etwas tun; es verschiebt `bugFix` einfach auf den Commit, auf den auch `master` zeigt.",
"",
"Jetzt haben alle Commits dieselbe Farbe, das heißt jeder Branch enthält die Informationen des gesamten Repositorys! Juhu!"
],
"command": "git checkout bugFix; git merge master",
"beforeCommand": "git checkout -b bugFix; git commit; git checkout master; git commit; git merge bugFix"
}
},
{
"type": "ModalAlert",
"options": {
"markdowns": [
"Führe folgendes aus, um diesen Level zu schaffen:",
"",
"* Lege einen neuen Branch `bugFix` an",
"* Checke `bugFix` aus mittels `git checkout bugFix`",
"* Mach einen Commit",
"* Geh mit `git checkout` zum `master` zurück",
"* Mach noch einen Commit",
"* Merge den Branch `bugFix` in `master` mit `git merge`",
"",
"*Denk dran, du kannst diese Meldung mit dem Befehl `help level` so oft anzeigen, wie du willst!*"
]
}
}
]
},
"ja": { "ja": {
"childViews": [ "childViews": [
{ {

View file

@ -3,6 +3,7 @@ exports.level = {
"solutionCommand": "git checkout -b bugFix;git commit;git checkout master;git commit;git checkout bugFix;git rebase master", "solutionCommand": "git checkout -b bugFix;git commit;git checkout master;git commit;git checkout bugFix;git rebase master",
"name": { "name": {
"en_US": "Rebase Introduction", "en_US": "Rebase Introduction",
"de_DE": "Einführung in Rebase",
"ja": "Rebaseの解説", "ja": "Rebaseの解説",
"fr_FR": "Introduction à rebase", "fr_FR": "Introduction à rebase",
"ko": "리베이스(rebase)의 기본", "ko": "리베이스(rebase)의 기본",
@ -10,6 +11,7 @@ exports.level = {
}, },
"hint": { "hint": {
"en_US": "Make sure you commit from bugFix first", "en_US": "Make sure you commit from bugFix first",
"de_DE": "Geh vor dem committen sicher, dass du auf bugFix arbeitest",
"ja": "初めにbugFixを指した状態でコミットする", "ja": "初めにbugFixを指した状態でコミットする",
"fr_FR": "Assurez-vous de bien faire votre en premier votre commit sur bugFix", "fr_FR": "Assurez-vous de bien faire votre en premier votre commit sur bugFix",
"ko": "bugFix 브랜치에서 먼저 커밋하세요", "ko": "bugFix 브랜치에서 먼저 커밋하세요",
@ -86,6 +88,73 @@ exports.level = {
} }
] ]
}, },
"de_DE": {
"childViews": [
{
"type": "ModalAlert",
"options": {
"markdowns": [
"## Git Rebase",
"",
"Der zweite Weg um Inhalte aus verschiedenen Branches zu kombinieren ist `git rebase`. Rebasen nimmt im Prinzip eine Menge von Commits, \"kopiert\" sie und packt sie auf etwas anderes drauf.",
"",
"Auch wenn das erst mal komisch klingt liegt der Vorteil von Rebase darin, dass man es benutzen kann um hübsch lineare Abfolgen von Commits zu erhalten. Das Commit-Protokoll des Repositorys wird durch Rebase eine ganze Ecke einfacher aussehen, weil Merge Commits vermieden werden.",
"",
"Schauen wir's uns mal in Aktion an ..."
]
}
},
{
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Hier haben wir wieder zwei Branches; wie du siehst ist `bugFix` aktuell ausgewählt (sieht man am `*`).",
"",
"Wir würden jetzt gerne unsere Arbeit aus `bugFix` direkt auf den `master` packen. Das Ergebnis wäre, dass alle aktuellen Änderungen in `master` auch im Branch `bugFix` sind.",
"",
"Das machen wir mit dem Befehl `git rebase`:"
],
"afterMarkdowns": [
"Hammer! Was wir in `bugFix` gemacht haben ist jetzt oben auf `master` draufgepackt und wir haben eine schön lineare Abfolge von Commits bekommen.",
"",
"Commit `C3` existiert immer noch irgendwo (deswegen ist er blaß dargestellt) und `C3'` ist die \"Kopie\" die wir auf den `master` gepackt haben.",
"",
"Aber `master` ist jetzt nicht aktualisiert worden, lass uns das gerade noch nachholen ..."
],
"command": "git rebase master",
"beforeCommand": "git commit; git checkout -b bugFix C1; git commit"
}
},
{
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Jetzt sind wir im `master`. Lass uns den mal auf `bugFix` rebasen ..."
],
"afterMarkdowns": [
"So! Da `master` ein Vorgänger von `bugFix` war konnte Git hier einfach den Bezeichner `master` auf denselben Commit schieben, auf den auch `bugFix` zeigt."
],
"command": "git rebase bugFix",
"beforeCommand": "git commit; git checkout -b bugFix C1; git commit; git rebase master; git checkout master"
}
},
{
"type": "ModalAlert",
"options": {
"markdowns": [
"Um dieses Level abzuschließen musst du folgendes tun:",
"",
"* Einen neuen Branch namens `bugFix` auschecken",
"* Einen Commit machen",
"* Zurück zum `master` wechseln und noch einmal committen",
"* `bugFix` auschecken und auf den `master` rebasen",
"",
"Viel Erfolg!"
]
}
}
]
},
"ja": { "ja": {
"childViews": [ "childViews": [
{ {