merge master

This commit is contained in:
Peter Cottle 2021-03-17 08:05:16 -06:00
commit 036d5938dd
27 changed files with 1382 additions and 44 deletions

View file

@ -175,5 +175,18 @@ exports.dialog = {
]
}
}],
"it_IT": [
{
type: "ModalAlert",
options: {
markdowns: [
"## Sicuro di voler sbirciare la soluzione?",
"",
"Io credo in te, dai che ce la fai!",
],
},
},
],
};

View file

@ -342,5 +342,27 @@ exports.dialog = {
' * ```finish``` கொண்டு இந்த நிலையின் JSON!-ஐ அச்சிடுக.'
]
}
}]
}],
"it_IT": [
{
type: "ModalAlert",
options: {
markdowns: [
"## Benvenuto al generatore di livelli !",
"",
"Ecco i passaggi principali:",
"",
" * Inizializza l'ambiente con i comandi git",
" * Definisci l'albero di partenza con ```define start```",
" * Inserisci la serie di comandi git che compongono la soluzione (ottimale)",
" * Definisci l'albero finale da ottenere con ```define goal```. L'albero finale costituisce la soluzione",
" * E' possibile inserire un suggerimento con ```define hint```",
" * Modifica il nome con ```define name```",
" * E' possibile personalizzare la finestra iniziale con ```edit dialog```",
" * Inserire il comando ```finish``` per generare il livello JSON!",
],
},
},
],
};

View file

@ -199,4 +199,18 @@ exports.dialog = {
]
}
}],
"it_IT": [
{
type: "ModalAlert",
options: {
markdowns: [
"## Ben fatto!!",
"",
"Hai risolto il livello con *{numCommands}* comando(i); ",
"noi l'abbiamo risolto con {best}.",
],
},
},
],
};

View file

@ -813,4 +813,37 @@ exports.dialog = {
]
}
}],
"it_IT": [
{
type: "ModalAlert",
options: {
markdowns: [
"## Benvenuto su Learn Git Branching",
"",
"Vorresti imparare Git? Bene, sei nel posto giusto! ",
'"Learn Git Branching" è il modo più chiaro e interattivo per imparare Git ',
"su internet; sarai messo alla prova tramite livelli stimolanti, con dimostrazioni ",
"passo a passo sulle sue potenzialità, e perché no, magari ti divertirai lungo questo percorso.",
"",
"Dopo questa finestra vedrai una varietà di livelli che abbiamo da offrire. Se sei alle",
"prime armi, procedi e parti dall'inizio. Se hai delle conoscenze base di Git , ",
"prova con gli ultimi livelli più impegnativi.",
"",
"Puoi vedere tutti i comandi disponibili digitando `show commands` sul terminale.",
"",
"PS: Preferisci andare direttamente al sandbox?",
"Prova ",
"[questo link](https://pcottle.github.io/learnGitBranching/?NODEMO?locale=it_IT)",
"",
"PPS: GitHub (e il settore in generale) sta modificando il nome del ramo di default in `main` invece che `master` ",
"leggi [qui per ulteriori dettagli](https://github.com/github/renaming). In modo da adattare questo cambiamento ",
"e tenere la retrocompatibilità , questi nomi saranno considerati equivalenti. `main` sarà comunque ",
"il nome predefinito. Ci siamo impegnati per aggiornare tutti i livelli, ma ci sarà ",
"sicuramente qualcosa che potremmo aver dimenticato. Esegui una PR (o segnala un problema) se ne trovi, ",
"vi ringrazio per l'aiuto.",
],
},
},
],
};

View file

@ -19,6 +19,7 @@ exports.strings = {
'vi': 'Wao! Bạn đã phá đảo, quá tuyệt!',
'sl_SI': 'Wow! Končal si zadnjo stopnjo, fantastično!',
'pl': 'Wow! Ukończono ostatni poziom, świetnie!',
'it_IT': "Wow! Hai concluso l'ultimo livello, grandioso!",
'ta_IN': 'ஆஹா! நீங்கள் கடைசி நிலையை முடித்துள்ளீர்கள், நன்று!'
},
///////////////////////////////////////////////////////////////////////////
@ -41,6 +42,7 @@ exports.strings = {
'vi': 'Bạn có muốn chuyển sang cấp độ tiếp: *"{nextLevel}"* không?',
'sl_SI': 'Bi rad nadaljeval na *"{nextLevel}"*, naslednjo stopnjo?',
'pl': 'Czy chcesz przejść do następnego poziomu - *"{nextLevel}"*?',
'it_IT': 'Ti andrebbe di passare al prossimo livello, *"{nextLevel}"*?',
'ta_IN': 'அடுத்த நிலை * "{nextLevel}" * க்கு செல்ல விரும்புகிறீர்களா?'
},
///////////////////////////////////////////////////////////////////////////
@ -63,6 +65,7 @@ exports.strings = {
'vi': 'Tuyệt vời! Đáp án của bạn đạt chuẩn thâm chí có thể tốt hơn.',
'sl_SI': 'Bravo! Izenačil ali celo presegel si našo rešitev.',
'pl': 'Niesamowite! Rozwiązałeś zadanie w ten sam sposób lub lepiej.',
'it_IT': "Grandioso! Hai uguagliato o migliorato la nostra soluzione.",
'ta_IN': 'அருமை! எங்கள் கொடுக்க பட்ட தீர்வை நிறைவு செய்து விட்டீர்கள்.'
},
///////////////////////////////////////////////////////////////////////////
@ -85,6 +88,7 @@ exports.strings = {
'vi': 'Thử xem bạn có thể giảm xuống {best} không? :D',
'sl_SI': 'Misliš da lahko spraviš rešitev na {best}? :D',
'pl': 'Sprawdź, czy dasz radę to zrobić w {best} krokach :D',
'it_IT': "Prova a migliorarti facendolo solo con {best} comandi :D",
'ta_IN': 'நீங்கள் அதை குறைக்க முடியுமா என்று பாருங்கள் {best} :D'
},
///////////////////////////////////////////////////////////////////////////
@ -106,6 +110,8 @@ exports.strings = {
'vi': 'Cảnh báo! Mercurial cần thực hiện thu gom rác và thu nhỏ cây lịch sử của bạn.',
'sl_SI': 'Opozorilo! Mercurial ima agresivno politiko garbage collectiona in bo obrezal vaše drevo',
'pl': 'Ostrzeżenie! Mercurial prowadzi agresywną kolekcję śmieci i dlatego musi przycinać Twoje drzewo',
'it_IT':
"Attenzione! Mercurial ha un garbage collector molto aggressivo e perciò deve potare il tuo albero",
'ta_IN': 'எச்சரிக்கை! மெர்குரியல் வலிய களிவு சேகரிப்பு செய்கிறது, இதனால் உங்கள் மரத்தை கத்தரிக்க வேண்டிவரும்'
},
///////////////////////////////////////////////////////////////////////////
@ -127,6 +133,7 @@ exports.strings = {
'vi': 'Không cần thiết phải dùng tùy chọn -A trên ứng dụng này, cứ commit là được!',
'sl_SI': 'Opcija -A ni potrebna za to aplikacijo, samo commitaj!',
'pl': 'Opcja -A nie jest wymagana w tej aplikacji, po prostu zrób `commit`!',
'it_IT': "L'opzione -A non è necessiaria, fai semplicemente commit!",
'ta_IN': 'இந்த பயன்பாட்டிற்கு -A மாற்று தேவையில்லை, `கமிட்` செய்யுங்கள்'
},
///////////////////////////////////////////////////////////////////////////
@ -148,6 +155,8 @@ exports.strings = {
'vi': 'Ứng dụng này không hỗ trợ lệnh `status` vì không có tệp nhớ đệm, thay vì đó hãy dùng lệnh `hg summary`',
'sl_SI': 'Za to aplikacijo ni na voljo `status` ukaza, ker tu ni `stage-anja` datotek. Poizkusiš lahko `hg summary`',
'pl' : 'W tej aplikacji nie ma polecenia `status`, ponieważ nie ma przemieszczania plików. Zamiast tego wypróbuj `hg summary`',
'it_IT':
"Non esiste il comando status in quest'app, visto che non esiste lo staging dei file. Prova invece `hg summary`",
'ta_IN': 'கோப்புகள் எதுவும் அடுத்த படிநிலையில் இல்லை என்பதால், இந்த பயன்பாட்டிற்கான மதிப்பீடும் கட்டளை எதுவும் இல்லை. அதற்கு பதிலாக `hg summary` முயற்சிக்கவும்'
},
///////////////////////////////////////////////////////////////////////////
@ -169,6 +178,7 @@ exports.strings = {
'vi': 'Câu lệnh đó cần tùy chọn {option}!',
'sl_SI': 'Potrebujem opcijo {option} za ta ukaz!',
'pl': 'Potrzebuję opcji {option} dla tego polecenia!',
'it_IT': "Ho bisogno di {option} per quel comando!",
'ta_IN': 'எனக்கு அந்த கட்டளைக்கு மாற்று {option} தேவை'
},
///////////////////////////////////////////////////////////////////////////
@ -190,6 +200,7 @@ exports.strings = {
'vi': 'Hiện tại thì `hg log` mà không có tùy chọn -f chưa được hỗ trợ, hãy viết thêm -f.',
'sl_SI': 'hg log brez -f trenutno ni podprt, uporabi -f',
'pl': '`hg log` bez -f nie jest obecnie obsługiwany, użyj -f',
'it_IT': "hg log senza -f non è attualmente supportato, usa -f",
'ta_IN': '-f இல்லாமல் `hg log` தற்போது ஆதரிக்கப்படவில்லை, -f ஐப் பயன்படுத்தவும்'
},
///////////////////////////////////////////////////////////////////////////
@ -211,6 +222,7 @@ exports.strings = {
'vi': 'HEAD bị tách biệt!',
'sl_SI': 'Detached head!',
'pl': 'Odłączono HEAD!',
'it_IT': "Testa distaccata (Detached head)!",
'ta_IN': 'பிரிக்கப்பட்ட தலை!'
},
///////////////////////////////////////////////////////////////////////////
@ -232,6 +244,7 @@ exports.strings = {
'vi': 'Đang trên nhánh {branch}',
'sl_SI': 'Na branchu {branch}',
'pl': 'Na branch-u {branch}',
'it_IT': "Sul ramo {branch}",
'ta_IN': '{branch} கிளையில்'
},
///////////////////////////////////////////////////////////////////////////
@ -253,6 +266,7 @@ exports.strings = {
'vi': 'Sẵn sàng để commit! (khi demo thì luôn có thể commit)',
'sl_SI': 'Pripravljen za commit! (kot vedno v tem demotu)',
'pl': 'Gotowy commit! (jak zawsze w tym demo)',
'it_IT': "Pronto al commit! (come sempre in questa demo)",
'ta_IN': '`commit` செய்ய தயார்! (இந்த செயல் விளக்கத்தில் எப்போதும் செய்வதை போல)'
},
///////////////////////////////////////////////////////////////////////////
@ -275,6 +289,7 @@ exports.strings = {
'vi': 'Commit luôn đi cho nóng!',
'sl_SI': 'Hiter commit.',
'pl': 'Szybki commit.',
'it_IT': "Laura I love you, but our dogs too (Barone & Duchessa)!",
'ta_IN': 'Quick commit. Go Bears!'
},
'git-error-origin-fetch-uptodate': {
@ -295,6 +310,7 @@ exports.strings = {
'vi': 'Cập nhật mới nhất rồi!',
'sl_SI': 'Že posodobljeno!',
'pl': 'Już aktualne!',
'it_IT': "E' gia la versione più recente!",
'ta_IN': 'ஏற்கனவே புதுப்பித்த நிலையில் உள்ளது!'
},
'git-error-origin-fetch-no-ff': {
@ -315,6 +331,8 @@ exports.strings = {
'vi': 'Nhánh của bạn không đồng bộ với nhánh remote nên lệnh fetch không thực thi được.',
'sl_SI': 'Tvoj origin branch ni sinhroniziran z oddaljenim branchem, zato se fetch se ne more izvesti',
'pl': 'Twój branch nie jest zsynchronizowany ze zdalny branch-em i nie można przeprowadzić pobierania',
'it_IT':
"Il tuo ramo origin non è sincronizzato con il ramo remoto, e fetch non puù essere eseguito",
'ta_IN': 'உங்கள் மூலக் கிளை தொலைநிலைக் கிளையுடன் ஓருங்கினைக்கப்படவில்லை. `fetch` செய்ய முடியாது'
},
'git-error-origin-push-no-ff': {
@ -335,6 +353,8 @@ exports.strings = {
'vi': 'Kho chứa từ xa có sự khác biệt với kho chứa cục bộ của bạn, nên không thể tự động (fast forward) cập nhật thay đổi của bạn (và vì thế hoạt động push của bạn bị từ chối). Vui lòng kéo về thay đổi từ kho chứa từ xa, kết nạp vào nhánh hiện tại, và thử lại lần nữa. Bạn có thể dùng lệnh `git pull` hoặc `git pull --rebase`',
'sl_SI': 'Oddaljen repozitorij se je ločil od tvojega lokalnega repozitorija, zato nalaganje sprememb ni možno z `fast forward` opcijo (zato je bil `push` zavrnjen). Prosim pull-aj dol nove spremembe iz oddaljenega repozitorija, jih vključi v svoj branch, nato pa poizkusi ponovno. To lahko narediš z `git pull` ali `git pull --rebase`',
'pl' : 'Zdalne repozytorium różni się od lokalnego repozytorium, dlatego twoich zmian nie można przesłać za pomocą prostego szybkiego `fast forward` (i dlatego polecenie `push` zostało odrzucone). Najpierw zrób `pull` aby pobrać nowe zmiany do lokalnego repozytorium, zintegruj je z branch-em i spróbuj ponownie. Możesz to zrobić za pomocą `git pull` lub `git pull --rebase`',
'it_it':
"Il repository remoto è diverso dal tuo repository locale, quindi il caricamento non è un semplice fast forward (e per questo il tuo push è fallito). Per favore esegui pull per scaricare i nuovi cambiamenti dal repository remoto, incorporarli in questo ramo, e provare ancora. Puoi effettuarlo tramite i comandi git pull o git pull --rebase",
'ta_IN': 'தொலைநிலை களஞ்சியம் உங்கள் களஞ்சியத்திலிருந்து வேறுபட்டுள்ளது, எனவே உங்கள் மாற்றங்களை எளிமையான `fast forward` முறையில் பதிவேற்ற இயலாது (இதனால் உங்கள் `push` நிராகரிக்கப்பட்டது). தொலை களஞ்சியத்தில் புதிய மாற்றங்களை `pull` செய்து, அவற்றை இந்த கிளையில் இணைத்து, மீண்டும் முயற்சிக்கவும். நீங்கள் அவ்வாறு `git pull` அல்லது `git pull --rebase` கட்டளை கொண்டு செய்யலாம்'
},
'git-error-remote-branch': {
@ -355,6 +375,7 @@ exports.strings = {
'vi': 'Bạn không thể thực thi lệnh đó lên nhánh từ xa.',
'sl_SI': 'Tega ukaza ne moreš narediti na oddaljenem branchu',
'pl' : 'Nie możesz wykonać tego polecenia w zdalnej gałęzi',
'it_it': "Non puoi eseguire questo comando su un ramo remoto",
'ta_IN': 'அந்த கட்டளையை நீங்கள் தொலைநிலை கிளையில் இயக்க முடியாது'
},
'git-error-origin-required': {
@ -375,6 +396,7 @@ exports.strings = {
'vi': 'Lệnh đó yêu cầu có origin.',
'sl_SI': 'Origin je potreben za izvedbo tega ukaza',
'pl' : 'Dla tego polecenia wymagane jest źródło (origin)',
'it_IT': "E' necessario definire origin per questo comando",
'ta_IN': 'அந்த கட்டளைக்கு ஒரு துவக்க மூலம் தேவை'
},
'git-error-origin-exists': {
@ -395,6 +417,7 @@ exports.strings = {
'vi': 'Nguyên bản (origin) đã tồn tại. Bạn không thể tạo thêm 1 cái mới',
'sl_SI': 'Origin že obstaja. Ne moreš narediti novega.',
'pl' : 'Origin już istnieje! Nie możesz go ponownie założyć',
'it_IT': "Origin già esistente! Non puoi crearne uno nuovo",
'ta_IN': 'துவக்க மூலம் ஒன்று ஏற்கனவே உள்ளது! நீங்கள் மீன்டும் ஒன்றை உருவாக்க முடியாது'
},
///////////////////////////////////////////////////////////////////////////
@ -417,6 +440,9 @@ exports.strings = {
'vi': 'Bạn không thể xóa nhánh main, nhánh mà bạn đang tham chiếu tới, hoặc những gì không phải nhánh.',
'sl_SI': 'Ne moreš izbrisati main brancha, brancha na katerem si trenutno ali stvari, ki niso branchi',
'pl' : 'Nie możesz usunąć gałezi main, gałęzi na której aktualnie pracujesz, ani która nie jest gałezią',
'it_IT':
"Non puoi eliminare il ramo main, il ramo in cui sei, o cose che " +
"non sono rami",
'ta_IN': 'பிரதான கிளை, தற்ப்போது நடப்பில் உள்ள கிளை மற்றும் கிளை அல்லாத வற்றை அழிக்க இயலாது'
},
///////////////////////////////////////////////////////////////////////////
@ -438,6 +464,7 @@ exports.strings = {
'vi': 'Gộp {target} vào {current}.',
'sl_SI': 'Mergaj {target} v {current}',
'pl' : 'Łączenie {target} z {current}',
'it_IT': "Merge {target} in {current}",
'ta_IN': '{target}ஐ {current} கிளையுடன் இணை'
},
///////////////////////////////////////////////////////////////////////////
@ -459,6 +486,8 @@ exports.strings = {
'vi': 'Không có commit nào để rebase. Mọi thứ là merge commit hoặc thay đổi đã được áp dụng.',
'sl_SI': 'Ni commitov za rebase! Vse je merge commit ali pa so spremembe že dodane',
'pl' : 'Nie znaleziono commit-u do zmiany! Wszystkie commit-y oraz scalenia lub zmiany już są zastosowane',
'it_IT':
"Non ci sono commit da ribasare! Sono tutti commit di merge o i cambiamenti sono giò stati applicati",
'ta_IN': '`rebase` செய்ய எந்த கமிட்டும் இல்லை, அனைத்தும் இணைப்பு கமிட்கள் அல்லது முன்பே இணைக்கப்பட்டவை'
},
///////////////////////////////////////////////////////////////////////////
@ -480,6 +509,7 @@ exports.strings = {
'vi': 'Không có gì để làm ...',
'sl_SI': 'Ničesar za narediti ...',
'pl' : 'Nie ma nic do zrobienia...',
'it_IT': "Niente da fare...",
'ta_IN': 'செய்வதற்க்கு ஒன்றும் இல்லை...'
},
///////////////////////////////////////////////////////////////////////////
@ -501,6 +531,7 @@ exports.strings = {
'vi': 'Đang fast forward...',
'sl_SI': 'Fast forwardiranje',
'pl' : 'Fast forward...',
'it_it': "Fast forwarding...",
'ta_IN': 'Fast forward...'
},
///////////////////////////////////////////////////////////////////////////
@ -522,6 +553,7 @@ exports.strings = {
'vi': 'Nhánh đã được cập nhật mới nhất.',
'sl_SI': 'Branch je že posodobljen',
'pl' : 'Branch jest już aktualny',
'it_IT': "Il ramo è già aggiornato",
'ta_IN': 'இந்த கிளை ஏற்கனவே புதுப்பித்த நிலையில் உள்ளது...'
},
///////////////////////////////////////////////////////////////////////////
@ -543,6 +575,7 @@ exports.strings = {
'vi': 'Tham chiếu {ref} không tồn tại hoặc không thể tìm thấy.',
'sl_SI': 'Ref {ref} new obstaja ali je neznan',
'pl' : 'Odnośnik {ref} nie istnieje lub jest nieznany',
'it_IT': "Il riferimento (ref) {ref} non esiste o è sconosciuto",
'ta_IN': '{ref} இல்லை அல்லது தெரியவில்லை'
},
///////////////////////////////////////////////////////////////////////////
@ -564,6 +597,7 @@ exports.strings = {
'vi': 'Commit {commit} mà không có {match}.',
'sl_SI': 'Commit {commit} nima {match}',
'pl' : 'Commit {commit} nie ma {match}',
'it_IT': "Commit {commit} non ha un {match}",
'ta_IN': '{commit}க்கு {match} எதுவும் இல்லை'
},
///////////////////////////////////////////////////////////////////////////
@ -585,6 +619,7 @@ exports.strings = {
'vi': 'Cảnh báo! HEAD bị tách rời',
'sl_SI': 'Opozorilo! Detached HEAD stanje',
'pl' : 'Ostrzeżenie!! Odłączony tryb HEAD',
'it_IT': "Attenzione!! Situazione di testa distaccata (Detached HEAD)",
'ta_IN': 'எச்சரிக்கை !! `HEAD` துன்டிக்கப்பட்ட நிலையில் உள்ளது'
},
///////////////////////////////////////////////////////////////////////////
@ -606,6 +641,7 @@ exports.strings = {
'vi': 'Không cần thêm tập tin trong bản giới thiệu này.',
'sl_SI': 'Ni potrebe po dodajanju datotetk v tem demotu',
'pl' : 'Nie ma potrzeby dodawania plików w tym demo',
'it_IT': "Non c'è bisogno di aggiungere file in questa demo",
'ta_IN': 'இந்த நடைமுறையில் கோப்புகளை சேர்க்க தேவையில்லை'
},
///////////////////////////////////////////////////////////////////////////
@ -627,6 +663,7 @@ exports.strings = {
'vi': 'Các tham số bạn chỉ định không tương thích hoặc không chính xác.',
'sl_SI': 'Opcije, ki si jih podal, so nezdružljive ali napačne',
'pl' : 'Podane przez Ciebie opcje są niezgodne lub nieprawidłowe',
'it_IT': "Le opzioni che hai specificato sono incompatibili o sbagliate",
'ta_IN': 'நீங்கள் குறிப்பிட்ட அந்த மற்றிகள் பொருந்தாது அல்லது தவறானவை'
},
///////////////////////////////////////////////////////////////////////////
@ -648,6 +685,7 @@ exports.strings = {
'vi': 'Commit {commit} đã tồn tại trong những thay đổi của bạn. Đang hủy!',
'sl_SI': 'Commit {commit} že obstaja v tvoji množici sprememb, prekinjam!',
'pl' : 'Commit {commit} już istnieje w Twoim zbiorze zmian, przerywam!',
'it_IT': "Il commit {commit} è già presente, annullo!",
'ta_IN': '{commit} உங்கள் மாற்றங்களின் தொகுப்பில் ஏற்கனவே உள்ளது, கட்டளை கைவிடப்பட்டது!'
},
///////////////////////////////////////////////////////////////////////////
@ -669,6 +707,8 @@ exports.strings = {
'vi': 'Trong trạng thái tách rời `HEAD` thì không thể `reset`. Dùng `checkout` nếu bạn muốn di chuyển.',
'sl_SI': 'Ni možno resetat, zaradi detached HEADa',
'pl' : 'Nie można zresetować w odłączonej HEAD! Użyj opcji `checkout`, jeśli chcesz się przenieść',
'it_IT':
"Non posso fare reset in modalità testa distaccata (detached head)! Utilizza checkout se vuoi spostarti",
'ta_IN': 'பிரிக்கப்பட்ட தலையில் மீட்டமைக்க முடியாது! நீங்கள் நகர்த்த விரும்பினால் `checkout` பயன்படுத்தவும்'
},
///////////////////////////////////////////////////////////////////////////
@ -698,6 +738,10 @@ exports.strings = {
'sl_SI': 'Privzeto delovanje za reset na LearnGitBranching je --hard, zato lahko to izpustiš. Na pravem gitu je --mixed.',
'pl' : 'Domyślnym zachowaniem dla polecenia `reset` w LearnGitBranching jest parametr --hard, więc możesz pominąć tę opcję, ' +
'Pamiętaj tylko, że domyślne zachowanie rzeczywistego GIT-a jest parametr --mixed.',
'it_IT':
"Il comportamento base per i resets su LearnGitBranching è --hard, per cui puoi tranquillamente omettere " +
"quella opzione se ti sei stancato di scriverla. Ricorda però che in Git, " +
"l'opzione di default è --mixed.",
'ta_IN': 'The default behavior for resets on LearnGitBranching is a --hard, so feel free to omit ' +
'that option if you get tired of typing it out in our lessons. Just remember that the default ' +
'behavior on actual Git is --mixed.'
@ -722,6 +766,9 @@ exports.strings = {
'vi': 'Không có khái nệm thêm tập tin đệm(staging file), nên tùy chọn đó là bất hợp lệ.',
'sl_SI': 'Tu ni možnosti addanja/stageanja datotek, zato je ta ukaz nepravilen',
'pl' : 'Nie ma koncepcji na dodawanie/indeksowanie zmian, więc opcja lub polecenie jest niepoprawne.',
'it_IT':
"Non esiste il concetto di aggiungere / indicizzare i file, quindi quell'opzione o " +
"comando non è valido!",
'ta_IN': 'கோப்புகளைச் சேர்ப்பது / நிலைநிறுத்துவது என்ற கருத்து ஒன்றும் இல்லை, எனவே அந்த மற்றி அல்லது கட்டளை தவறானது'
},
///////////////////////////////////////////////////////////////////////////
@ -743,6 +790,7 @@ exports.strings = {
'vi': 'Hoàn tác {oldCommit}:{oldMsg}.',
'sl_SI': 'Revertanje {oldCommit}: {oldMsg}',
'pl' : 'Cofam {oldCommit} : {oldMsg}',
'it_IT': "Ripristino {oldCommit}: {oldMsg}",
'ta_IN': '{oldCommit}: {oldMsg} மீன்டும் மாற்றியமைக்கிறது'
},
///////////////////////////////////////////////////////////////////////////
@ -764,6 +812,7 @@ exports.strings = {
'vi': 'Có thể có nhiều nhất {upper} tham số cho {what}.',
'sl_SI': 'Pričakovanih je največ {upper} argumentov za {what}',
'pl' : 'Oczekuję maksymalne {upper} parametrów dla {what}',
'it_IT': "Mi aspetto al massimo {upper} parametro/i per {what}",
'ta_IN': 'நான் {what}க்கான உள்ளீடு(கள்) அதிகபட்சமாக {upper} எதிர்பார்க்கிறேன்'
},
///////////////////////////////////////////////////////////////////////////
@ -785,6 +834,7 @@ exports.strings = {
'vi': 'Cần ít nhất {lower} tham số cho {what}.',
'sl_SI': 'Pričakovanih je najmanj {lower} argumentov za {what}',
'pl' : 'Oczekuję co najmniej {lower} parametrów dla {what}',
'it_IT': "Mi aspetto come minimo {lower} parametro/i per {what}",
'ta_IN': 'நான் {what}க்கான உள்ளீடு(கள்) குறைந்தபட்சம் {lower} எதிர்பார்க்கிறேன்'
},
///////////////////////////////////////////////////////////////////////////
@ -806,6 +856,7 @@ exports.strings = {
'vi': 'Lệnh đó không chấp nhận các tham số chung.',
'sl_SI': 'Ta ukaz ne sprejme splošnih ukazov',
'pl' : 'To polecenie nie przyjmuje żadnych ogólnych parametrów',
'it_IT': "Quel comando non accetta parametri generici",
'ta_IN': 'அந்த கட்டளை பொதுவான உள்ளீடு எதுவும் ஏற்கவில்லை'
},
///////////////////////////////////////////////////////////////////////////
@ -813,6 +864,7 @@ exports.strings = {
'__desc__': 'Message that appears in git console when command was not recognized.',
'en_US': 'The command "{command}" isn\'t supported, sorry!',
'zh_TW': '很抱歉,目前無法支援指令 "{command}"!',
'it_IT': 'Mi spiace, il comando "{command}" non è supportato.',
'pl' : 'Polecenie "{command}" niestety nie jest obsługiwane.'
},
///////////////////////////////////////////////////////////////////////////
@ -834,6 +886,7 @@ exports.strings = {
'vi': 'Sao chép chuỗi cây bên dưới.',
'sl_SI': 'Skopiraj besedilo drevesa spodaj',
'pl' : 'Skopiuj poniższy kod',
'it_IT': "Copia il codice dell'albero qua sotto",
'ta_IN': '`tree string`ஐ கீழே நகலெடுக்கவும்'
},
///////////////////////////////////////////////////////////////////////////
@ -856,6 +909,7 @@ exports.strings = {
'vi': 'Học nhánh Git.',
'sl_SI': 'Nauči se Git Branching',
'pl': 'Naucz się Git Branching-u',
'it_IT': "Impara Git Branching",
'ta_IN': 'கிட் கிளை அமைத்தல்'
},
///////////////////////////////////////////////////////////////////////////
@ -877,6 +931,7 @@ exports.strings = {
'vi': 'Chọn một cấp độ.',
'sl_SI': 'Izberi stopnjo',
'pl': 'Wybierz poziom',
'it_IT': "Scegli un livello",
'ta_IN': 'ஒரு நிலையை தேர்வு செய்யுங்கள்'
},
///////////////////////////////////////////////////////////////////////////
@ -894,6 +949,7 @@ exports.strings = {
'vi': 'Bài học chính',
'sl_SI': 'Glavno',
'pl': 'Główny',
'it_IT': "Menu",
'ta_IN': 'பிரதானம்'
},
///////////////////////////////////////////////////////////////////////////
@ -911,6 +967,7 @@ exports.strings = {
'vi' : 'Bài học về thao tác từ xa',
'sl_SI': 'Oddaljeno',
'pl' : 'Zdalny',
'it_IT': "Remoto",
'ta_IN': 'தொலைநிலை'
},
///////////////////////////////////////////////////////////////////////////
@ -932,6 +989,8 @@ exports.strings = {
'vi': 'Xin lỗi, chúng tôi cần giữ tên nhánh ngắn để tiện minh họa. Tên nhánh của bạn đã bị cắt xuống 9 ký tự là "{branch}".',
'sl_SI': 'Oprosti, imena branchev moramo obdržati kratka zaradi vizualizacije. Tvoje ime brancha je bilo skrajšano na 9 črk, kar predstavlja "{branch}"',
'pl': 'Przepraszamy, ze względu na wizualizacje musimy zachować krótkie nazwy gałęzi. Nazwa Twojej gałęzi została skrócona do 9 znaków, w wyniku czego otrzymano "{branch}"',
'it_IT':
'Scusa ma i nomi dei rami devono essere brevi per essere visualizzati. Il nome del tuo ramo è stato accorciato a 9 caratteri, rinominandolo come "{branch}"',
'ta_IN': 'மன்னிக்கவும், காட்சிகளுக்கு கிளை பெயர்களை குறுகியதாக வைத்திருக்க வேண்டி உள்ளது. உங்கள் கிளையின் பெயர் 9 எழுத்துகளாக சுருக்கப்பட்டு, "{branch}" ஆக மற்றப்பட்டுள்ளது'
},
///////////////////////////////////////////////////////////////////////////
@ -953,6 +1012,7 @@ exports.strings = {
'vi': 'Tên nhánh "{branch}" không được chấp nhận.',
'sl_SI': 'To ime brancha "{branch}" ni dovoljeno!',
'pl': 'Ta nazwa gałęzi "{branch}" jest niedozwolona!',
'it_IT': 'Il nome "{branch}" per i rami non è consentito!',
'ta_IN': '"{branch}" ஐ கிளையின் பெயராக ஏற்க்க இயலாது!'
},
///////////////////////////////////////////////////////////////////////////
@ -974,6 +1034,7 @@ exports.strings = {
'vi': 'Tên thẻ "{tag}" không được chấp nhận.',
'sl_SI': 'To ime tag-a "{tag}" ni dovoljeno!',
'pl': 'Ta nazwa tagu "{tag}" jest niedozwolona!',
'it_IT': 'Il nome "{tag}" per i tag non è consentito!',
'ta_IN': '"{tag}" ஐ குறிச்சொல் பெயராக ஏற்க்க இயலாது!'
},
///////////////////////////////////////////////////////////////////////////
@ -995,6 +1056,7 @@ exports.strings = {
'vi': 'Tùy chọn "{option}" không được hỗ trợ.',
'sl_SI': 'Opcija "{option}" ni podprta! ',
'pl': 'Opcja "{option}" nie jest obsługiwana!',
'it_IT': 'L\'opzione "{option}" non è supportata!',
'ta_IN': '"{option}" மாற்று செயல் ஆதரிக்கப்படவில்லை!'
},
///////////////////////////////////////////////////////////////////////////
@ -1016,6 +1078,7 @@ exports.strings = {
'vi': 'git <lệnh> [<tham số>]',
'sl_SI': 'git <ukaz> [<argumenti>]',
'pl': 'git <polecenie> [<parametry>]',
'it_IT': "git <command> [<args>]",
'ta_IN': 'git <command> [<args>]'
},
///////////////////////////////////////////////////////////////////////////
@ -1037,6 +1100,7 @@ exports.strings = {
'vi': 'Các lệnh được hỗ trợ:',
'sl_SI': 'Podprti ukazi:',
'pl': 'Obsługiwane polecenia:',
'it_IT': "Comandi supportati:",
'ta_IN': 'செயலாக்கம் உள்ள கட்டளைகள்;'
},
///////////////////////////////////////////////////////////////////////////
@ -1058,6 +1122,7 @@ exports.strings = {
'vi': 'Cách dùng:',
'sl_SI': 'Uporaba:',
'pl': 'Użyj',
'it_IT': "Utilizzo:",
'ta_IN': 'பயன்பாடு'
},
///////////////////////////////////////////////////////////////////////////
@ -1079,6 +1144,7 @@ exports.strings = {
'vi': 'Phiên bản Git TTC-Solutions.1.0',
'sl_SI': 'Git Verzija PCOTTLE.1.0',
'pl' : 'Wersja GIT-a OLSZA-YSC-1.0',
'it_IT': "Git Version SHARDANA_SOFT.1.0.0",
'ta_IN': 'Git Version PCOTTLE.1.0'
},
///////////////////////////////////////////////////////////////////////////
@ -1100,6 +1166,7 @@ exports.strings = {
'vi': 'Cây lật...',
'sl_SI': 'Obračanje drevesa ...',
'pl' : 'Odwracanie drzewa...',
'it_IT': "Girando l'albero...",
'ta_IN': 'Flipping tree...'
},
///////////////////////////////////////////////////////////////////////////
@ -1121,6 +1188,7 @@ exports.strings = {
'vi': 'Làm mới cây...',
'sl_SI': 'Osveževanje drevesa ...',
'pl' : 'Odświeżanie drzewa...',
'it_IT': "Aggiornando l'albero...",
'ta_IN': 'Refreshing tree...'
},
///////////////////////////////////////////////////////////////////////////
@ -1142,6 +1210,7 @@ exports.strings = {
'vi': 'Ngôn ngữ được thay đổi thành {locale}.',
'sl_SI': 'Locale nastavljen na {locale}',
'pl' : 'Ustawiono język na {locale}',
'it_IT': "Locale impostato a {locale}",
'ta_IN': 'பிரதேசம் {locale}ஆக மற்ற பட்டுள்ளது'
},
///////////////////////////////////////////////////////////////////////////
@ -1163,6 +1232,7 @@ exports.strings = {
'vi': 'Ngôn ngữ được đổi thành mặc định: {locale}.',
'sl_SI': 'Locale ponastavljen na {locale}',
'pl' : 'Przywrócono język do wartości domyślnych, czyli {locale}',
'it_IT': "Locale resettato al valore di default, che è {locale}",
'ta_IN': 'பிரதேசம் இயல்புநிலை {locale}க்கி மீட்டமைக்கப்பட்டுள்ளது'
},
///////////////////////////////////////////////////////////////////////////
@ -1184,6 +1254,7 @@ exports.strings = {
'vi': 'Vui lòng dùng một trong các lệnh sau để có thêm thông tin:.',
'sl_SI': 'Prosim uporabi enega od naslednjih ukazov',
'pl' : 'Aby uzyskać więcej informacji, użyj jednego z następujących poleceń:',
'it_IT': "Usa uno dei seguenti comandi per maggiori informazioni:",
'ta_IN': 'மேலும் தகவலுக்கு பின்வரும் கட்டளைகளில் ஒன்றைப் பயன்படுத்தவும்:'
},
///////////////////////////////////////////////////////////////////////////
@ -1205,6 +1276,7 @@ exports.strings = {
'vi': 'Dưới đây là danh sách tất cả các lệnh hiện hành:.',
'sl_SI': 'Tu je seznam vseh možnih ukazov:',
'pl' : 'Oto lista wszystkich dostępnych poleceń:',
'it_IT': "Ecco la lista con tutti i comandi disponibili:",
'ta_IN': 'கிடைக்கக்கூடிய அனைத்து கட்டளைகளின் பட்டியல்:'
},
///////////////////////////////////////////////////////////////////////////
@ -1226,6 +1298,7 @@ exports.strings = {
'vi': 'Thay đổi thư mục thành "/directories/dont/matter/in/this/demo".',
'sl_SI': 'Mapa spremenjena na "/directories/dont/matter/in/this/demo"',
'pl' : 'Katalog zmieniony na "/home/users/windows/pl/demo"',
'it_IT': 'Cartella modificata in "/directories/dont/matter/in/this/demo"',
'ta_IN': 'அடைவு "/directories/dont/matter/in/this/demo"க்கு மாற்றப்பட்டது'
},
///////////////////////////////////////////////////////////////////////////
@ -1247,6 +1320,7 @@ exports.strings = {
'vi': 'DontWorryAboutFilesInThisDemo.txt (ĐừngLoLắngVềTậpTinTrongBảnGiớiThiệuNày.txt)',
'sl_SI': 'DontWorryAboutFilesInThisDemo.txt',
'pl' : 'SpokojnieToTylkoPlikDemo.txt',
'it_IT': "NoNdEvIpReOcCuPaRtIdEiFiLeInQuEsTaDeMo.txt",
'ta_IN': 'DontWorryAboutFilesInThisDemo.txt'
},
'mobile-alert': {
@ -1267,6 +1341,8 @@ exports.strings = {
'vi': 'Đáng tiếc là ứng dụng không thể nhận thông tin từ điện thoại hay máy tính bảng, hãy sử dụng máy tính cá nhân, đáng để bỏ công mà :D',
'sl_SI': 'LGB ne more sprejeti ukazov na mobilni napravi, obiščite nas na računalinku! Je vredno :D ',
'pl' : 'Przepraszamy, ale LearnGitBranching nie obsługuje wpisywania komend z urządzeń mobilnych. Odwiedź LearnGitBranching na komputerze stacjonarnym, warto! :D',
'it_IT':
"LGB non funziona su mobile, vieni a trovarci da pc! Ne vale veramente la pena :D",
'ta_IN': 'LGBஆல் மொபைலில் உள்ளீட்டைப் பெற முடியாது, டெஸ்க்டாப்பில் பார்வையிடவும், அது பயணுள்ளது :D'
},
///////////////////////////////////////////////////////////////////////////
@ -1288,6 +1364,8 @@ exports.strings = {
'vi': 'Hãy chia sẻ cây này với bạn của mình! Họ có thể dùng "import tree" để tải.',
'sl_SI': 'Deli to drevo s prijatelji! Lahko ga naložijo z "import tree"',
'pl' : 'Udostępnij to drzewo znajomym! Mogą je załadować za pomocą "import tree"',
'it_IT':
'Condividi quest\'albero con i tuoi amici! Può essere importato tramite "import tree"',
'ta_IN': 'இந்த `tree`ஐ நண்பர்களுடன் பகிர்ந்து கொள்ளுங்கள்! அவர்கள் அதை "import tree" மூலம் பெறலாம்'
},
///////////////////////////////////////////////////////////////////////////
@ -1309,6 +1387,7 @@ exports.strings = {
'vi': 'Dán một chuỗi JSON xuống bên dưới.',
'sl_SI': 'Prilepi JSON kodo spodaj!',
'pl' : 'Wklej poniżej obiekt z kodem JSON!',
'it_IT': "Incolla un blob JSON qui sotto!",
'ta_IN': 'ஒரு JSON blob-ஐ கீழே ஒட்டவும்'
},
///////////////////////////////////////////////////////////////////////////
@ -1330,6 +1409,7 @@ exports.strings = {
'vi': 'Tất cả đáp án đã được xóa, bạn có thể bắt đầu lại từ đầu.',
'sl_SI': 'Rešena mapa je ponastavljena, začel boš lahko na novo!',
'pl' : 'Rozwiązania zostały wyczyszczone, zaczynasz z czystą kartą.',
'it_IT': "I progresse salvati sono stati resettati, stai iniziando da zero!",
'ta_IN': 'தீர்க்கப்பட்ட கோப்பு மீட்டமைக்கப்பட்டது, நீங்கள் ஆரம்பத்தில் இருந்து தொடங்குகிறீர்கள்!'
},
///////////////////////////////////////////////////////////////////////////
@ -1351,6 +1431,8 @@ exports.strings = {
'vi': 'Bạn hiện không ở cấp độ nào cả! Hãy bắt đầu một cấp độ với "levels".',
'sl_SI': 'Nisi v stopnji! Si v peskovniku, začni stopnjo z "levels"',
'pl' : 'Nie jesteś na poziomie! Jesteś w trybie piaskownicy, zacznij poziom wpisując "levels"',
'it_IT':
'Non ti trovi in un livello! Sei nella sandbox, inizia un livello con "levels"',
'ta_IN': 'ஒரு நிலையில் இல்லாமல், நீங்கள் sandbox-இல் உள்ளீர்கள்! "நிலைகள்" மூலம் ஒரு நிலையைத் தொடங்கவும்'
},
///////////////////////////////////////////////////////////////////////////
@ -1372,6 +1454,8 @@ exports.strings = {
'vi': 'Không tìm thấy cấp độ cho định danh "{id}". Mở cửa sổ chọn cấp độ.',
'sl_SI': 'Stopnja za ta id "{id}" ni bila najdena! Odpiram pogled za izbiro stopnje',
'pl' : 'Nie znaleziono poziomu {id}!. Otwieranie widoku wyboru poziomu...',
'it_IT':
'Non è stato trovato un livello con id "{id}"! Apro la finestra con la selezione dei livelli',
'ta_IN': 'அந்த "{id}"-க்கான நிலை காணப்படவில்லை! நிலை தேர்வு செய்யும் திரை திறக்கிறது'
},
///////////////////////////////////////////////////////////////////////////
@ -1393,6 +1477,7 @@ exports.strings = {
'vi': 'Không có gì để hoàn tác!',
'sl_SI': 'Undo seznam je prazen!',
'pl' : 'Nie ma już poleceń do cofnięcia!',
'it_IT': "Non sono presenti comandi da annullare!",
'ta_IN': 'மீள்பதிவு அடுக்கு காலியாக உள்ளது!'
},
///////////////////////////////////////////////////////////////////////////
@ -1414,6 +1499,8 @@ exports.strings = {
'vi': 'Bạn đã vượt qua cấp độ này. Thử cấp độ khác với "levels" hoặc dùng "sandbox" để trở lại hộp cát.',
'sl_SI': 'To stopnjo si že rešil, poizkusi druge stopnje z "levels" ali pojdi nazaj v peskovnik s "sandbox"',
'pl' : 'Już rozwiązałeś ten poziom, wypróbuj inne, używając "levels" lub wróć do trybu piaskownicy za pomocą polecenia "sandbox"',
'it_IT':
'Hai già risolto questo livello, prova altri livelli con "levels" o torna alla sandbox con "sandbox"',
'ta_IN': 'நீங்கள் ஏற்கனவே இந்த நிலையை தீர்த்துள்ளீர்கள், "நிலைகள்" மூலம் பிற நிலைகளை முயற்சிக்கவும் அல்லது "sandbox" உடன் sandbox-க்குச் செல்லவும்'
},
///////////////////////////////////////////////////////////////////////////
@ -1431,6 +1518,7 @@ exports.strings = {
'vi' : 'ĐÃ XONG!!\n:D',
'sl_SI': 'Rešeno!!\n:D',
'pl' : 'Rozwiązany!!\n:D',
'it_IT': "Risolto!!\n:D",
'ta_IN': 'தீர்க்கப்பட்டது!!\n:D'
},
///////////////////////////////////////////////////////////////////////////
@ -1452,6 +1540,7 @@ exports.strings = {
'vi': 'Ở cấp độ này thì lệnh git đó bị vô hiệu hóa.',
'sl_SI': 'Ta git ukaz je onemogočen za to stopnjo!',
'pl' : 'To polecenie Gita jest wyłączone na tym poziomie!',
'it_IT': "Questo comando git è disabilitato per questo livello!",
'ta_IN': 'இந்த நிலையில் அந்த கிட் கட்டளை முடக்கப்பட்டுள்ளது'
},
///////////////////////////////////////////////////////////////////////////
@ -1473,6 +1562,8 @@ exports.strings = {
'vi': 'Đây là chuỗi JSON cho cấp độ này! Hãy chia sẻ với người khắc hoặc với tôi qua GitHub.',
'sl_SI': 'Tu je JSON za to stopnjo! Deli ga z nekom ali ga pošlji meni na GitHub',
'pl' : 'To jest JSON dla tego poziomu. Udostępnij go, komu chcesz, lub wyślij do mnie na GitHub.',
'it_IT':
"Ecco il JSON per questo livello! Condividilo con qualcuno o inviamelo tramite GitHub",
'ta_IN': 'இதோ இந்த நிலைக்கான JSON, இதை பகிர்ந்து கொள்ளுங்கள் அல்லது GitHub-இல் எனக்கு அனுப்புங்கள்'
},
///////////////////////////////////////////////////////////////////////////
@ -1494,6 +1585,8 @@ exports.strings = {
'vi': 'Không có cửa sổ hội thoại được chỉ định, thêm một cái chứ?',
'sl_SI': 'Nisi določil začetnega dialoga, bi ga rad dodal?',
'pl' : 'Nie określiłeś okna startowego, czy chcesz je dodać?',
'it_IT':
"Non hai specificato una finestra di partenza, ne vuoi aggiungere una?",
'ta_IN': 'தொடக்க உரை எதுவும் நீங்கள் குறிப்பிடவில்லை, ஏதேனும் ஒன்றைச் சேர்க்க விரும்புகிறீர்களா?'
},
///////////////////////////////////////////////////////////////////////////
@ -1515,6 +1608,7 @@ exports.strings = {
'vi': 'Bạn chưa chỉ định một gợi ý, thêm một cái chứ?',
'sl_SI': 'Nisi določil namiga, bi ga rad dodal?',
'pl' : 'Nie podałeś podpowiedzi, czy chcesz ją dodać?',
'it_IT': "Non hai specificato un suggerimento, ne vuoi aggiungere uno?",
'ta_IN': 'நீங்கள் குறிப்பெதுவும் தரவில்லை, ஏதேனும் ஒன்றைச் சேர்க்க விரும்புகிறீர்களா?'
},
///////////////////////////////////////////////////////////////////////////
@ -1536,6 +1630,8 @@ exports.strings = {
'vi': 'Thêm một gợi ý cho cấp độ này, hoặc cứ để trống nếu bạn không muốn thêm.',
'sl_SI': 'Vnesi namig za to stopnjo ali pusti to prazno, če ga nočeš dodati',
'pl' : 'Wpisz wskazówkę dotyczącą tego poziomu lub pozostaw ją pustą, jeśli nie chcesz jej uwzględniać.',
'it_IT':
"Inserisci un suggerimento per questo livello, oppure lascialo vuoto se non ne vuoi aggiungere",
'ta_IN': 'இந்த நிலைக்கான குறிப்பை உள்ளிடவும், குறிப்பு தேவை இல்லை என்றால் இதனை காலியாக விடுவும்'
},
///////////////////////////////////////////////////////////////////////////
@ -1557,6 +1653,7 @@ exports.strings = {
'vi': 'Nhập tên cho cấp độ này.',
'sl_SI': 'Vnesi ime za stopnjo',
'pl' : 'Wprowadź nazwę poziomu',
'it_IT': "Inserisci il nome per questo livello",
'ta_IN': 'நிலைக்கான பெயரை உள்ளிடவும்'
},
///////////////////////////////////////////////////////////////////////////
@ -1578,6 +1675,7 @@ exports.strings = {
'vi': 'Đáp án bị bỏ trống!! Có gì thiếu rồi.',
'sl_SI': 'Tvoja rešitev je prazna!! Nekaj ni vredu.',
'pl' : 'Twoje rozwiązanie jest puste!! Coś musi zostać zrobione.',
'it_IT': "C'è qualcosa che non va. La soluzione è vuota!! ",
'ta_IN': 'உங்கள் தீர்வு காலியாக உள்ளது!! ஏதோ தவறாக இருக்கிறது'
},
///////////////////////////////////////////////////////////////////////////
@ -1599,6 +1697,8 @@ exports.strings = {
'vi': 'Xác định điểm bắt đầu ... Các giải pháp và mục tiêu sẽ được thay thế nếu đã được chỉ định từ trước.',
'sl_SI': 'Določanje začetne točke ... rešitev in cilj bosta povožena, če sta bila prej že podana',
'pl' : 'Ustawianie punktu startowego... Rozwiązanie i cel zostaną nadpisane, jeśli zostały wcześniej zdefiniowane',
'it_IT':
"Definendo punto di partenza... soluzione e obiettivo saranno sovvrascritti se erano già stati definiti.",
'ta_IN': 'தொடக்கத்தை வரையறுத்தல்... தீர்வு மற்றும் குறிக்கோள் முன்னரே வரையறுக்கப்பட்டிருந்தால் மேலெழுதப்படும்'
},
///////////////////////////////////////////////////////////////////////////
@ -1620,6 +1720,8 @@ exports.strings = {
'vi': 'Bạn đang ở trong một cấp độ, nên sẽ có nhiều hỗ trợ. Vui lòng dùng "help level" để biết thêm về bài học này, "help general" để sử dụng HọcNhánhGit, hoặc "objective" để biết cách giải quyết bài tập.',
'sl_SI': 'Si v stopnji, zato so na voljo različne pomoči. Prosim izberi "help level" za več informacij o tej lekciji, "help general" za splošna navodila ali "objective" da izveš kako rešiti to stopnjo',
'pl' : 'Jesteś na poziomie, więc istnieje kilka rodzajów pomocy. Wpisz "help level", aby dowiedzieć się więcej o tej lekcji, wpisz "help general", aby uzyskać pomoc dotyczącą korzystania z nauki GitBranching, lub wpisz "objective", aby dowiedzieć się, jak rozwiązać ten poziom.',
'it_IT':
'Sei dentro a un livello, hai a disposizione vari tipi di aiuto. Digita "help level" per saperne di più su questa lezione, "help general" per come usare Learn GitBranching, o "objective" per capire come risolvere il livello.',
'ta_IN': 'நீங்கள் ஒரு நிலையில் உள்ளீர்கள், எனவே பல வகையான உதவி பெற இயலும். இந்த பாடத்தைப் பற்றி மேலும் அறிய "நிலைக்கான உதவி" என்பதைத் தேர்ந்தெடுக்கவும், Learn GitBranching பற்றி மேலும் அறிய "பொது உதவி" பயன்படுத்துக, அல்லது இந்த நிலையை எவ்வாறு தீர்ப்பது என்பது பற்றி அறிய "நோக்கம்" தேர்ந்தெடுக்கவும்.'
},
///////////////////////////////////////////////////////////////////////////
@ -1641,6 +1743,8 @@ exports.strings = {
'vi': 'Bạn đang tạo một cấp độ, nên sẽ có nhiều trợ giúp có sẵn. Vui lòng chọn "help general" hoặc "help builder".',
'sl_SI': 'Si v graditelju stopenj, zato so na voljo različne pomoči. Prosim izberi "help general" ali "help builder"',
'pl' : 'Znajdujesz się w kreatorze poziomów. Dostępnych jest tu kilka rodzajów pomocy. Wpisz "help general", aby uzyskać pomoc dotyczącą nauki GitBranching-u, lub wpisz "help builder", aby uzyskać pomoc dotyczącą konstruktora poziomów',
'it_IT':
'Sei in un generatore di livelli, hai a disposizione vari tipi di aiuto. Digita "help general" o "help builder"',
'ta_IN': 'நீங்கள் ஒரு நிலை கட்டமைப்பானில் உள்ளீர்கள், எனவே பல வகையான உதவி பெற இயலும். தயவுசெய்து "பொது உதவி" அல்லது "கட்டமைப்பான் உதவி" என்பதைத் தேர்ந்தெடுக்கவும்'
},
///////////////////////////////////////////////////////////////////////////
@ -1663,6 +1767,7 @@ exports.strings = {
'vi': 'Hiển thị mục tiêu',
'sl_SI': 'Prikaži Cilj',
'pl' : 'Pokaż cel',
'it_IT': "Mostra obiettivo",
'ta_IN': 'இலக்கைக் காட்டு'
},
///////////////////////////////////////////////////////////////////////////
@ -1685,6 +1790,7 @@ exports.strings = {
'vi': 'Ẩn mục tiêu',
'sl_SI': 'Skrij Cilj',
'pl' : 'Ukryj cel',
'it_IT': "Nasconti obiettivo",
'ta_IN': 'இலக்கை மறை'
},
///////////////////////////////////////////////////////////////////////////
@ -1702,6 +1808,7 @@ exports.strings = {
'vi': 'Chỉ dẫn',
'sl_SI': 'Navodila',
'pl' : 'Instrukcje',
'it_IT': "Istruzioni",
'ta_IN': 'வழிமுறைகள்'
},
///////////////////////////////////////////////////////////////////////////
@ -1719,6 +1826,7 @@ exports.strings = {
'vi' : 'Trình diễn Git',
'sl_SI': 'Git Predstavitev',
'pl' : 'Demo GIT',
'it_IT': "Dimostrazione Git",
'ta_IN': 'கிட் செயல் விளக்கம்'
},
///////////////////////////////////////////////////////////////////////////
@ -1741,6 +1849,7 @@ exports.strings = {
'vi': 'Mục tiêu cần đạt',
'sl_SI': 'Končni Cilj',
'pl': 'Cel do osiągnięcia',
'it_IT': "Obiettivo da raggiungere",
'ta_IN': 'அடைய வேண்டிய இலக்கு'
},
///////////////////////////////////////////////////////////////////////////
@ -1763,6 +1872,8 @@ exports.strings = {
'vi': '<span class="fwber">Chú ý:</span> Ở cấp độ này chỉ nhánh main bị kiểm tra. Các nhánh khác chỉ dùng để tham chiếu(có dấu - ở nhãn). Như thường lệ, bạn có thể ẩn mục tiêu bằng "hide goal".',
'sl_SI': '<span class="fwber">Opomba:</span> Samo main branch bo preverjen v tej stopnji. Ostali branchi so zgolj za referenco (prikazani kot črtaste oznake spodaj). Kot ponavadi, lahko skriješ dialog z "hide goal"',
'pl': '<span class="fwber"> Uwaga:</span> Na tym poziomie będzie sprawdzana tylko poprawność gałęzi main. Pozostałe gałęzie są tylko odniesieniem (pokazane jako przerywane etykiety poniżej). Jak zawsze, możesz ukryć to okno klikając "Ukryj cel".',
'it_IT':
'<span class="fwber">Nota:</span> In questo livello sarà selezionato solo il ramo main. Gli altri rami ci sono solo come riferimento (mostrati come etichette tratteggiate). Come sempre, puoi nascondere questa finestra con "hide goal"',
'ta_IN': '<span class="fwber">குறிப்பு:</span> இந்த மட்டத்தில் பிரதான கிளை மட்டுமே சரிபார்க்கப்படும். மற்ற கிளைகள் வெறுமனே விளக்க குறிப்புக்காக மட்டுமே (கீழே விடுபட்ட மேற்கோள்களாக காட்டப்பட்டுள்ளது). எப்பொழுதும் போல், "இலக்கை மறை" மூலம் இந்த சாளரத்தை மறைக்கலாம்'
},
///////////////////////////////////////////////////////////////////////////
@ -1785,6 +1896,7 @@ exports.strings = {
'vi': 'Bạn có thể ẩn cửa sổ này với "hide goal".',
'sl_SI': 'To okno lahko skriješ z "hide goal"',
'pl': 'Możesz ukryć to okno za pomocą opcji "ukryj cel"',
'it_IT': 'Puoi nascondere questa finestra con "hide goal"',
'ta_IN': 'இந்த சாளரத்தை "இலக்கை மறை" மூலம் மறைக்கலாம்'
},
///////////////////////////////////////////////////////////////////////////
@ -1807,6 +1919,7 @@ exports.strings = {
'vi': 'Bạn có thể ẩn cửa sổ này với "hide start".',
'sl_SI': 'To okno lahko skriješ z "hide start"',
'pl': 'Możesz ukryć to okno za pomocą opcji "ukryj start"',
'it_IT': 'Puoi nascondere questa finestra con "hide start"',
'ta_IN': 'இந்த சாளரத்தை "தொடக்கத்தை மறை" மூலம் மறைக்கலாம்'
},
///////////////////////////////////////////////////////////////////////////
@ -1829,6 +1942,7 @@ exports.strings = {
'vi': 'Trình tạo câp độ',
'sl_SI': 'Graditelj Stopenj',
'pl': 'Twórca poziomu',
'it_IT': "Generatore di livelli",
'ta_IN': 'நிலை கட்டமைப்பான்'
},
///////////////////////////////////////////////////////////////////////////
@ -1851,6 +1965,7 @@ exports.strings = {
'vi': 'Cấp độ này không được giới thiệu.',
'sl_SI': 'Ni začetnega dialoga za prikaz te stopnje!',
'pl': 'Dla tego poziomu nie ma okna startowego do wyświetlenia!',
'it_it': "Non esiste una finestra di partenza per questo livello!",
'ta_IN': 'இந்த நிலை பற்றி விளக்கிகாட்ட தொடக்க உரையாடல் எதுவும் இல்லை'
},
///////////////////////////////////////////////////////////////////////////
@ -1873,6 +1988,7 @@ exports.strings = {
'vi': 'Hmmm, có vẻ cấp độ này không có gợi ý rồi. :-/',
'sl_SI': 'Hmm, izgleda da ni namiga za to stopnjo :-/',
'pl': 'Hmm, wydaje się, że nie ma podpowiedzi dla tego poziomu :-/',
'it_IT': "Mmh, sembra non ci sia un suggerimento per questo livello :-/",
'ta_IN': 'ஹ்ம், இந்த நிலைக்கு ஒரு குறிப்பு எதுவும் இருப்பதாகத் தெரியவில்லை :-/'
},
///////////////////////////////////////////////////////////////////////////
@ -1895,6 +2011,8 @@ exports.strings = {
'vi': 'Bản dịch cho {key} không có rồi :( Nếu có thể thì hãy lên dự án của chúng tôi ở GitHub để cung cấp bản dịch!',
'sl_SI': 'Prevod za {key} še ne obstaja :( Skoči na github in dodaj prevod!',
'pl': 'Tłumaczenie dla klucza "{key}" jeszcze nie istnieje tłumaczenia :( Zapraszam na GitHub, aby pomóc w tłumaczeniu!',
'it_IT':
"La traduzione per {key} non esiste ancora :( Fai un salto su GitHub e dacci una mano!",
'ta_IN': '{key}-இன் மொழிபெயர்ப்பு கிடைக்கவில்லை :( github-இன் வழியாக் நீங்களும் மொழி பெயர்க்க உதவலாம்!'
},
///////////////////////////////////////////////////////////////////////////
@ -1917,6 +2035,8 @@ exports.strings = {
'vi': 'Hội thoại hoặc văn bản này chưa được dịch ra ngôn ngữ của bạn rồi. :( Hãy lên GitHub để cung cấp bản dịch!',
'sl_SI': 'Ta dialog ali tekst še ni preveden za tvoj jezik :( Skoči na github in dodaj prevod!',
'pl' : 'Kolejne okno dialogowe lub tekst nie zostało jeszcze przetłumaczone na język polski :( Zapraszam na GitHub, aby pomóc w tłumaczeniu!',
'it_IT':
"Questo messaggio o testo non è ancora stato tradotto nella tua lingua :( Fai un salto su GitHub e dacci una mano!",
'ta_IN': 'இந்த உரையாடல் அல்லது உரை உங்கள் தமிழில் இன்னும் மொழிபெயர்க்கப்படவில்லை :( github-இன் வழியாக் நீங்களும் மொழி பெயர்க்க உதவலாம்!'
},
///////////////////////////////////////////////////////////////////////////
@ -1925,6 +2045,7 @@ exports.strings = {
'en_US': 'Cancel',
'zh_TW': '取消',
'pl' : 'Powrót',
'it_IT': "Annulla",
'ta_IN': 'இரத்துசெய்'
},
///////////////////////////////////////////////////////////////////////////
@ -1933,48 +2054,56 @@ exports.strings = {
'en_US': 'Confirm',
'zh_TW': '確認',
'pl' : 'Dalej',
'it_IT': "Conferma",
'ta_IN': 'உறுதிப்படுத்தவும்'
},
///////////////////////////////////////////////////////////////////////////
'level-label': {
'__desc__': 'Label in the top of the left-side menu. Rembember to leave some space on the sides',
'en_US': ' Level ',
'it_IT': " Livello ",
'pl' : ' Poziom '
},
///////////////////////////////////////////////////////////////////////////
'command-helper-bar-levels': {
'__desc__': 'Levels command label in the bottom command helper bar.',
'en_US': 'Levels',
'it_IT': "Livelli",
'pl' : 'Poziomy'
},
///////////////////////////////////////////////////////////////////////////
'command-helper-bar-solution': {
'__desc__': 'Solution command label in the bottom command helper bar.',
'en_US': 'Solution',
'it_IT': "Soluzione",
'pl' : 'Rozwiązanie'
},
///////////////////////////////////////////////////////////////////////////
'command-helper-bar-reset': {
'__desc__': 'Reset command label in the bottom command helper bar.',
'en_US': 'Reset',
'it_IT': "Reset",
'pl' : 'Wyczyść'
},
///////////////////////////////////////////////////////////////////////////
'command-helper-bar-undo': {
'__desc__': 'Undo command label in the bottom command helper bar.',
'en_US': 'Undo',
'it_IT': "Annulla",
'pl' : 'Cofnij'
},
///////////////////////////////////////////////////////////////////////////
'command-helper-bar-objective': {
'__desc__': 'Objective command label in the bottom command helper bar.',
'en_US': 'Objective',
'it_IT': "Obiettivo",
'pl' : 'Cel'
},
///////////////////////////////////////////////////////////////////////////
'command-helper-bar-help': {
'__desc__': 'Help command label in the bottom command helper bar.',
'en_US': 'Help',
'it_IT': "Aiuto",
'pl' : 'Pomoc'
},
///////////////////////////////////////////////////////////////////////////
@ -1982,6 +2111,8 @@ exports.strings = {
'__desc__': 'Message that appears in git console when command is not supported in the current environment.',
'en_US': 'That command is valid, but not supported in this current environment! Try entering a level or level builder to use that command',
'zh_TW': '這項指令輸入正確,然而目前的環境不支援此指令。試著前往關卡或關卡建造器中使用此指令。',
'it_IT':
"Il comando è valido, ma non supportato in questo ambiente! Prova a entrare in un livello o nel generatore di livelli per usare quel comando",
'pl' : 'To polecenie jest poprawne, ale nie jest obsługiwane w obecnym środowisku! Spróbuj wybrać poziom lub włączyć konstruktor poziomów, aby użyć tej komendy'
},
///////////////////////////////////////////////////////////////////////////
@ -1989,6 +2120,7 @@ exports.strings = {
'__desc__': 'Title for the popup',
'en_US': 'Interactive Rebase',
'zh_TW': '互動式 Rebase',
'it_IT': "Rebase interattivo",
'pl' : 'Interaktywny Rebase'
},
};

View file

@ -133,6 +133,12 @@ class IntlHelperBarView extends React.Component{
this.fireCommand('locale ta_IN; levels');
}.bind(this)
}, {
text: "italiano",
testID: "italian",
onClick: function () {
this.fireCommand("locale it_IT; levels");
}.bind(this),
},{
icon: 'signout',
onClick: function() {
this.props.onExit();

View file

@ -24,6 +24,7 @@ var langLocaleMap = {
vi: 'vi',
sl: 'sl_SI',
pl: 'pl',
it:'it_IT',
ta: 'ta_IN'
};
@ -33,6 +34,7 @@ var headerLocaleMap = {
'pt-BR': 'pt_BR',
'es-MX': 'es_MX',
'es-ES': 'es_ES',
'it-IT':'it_IT',
'sl-SI': 'sl_SI'
};

View file

@ -20,6 +20,7 @@ exports.level = {
'vi': 'Nhiều cha lắm mẹ',
'sl_SI': 'Več Staršev',
'ta_IN': 'ஒன்றுக்கு மேற்ப்பட்ட துவக்க கிலைகள்',
'it_IT': "Genitori multipli",
"pl": "Wielu rodziców",
},
"hint": {
@ -40,6 +41,8 @@ exports.level = {
'vi': 'Dùng lệnh `git branch bugWork` để tạo nhánh tại vị trí chỉ định',
'sl_SI': 'Uporabi `git branch bugWork` s ciljnim commitom za ustvarjanje manjkajoče reference.',
"ta_IN": "`git branch bugWork` பயன்படுத்தி தேவைப்படும் கமிட்டுடன் இழந்த இணைப்பை உருவாக்குக.",
'it_IT':
"Scrivi `git branch bugWork` con un commit per creare il riferimento mancante.",
"pl": "Użyj `git branch bugWork` na docelowym commicie, aby utworzyć brakującą referencję.",
},
"startDialog": {
@ -1610,5 +1613,91 @@ exports.level = {
}
]
},
'it_IT': {
childViews: [
{
type: "ModalAlert",
options: {
markdowns: [
"### Speficicare i genitori",
"",
"Come il modificatore `~` , anche il modificatore `^` accetta un numero (opzionale) dopo di esso.",
"",
"Invece che specificare il numero di generazioni di cui tornare indietro (come accade con `~`), il modificatore `^` specifica quale genitore seguire partendo da un merge commit (di fusione). Ricorda che i merge commit hanno genitori multipli, quindi il percorso da seguire può essere ambiguo.",
"",
'Git normalmente sege il primo genitore partendo da un merge commit, ma specificando un numero con `^` cambia questo comportamento predefinito.',
"",
"Basta parlare, vediamolo in azione.",
"",
],
},
},
{
type: "GitDemonstrationView",
options: {
beforeMarkdowns: [
"Qui abbiamo un merge commit. Se facciamo checkout `main^` senza modificatore, seguiremo il primo genitore dopo il merge commit. ",
"",
"(*Nell'immagine, il primo genitore è situato direttamente al di sopra al merge commit.*)",
],
afterMarkdowns: ["Facile -- questo è quello a cui siamo abituati."],
command: "git checkout main^",
beforeCommand:
"git checkout HEAD^; git commit; git checkout main; git merge C2",
},
},
{
type: "GitDemonstrationView",
options: {
beforeMarkdowns: [
"Ora invece proviamo a specificare il secondo genitore...",
],
afterMarkdowns: ["Vedi? Abbiamo seguito il secondo genitore verso l'alto."],
command: "git checkout main^2",
beforeCommand:
"git checkout HEAD^; git commit; git checkout main; git merge C2",
},
},
{
type: "GitDemonstrationView",
options: {
beforeMarkdowns: [
"I modificatori `^` e `~` riescono a farci muovere lungo l'albero dei commit in modo agevole:",
],
afterMarkdowns: ["Super veloce!"],
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 main; git merge C5; git commit",
},
},
{
type: "GitDemonstrationView",
options: {
beforeMarkdowns: [
"Ancora più sorprendente, questi modificatori possono essere concatenati tra loro! Dai un occhiata:",
],
afterMarkdowns: [
"Stessi passaggi di prima, ma tutto con un comando.",
],
command: "git checkout HEAD~^2~2",
beforeCommand:
"git commit; git checkout C0; git commit; git commit; git commit; git checkout main; git merge C5; git commit",
},
},
{
type: "ModalAlert",
options: {
markdowns: [
"### Mettilo in pratica",
"",
"Per completare questo livello, crea un nuovo ramo alla destinazione specificata.",
"",
"Sarebbe facile specificare il commit direttamente (con qualcosa del tipo `C6`), ovvio, ma ti sfido invece a utilizare i modificatori di cui abbiamo parlato!",
],
},
},
],
},
}
};

View file

@ -72,6 +72,7 @@ var sequenceInfo = exports.sequenceInfo = {
'vi' : 'Giới thiệu chuỗi luyện tập',
'sl_SI': 'Uvodno Zaporedje',
'pl' : 'Wprowadzenie',
'it_IT': "Sequenza introduttiva",
'ta_IN': 'அறிமுக தொடர் வரிசை'
},
about: {
@ -92,6 +93,7 @@ var sequenceInfo = exports.sequenceInfo = {
'vi' : 'Từng bước làm quen với phần lớn lệnh điều khiển git',
'sl_SI': 'Prijeten uvod v git ukaze',
'pl' : 'Krótkie wprowadzenie do większości poleceń GIT-a',
'it_IT': "Un'introduzione graduale ai principali comandi Git",
'ta_IN': 'பெரும்பாலான கிட் கட்டளைகளுக்கு ஒரு நல்ல அறிமுகம்'
}
},
@ -114,6 +116,7 @@ var sequenceInfo = exports.sequenceInfo = {
'vi' : 'Tăng tốc',
'sl_SI': 'Prva Stopnička',
'pl' : 'Rozkręcenie',
'it_IT': "Diamoci dentro",
'ta_IN': 'சற்று அதிகப்படுத்த'
},
about: {
@ -134,6 +137,7 @@ var sequenceInfo = exports.sequenceInfo = {
'vi' : 'Tận hưởng khẩu phần tuyệt hảo của git. Hi vọng bạn còn đói.',
'sl_SI': 'Naslednja porcija git izjemnosti. Upam, da si lačen',
'pl' : 'Następna porcja GIT-a jest niesamowita. Mam nadzieję, że jesteś głodny',
'it_IT': "Porzione con il 100% di grandiosità Git, spero tu sia affamato",
'ta_IN': 'அடித்தது கிட்டின் 100% அற்புதங்கள். நீங்கள் ஆர்வமாக உள்ளீர்கள் என்று நம்புகிறேன்'
}
},
@ -157,6 +161,7 @@ var sequenceInfo = exports.sequenceInfo = {
'vi' : 'Push & Pull -- Tác động git từ xa!',
'sl_SI': 'Push & Pull -- Oddaljeni Git',
'pl' : 'Push & Pull -- Zdalne repozytoria',
'it_IT': "Push & Pull -- Git Remotes!",
'ta_IN': 'Push & Pull -- கிட் Remotes!'
},
about: {
@ -177,6 +182,8 @@ var sequenceInfo = exports.sequenceInfo = {
'vi' : 'Chia sẻ đứa con tinh thần \'0\' và \'1\' của bạn; mã đã đến với cộng đồng',
'sl_SI': 'Čas za deljenje tvojih 1 in 0; kodiranje je pravkar postalo socialno',
'pl' : 'Czas podzielić się swoimi dziećmi 1 i 0; kodowanie właśnie stało się społeczne',
'it_IT':
"Ragazzi è arrivato il momento di condividere i vostri 0 e 1; programmare diventa social",
'ta_IN': 'உங்களின் 1\'கள் மற்றும் 0\'களை பகிர்வதற்கான நேரம் குழந்தைகளே; குறியிடுதல் (coding) பொது உடமை ஆக்க பட்டுள்ளது'
}
},
@ -200,6 +207,7 @@ var sequenceInfo = exports.sequenceInfo = {
'vi' : 'Về với cội nguồn và vươn xa hơn -- nâng cao về các git remote',
'sl_SI': 'Do Origina In Naprej -- Napredni Oddaljeni Git',
'pl' : 'Do źródła i dalej -- zaawansowane zdalne repozytoria',
'it_IT': "Verso Origin e oltre -- Git Remoto Avanzato!",
'ta_IN': 'ஆரம்பம் மற்றும் அதர்க்கு மேல் -- மேம்பட்ட கிட் ரிமோட்டுகள்!'
},
about: {
@ -220,6 +228,7 @@ var sequenceInfo = exports.sequenceInfo = {
'vi' : 'Và bạn nghĩ làm một kẻ độc tài nhân từ thì sẽ vui ...',
'sl_SI': 'In ti si mislil, da je biti dobronamerni diktator zabavno ...',
'pl' : 'A myślałeś, że bycie życzliwym dyktatorem byłoby fajne...',
'it_IT': "E tu credevi che essere un bravo dittatore fosse divertente...",
'ta_IN': 'நீங்கள் ஒரு அக்கரை உள்ள சர்வாதிகாரியாக இருப்பது வேடிக்கையாக இருக்கும் என்று நினைத்தீர்களா...'
}
},
@ -242,6 +251,7 @@ var sequenceInfo = exports.sequenceInfo = {
'vi' : 'Điều chỉnh vị trí',
'sl_SI': 'Premikanje Dela Naokrog',
'pl' : 'Przenoszenie pracy',
'it_IT': "Spostare il lavoro in giro",
'ta_IN': 'வேலைகளை பகிர்ந்து கொள்வது'
},
about: {
@ -262,6 +272,7 @@ var sequenceInfo = exports.sequenceInfo = {
'vi' : 'Chỉnh sửa cây lịch sử Git không hề khó',
'sl_SI': 'Spretno "Git" premikanje po drevesu :P',
'pl' : 'GIT dobrze radzi sobie z modyfikacją drzewa źródłowego :P',
'it_IT': 'Modificare l\'albero con facilità. "GIT" ready :P',
'ta_IN': '"கிட்" மூல மரத்தை மாற்றுவதில் சிரந்தது :P'
}
},
@ -284,6 +295,7 @@ var sequenceInfo = exports.sequenceInfo = {
'vi' : 'Những trò mèo đáng đồng tiền bát gạo',
'sl_SI': 'Mešana Vreča',
'pl' : 'Po trochu wszystkiego',
'it_IT': "Un po di tutto",
'ta_IN': 'ஒரு கலப்பு பை'
},
about: {
@ -304,6 +316,7 @@ var sequenceInfo = exports.sequenceInfo = {
'vi' : 'Các kỹ thuật, bí quyết, và mẹo vặt hữu ích',
'sl_SI': 'Mešana vreča Git tehnik, trikov in nasvetov',
'pl' : 'Po trochu wszystkiego. Wskazówki i triki',
'it_IT': "Comandi Git assortiti, trucchi e consigli",
'ta_IN': 'கிட் நுட்பங்கள், தந்திரங்கள் மற்றும் உதவிக்குறிப்புகளின் கலவையான பை'
}
},
@ -326,6 +339,7 @@ var sequenceInfo = exports.sequenceInfo = {
'vi' : 'Các chủ đề nâng cao',
'sl_SI': 'Napredne Teme',
'pl' : 'Tematy zaawansowane',
'it_IT': "Argomenti avanzati",
'ta_IN': 'மேம்பட்ட தலைப்புகள்'
},
about: {
@ -346,6 +360,7 @@ var sequenceInfo = exports.sequenceInfo = {
'vi' : 'Mạnh mẽ lên!',
'sl_SI': 'Za resnično pogumne!',
'pl' : 'Dla naprawdę odważnych!',
'it_IT': "Per i più temerari!",
'ta_IN': 'உண்மையிலேயே தைரியமானவர்களுக்கு!'
}
}

View file

@ -19,6 +19,7 @@ exports.level = {
"vi": "Rẽ nhánh với Git",
"sl_SI": "Branchanje v Gitu",
"pl" : "Rozgałęzienia w GIT-cie (branch)",
'it_IT': "Creare rami in Git",
"ta_IN": "கிட் கிளை நிருவாகம்"
},
"hint": {
@ -39,6 +40,8 @@ exports.level = {
"vi": "Tạo một nhánh mới với lệnh \"git branch <ten-nhanh>\" và chuyển sang đó với lệnh \"git checkout <ten-nhanh>\"",
"sl_SI": "Naredi nov branch z \"git branch [ime-brancha]\" in ga checkoutaj z \"git checkout [ime-brancha]\"",
"pl" : "Utwórz nowy branch za pomocą \"git branch <branch-name>\" i sprawdź ją za pomocą \"git checkout <branch-name>\"",
'it_IT':
'Crea un nuovo ramo con "git branch <branch-name>" and selezionalo con "git checkout <branch-name>"',
"ta_IN": "இப்போது \"git branch <branch-name>\" கட்டளையை கொண்டு புதிய கிளை ஒன்றை உருவாக்குக பின் \"git checkout <branch-name>\" கொண்டு அந்த கிளைக்கு தாவுக"
},
"disabledMap": {
@ -1505,6 +1508,99 @@ exports.level = {
}
}
]
}
},
"it_IT": {
childViews: [
{
type: "ModalAlert",
options: {
markdowns: [
"## Rami Git",
"",
"Anche i rami in Git sono incredibilmenteare leggeri. Sono semplicemente puntatori a uno specifico commit -- nulla di più. Questo è il motivo per cui gli appassionati di Git predicano:",
"",
"```",
"ramifica presto, e ramifica spesso",
"```",
"",
"Perché non c'è un sovraccarico della memoria nel fare molti rami, è più semplice suddividere il lavoro piuttosto che avere rami enormi.",
"",
'Quando iniziamo a mischiare rami e commit, vedremo come queste caratteristiche si combinano. Per ora però, ricorda che un ramo essenzialmente dice "Voglio includere il lavoro di questo commit e tutti i commit del genitore."',
],
},
},
{
type: "GitDemonstrationView",
options: {
beforeMarkdowns: [
"Vediamo nella pratica cosa sono i rami.",
"",
"Qui creeremo un nuovo ramo di nome `newImage`.",
],
afterMarkdowns: [
"Ecco, questa è la divisione in rami! Il ramo `newImage` ora punta al commit `C1`.",
],
command: "git branch newImage",
beforeCommand: "",
},
},
{
type: "GitDemonstrationView",
options: {
beforeMarkdowns: [
"Proviamo ad aggiungere un po di lavoro su questo nuovo ramo. Premi il pulsante qua sotto.",
],
afterMarkdowns: [
"Oh no! Il ramo `main` si è spostato ma il ramo `newImage` no! Questo perché non eravamo sul nuovo ramo, infatti l'asterisco (*) era su `main`.",
],
command: "git commit",
beforeCommand: "git branch newImage",
},
},
{
type: "GitDemonstrationView",
options: {
beforeMarkdowns: [
"Diciamo a Git che vogliamo selezionare il ramo con",
"",
"```",
"git checkout <name>",
"```",
"",
"Questo ci metterà sul nuovo ramo prima di fare un nuovo commit.",
],
afterMarkdowns: [
"Ecco qua! I cambiamenti sono stati memorizzati sul nuovo ramo.",
],
command: "git checkout newImage; git commit",
beforeCommand: "git branch newImage",
},
},
{
type: "ModalAlert",
options: {
markdowns: [
"*Nota: In Git versione 2.23, è stato introdotto un nuovo comando, `git switch`, per sostituire `git checkout`, ",
"che è sovraccaricato di funzionalità (fa un sacco di cose diverse). Queste lezioni usano comunque ",
"`checkout` invece che `switch` perché molti non hanno ancora accesso a `switch`, ma quest'app supporta comunque il comando ",
'se sei curioso di provarlo! Potete <a href="https://git-scm.com/docs/git-switch" target="_blank">scoprire di piu qui</a>.* ',
],
},
},
{
type: "ModalAlert",
options: {
markdowns: [
"Ok! Ora sei pronto a lavorare con i rami. Dopo che questa finestra si chiude,",
"crea un nuovo ramo `bugFix` e passa su quel ramo.",
"",
"Comunque, c'è una scorciatoia: se vuoi creare un nuovo ",
"ramo E selezionarlo in un solo passaggio, puoi semplicemente ",
"digitare `git checkout -b [yourbranchname]`.",
],
},
},
],
},
}
};

View file

@ -17,6 +17,7 @@ exports.level = {
'vi': 'Giới thiệu về Git Commit',
'sl_SI': "Uvod v Git Commit",
'pl' : "Wprowadzenie do zatwierdzeń GIT-a (commit)",
'it_IT': "Introduzione ai commit in Git",
"ta_IN": "கிட் கமிட்கள் ஒரு அறிமுகம்"
},
"goalTreeString": "{\"branches\":{\"master\":{\"target\":\"C3\",\"id\":\"master\"}},\"commits\":{\"C0\":{\"parents\":[],\"id\":\"C0\",\"rootCommit\":true},\"C1\":{\"parents\":[\"C0\"],\"id\":\"C1\"},\"C2\":{\"parents\":[\"C1\"],\"id\":\"C2\"},\"C3\":{\"parents\":[\"C2\"],\"id\":\"C3\"}},\"HEAD\":{\"target\":\"master\",\"id\":\"HEAD\"}}",
@ -40,6 +41,7 @@ exports.level = {
'vi': "Đơn giản là cứ gõ 'git commit' 2 lần",
'sl_SI': "Preprosto dvakrat vpiši 'git commit' in zaključi!",
"pl" : "Aby zakończyć, wystarczy dwukrotnie wpisać 'git commit'!",
'it_IT': "Digita 'git commit' due volte per finire!",
"ta_IN": "இந்த நிலையை நிரைவு செய்ய 'git commit' என்று இரண்டு முறை தட்டச்சு செய்க!"
},
"disabledMap": {
@ -811,6 +813,48 @@ exports.level = {
}
}
]
}
},
"it_IT": {
childViews: [
{
type: "ModalAlert",
options: {
markdowns: [
"## Git Commits",
"Un commit in git memorizza un'instantanea di tutti i file (tracciati) della cartella di lavoro. E' come un enorme copia-incolla, ma migliore!",
"",
'Git conserva i commit nella modo più leggero possibile, perciò non copia cecamente l\'intera cartella per ogni commit. Può (ove possibile) comprimere un commit come un insieme di cambiamenti, o "delta", da una versione alla successiva del repository.',
"",
"Git memorizza anche la storia di tutti i commit effettuati. Questo è il motivo per cui molti commit hanno genitori sopra di essi -- questo viene rappresentato con delle frecce nelle nostre spiegazioni. Conoscere la storia è utilissimo per tutti quelli che collaborano ad un progetto!",
"",
"C'è tanto da sapere, ma per ora pensa ai commit come delle instantanee del progetto. I commit sono leggerissimi e si può passare da uno all'altro in un battibaleno!",
],
},
},
{
type: "GitDemonstrationView",
options: {
beforeMarkdowns: [
"Vediamolo in pratica. Sulla destra abbiamo l'immagine di un (piccolo) repository git. Ci sono due commit --il primo commit, `C0`,e un altro dopo, `C1`, che potrebbe avere modifiche importanti.",
"",
"Premi il pulsante qua sotto per eseguire un nuovo commit.",
],
afterMarkdowns: [
"Ecco qua! Fantastico. Abbiamo modificato il repository e salvato con un commit. Il commit che abbiamo creato ha un genitore, `C1`, che ci indica su cui è basato il nostro commit.",
],
command: "git commit",
beforeCommand: "",
},
},
{
type: "ModalAlert",
options: {
markdowns: [
"Vai avanti e prova da solo! Dopo che questa finestra si chiude, crea due commit per completare il livello.",
],
},
},
],
},
}
};

View file

@ -19,6 +19,7 @@ exports.level = {
"vi": "Gộp nhánh trong Git",
"sl_SI": "Merganje v Gitu",
"pl" : "Łączenie/Scalanie w GIT (merge)",
'it_IT': "Fusione in Git",
"ta_IN": "கிட்டில் இணைத்தல்"
},
"hint": {
@ -39,6 +40,8 @@ exports.level = {
"vi": "Nhớ là commit theo đúng thứ tự(bugFix trước main)",
"sl_SI": 'Zapomni si, da je potrebno commitati v pravilnem vrstnem redu (bugfix pred main)',
"pl" : "Pamiętaj, aby commit-ować w określonej kolejności (bugFix przed main)",
"it_IT":
"Ricorda di effettuare i commit nell'ordine specificato (bugFix prima di main)",
"ta_IN": "bugFix முன் main என்ற கொடுக்கப்பட்ட வரிசையில் கட்டலை இடுவதை கருத்தில் கொள்க"
},
"disabledMap": {
@ -1286,6 +1289,76 @@ exports.level = {
}
}
]
}
},
"it_IT": {
childViews: [
{
type: "ModalAlert",
options: {
markdowns: [
"## Rami e fusione",
"",
"Ottimo! Ora sappaimo come funzionano i commit e i rami. Adesso dobbiamo trovare il modo per unire il lavoro di due rami diversi. Questo ci permetterà di creare un nuovo ramo, aggiungere una nuova funzionalità, e poi riunire il tutto.",
"",
'Il primo metodo che vediamo per unire il lavoro è `git merge` (fusione). La fusione in Git crea un commit speciale che possiede due genitori distinti. Un commit con due genitori significa "Voglio unire tutto il lavoro da questo e da quest altro genitore, *e anche* di tutti i loro genitori."',
"",
"E' più semplice con le immagini, vediamolo nella prossima schermata.",
],
},
},
{
type: "GitDemonstrationView",
options: {
beforeMarkdowns: [
'Qui abbiamo due rami; ognuno di essi ha un commit univoco. Ciò significa che nessuno dei rami contiene per intero il "lavoro" del repository. Sistemiamo le cose con una fusione.',
"",
"Ora facciamo `merge` del ramo `bugFix` nel `main`.",
],
afterMarkdowns: [
"WOW! Visto? Prima di tutto, `main` ora punta a un commit con due genitori. Se ripercorri l'albero dei commit dal `main`, potrai attraversare tutti i commit fino alla radice (root). Questo significa che `main` ora contiene tutto il lavoro del repository.",
"",
"Hai visto come è cambiato il colore del commit è cambiato? Per imparare più facilmente, ho aggiunto i colori. Ogni ramo ha un colore univoco. Ogni (merge) commit ha un colore che è la combinazione dei colori dei rami che lo compongono.",
"",
"Qui vediamo che il colore del ramo `main` è la combinazione di tutti i commit , ma il colore di `bugFix` è diverso. Sistemiamolo...",
],
command: "git merge bugFix",
beforeCommand:
"git checkout -b bugFix; git commit; git checkout main; git commit",
},
},
{
type: "GitDemonstrationView",
options: {
beforeMarkdowns: ["Fondiamo `main` in `bugFix`:"],
afterMarkdowns: [
"Visto che `bugFix` era un antenato di `main`, git non ha dovuto fare nulla di che; ha semplicemente spostato `bugFix` sullo stesso commit in cui era collegato `main`.",
"",
"Ora tutti i commit hanno lo stesso colore, il che significa che ogni ramo contiene tutti il lavoro del repository! WoWoWoW!",
],
command: "git checkout bugFix; git merge main",
beforeCommand:
"git checkout -b bugFix; git commit; git checkout main; git commit; git merge bugFix",
},
},
{
type: "ModalAlert",
options: {
markdowns: [
"Per completare questo livello, esegui i seguenti passaggi:",
"",
"* Crea un nuovo ramo di nome `bugFix`",
"* Seleziona il ramo `bugFix` con il comando `git checkout bugFix`",
"* Esegui un commit",
"* Ritorna al ramo `main` con `git checkout`",
"* Esegui un nuovo commit",
"* Fondi il ramo `bugFix` nel `main` con `git merge`",
"",
'*Ricorda, puoi sempre rivedere questa schermata digitando "objective"!*',
],
},
},
],
},
}
};

View file

@ -18,6 +18,7 @@ exports.level = {
"uk": "Знайомство з rebase",
"vi": "Giới thiệu về rebase",
'sl_SI': 'Uvod v Rebase',
'it_IT': "Introduzione al rebase (ribasare)",
"pl" : "Wprowadzenie do Rebase"
},
"hint": {
@ -37,6 +38,7 @@ exports.level = {
"uk": "Впевнись, що зробив коміт в гілці bugFix",
"vi": "Hãy chắc chắn rằng bạn commit từ bugFix trước",
'sl_SI': 'Prepričaj se, da si najprej commital bugFix.',
'it_IT': "Assicurati di fare prima il commit da bugFix",
"pl" : "Upewnij się, że masz commit z bugFix"
},
"disabledMap": {
@ -1183,6 +1185,74 @@ exports.level = {
}
}
]
}
},
"it_IT": {
childViews: [
{
type: "ModalAlert",
options: {
markdowns: [
"## Git Rebase",
"",
'Il secondo modo per unire il lavoro tra rami è il *rebasing* (ribasare). Quando si ribasa vengono presi una serie di commit, vengono "copiati", e incollati da qualche parte.',
"",
"Anche se sembra un sistema complesso, il vantaggio del rebasing è che può essere usato per creare una sequenza lineare di commit. Il log / storia dei commit del repository sarebbe molto più ordinata e comprensibile se fosse consentito solo il rebasing.",
"",
"Vediamolo in azione...",
],
},
},
{
type: "GitDemonstrationView",
options: {
beforeMarkdowns: [
"Anche qui abbiamo ancora due rami; prestate attenzione al fatto che il ramo selezionato è bugFix (notare l'asterisco*)",
"",
"Ora vogliamo spostare il nostro lavoro dal ramo bugFix direttamente sul ramo main. In questo modo sembrerà che i due lavori sono stati sviluppati in sequenza, quando in realtà sono stati sviluppati in parallelo.",
"",
"Vediamo il comando `git rebase` all'opera.",
],
afterMarkdowns: [
"Fantastico! Ora il lavoro del ramo bugFix è sopra al main e abbiamo una sequenza lineare di commit.",
"",
'Nota che il commit C3 continua ad esistere (messo in trasparenza), e C3\' è la "copia" che abbiamo ribasato sul main.',
"",
"L'unico problema è che il main non è ancora stato aggiornato, facciamolo ora...",
],
command: "git rebase main",
beforeCommand: "git commit; git checkout -b bugFix C1; git commit",
},
},
{
type: "GitDemonstrationView",
options: {
beforeMarkdowns: [
"Ora il ramo selezionato è il main. Procediamo e facciamo rebase su `bugFix`...",
],
afterMarkdowns: [
"Ecco qua! Visto che main era un antenato di `bugFix`, git sposta semplicemente il riferimento al ramo `main` branch in avanti.",
],
command: "git rebase bugFix",
beforeCommand:
"git commit; git checkout -b bugFix C1; git commit; git rebase main; git checkout main",
},
},
{
type: "ModalAlert",
options: {
markdowns: [
"Per completare questo livello, esegui i seguenti passaggi",
"",
"* Crea un nuovo ramo di nome `bugFix`",
"* Crea un commit",
"* Torna al main e crea un nuovo commit",
"* Seleziona nuovamente bugFix e fai rebase sul main",
"",
"In bocca al lupo!",
],
},
},
],
},
}
};

View file

@ -18,6 +18,7 @@ exports.level = {
"uk" : "Git Describe",
"vi": "Git Describe(mô tả)",
"sl_SI": "Git Describe",
"it_IT": "Git Describe",
"pl": "Git Describe"
},
"hint": {
@ -36,6 +37,7 @@ exports.level = {
"uk" : "Просто зроби один коміт в bugFix коли ти будеш готовий іти далі",
"vi": "Đơn giản là hãy commit một lẩn ở bugFix là xong rồi",
"sl_SI": "Commitaj enkrat na bugFix, ko boš pripravljen za nadaljevanje.",
"it_IT": "Fai un commit da bugFix per procedere",
"pl": "Zcommituj raz na bugFix kiedy jesteś gotowy, aby przejść dalej",
},
"startDialog": {
@ -1050,6 +1052,70 @@ exports.level = {
}
}
]
}
},
"it_IT": {
childViews: [
{
type: "ModalAlert",
options: {
markdowns: [
"### Git Describe",
"",
'Visto che i tag fungono da "ancore", si può usare il comando `git describe` per capire dove ci si trova in riferimento all\'"ancora" (tag) più vicina!',
"",
"Git describe aiuta ad orientarti dopo che hai creato molti commit su per giù nell'albero; oppure dopo che hai concluso un git bisect (per ricercare bug) o quando utilizzi il computer di un collega che è appena tornato dalle vacanze.",
],
},
},
{
type: "ModalAlert",
options: {
markdowns: [
"Git describe ha questa forma:",
"",
"`git describe <ref>`",
"",
"Dove `<ref>` è qualunque cosa che può indicare un commit. Se non specifichi un ref, git farà riferimento alla tua posizione attuale (`HEAD`).",
"",
"L'output del comando sarà:",
"",
"`<tag>_<numCommits>_g<hash>`",
"",
"Dove `tag` è il tag antenato più vicino, `numCommits` corrisponde al numero di commit tra ref e il tag, e `<hash>` è l'hash del commit che è descritto.",
],
},
},
{
type: "GitDemonstrationView",
options: {
beforeMarkdowns: [
"Vediamo un esempio semplice. In quest'albero:",
],
afterMarkdowns: [
"Il comando `git describe main` genera come output:",
"",
"`v1_2_gC2`",
"",
"Mentre `git describe side` genererà:",
"",
"`v2_1_gC4`",
],
command: "git tag v2 C3",
beforeCommand:
"git commit; go -b side HEAD~1; gc; gc; git tag v1 C0",
},
},
{
type: "ModalAlert",
options: {
markdowns: [
"Questo è più o meno quanto fa git describe! Prova questo comando in vari punti in questo livello per prendere confidenza.",
"",
"Quando hai finito, procedi e crea un commit per concludere il livello. Consideralo un omaggio della casa :P",
],
},
},
],
},
}
};

View file

@ -29,6 +29,7 @@ exports.level = {
"uk": "Вибираємо всього один коміт",
"vi": "Chỉ lấy 1 commit",
"sl_SI": "Izbiranje Samo Enega Commita",
"it_IT": "Prendi solo 1 Commit",
"pl": "Wzięcie tylko 1 commita",
},
"hint": {
@ -47,6 +48,7 @@ exports.level = {
"uk": "Не забувай, що інтерактивний rebase та cherry-pick -- це твої друзі!",
"vi": "Hãy nhớ 2 anh bạn tương tác rebase và cherry-pick!",
"sl_SI": "Pomni, interaktivni rebase ali cherry-pick sta tu tvoja prijatelja.",
"it_IT": "Ricorda, rebase interattivo o cherry-pick sono tuoi amici",
"pl": "Pamiętaj, interaktywny rebase oraz cherry-picking są tu twoimi przyjaciółmi",
},
"startDialog": {
@ -674,5 +676,44 @@ exports.level = {
}
]
},
"it_IT": {
childViews: [
{
type: "ModalAlert",
options: {
markdowns: [
"## Commit impilati localmente",
"",
"Ecco una situazione che accade spesso in fase di sviluppo: Sto cercando di scovare un bug. Per aiutarmi nel mio lavoro di detective, inserisco alcuni comandi per il debug e alcune print per fare stampe.",
"",
"Questi comandi aggiunti per il debug vengono salvati con un commit loro dedicato. Finalmente riesco a beccare il bug, sistemo il tutto, e brindo!",
"",
"Ora l'unico problema è che devo salvare il lavoro di `bugFix` nel ramo `main`. Se eseguo un semplice fast-forwarded `main`, allora il `main` andrebbe a prendere anche tutto ciò che è stato aggiunto per il debug. Se solo ci fosse un altro modo...",
],
},
},
{
type: "ModalAlert",
options: {
markdowns: [
"Dobbiamo dire a Git di fare la copia di un solo commit. Questo assomiglia a quanto visto in precedenza -- possiamo riusare gli stessi comandi:",
"",
"* `git rebase -i`",
"* `git cherry-pick`",
"",
"Per raggiungere l'obiettivo.",
],
},
},
{
type: "ModalAlert",
options: {
markdowns: [
"Questo è un livello più avanzato, lascerò a te la libertà di decidere quale comando usare, ma per concludere il livello, assicurati che `main` riceva il commit puntato da `bugFix`.",
],
},
},
],
},
}
};

View file

@ -33,6 +33,7 @@ exports.level = {
"uk": "Жонглюємо комітами",
"vi": "Tung hứng commit",
"sl_SI": "Žongliranje s Commiti",
"it_IT": "Giocoliere di Commit",
"pl": "Żonglowanie commitami",
},
"hint": {
@ -51,6 +52,7 @@ exports.level = {
"uk": "Перша команда має бути git rebase -i HEAD~2",
"vi": "Lệnh đầu tiên là git rebase -i HEAD~2",
"sl_SI": "Prvi ukaz je git rebase -i HEAD~2.",
"it_IT": "Il primo comando è git rebase -i HEAD~2",
"pl": "Pierwszą komendą jest git rebase -i HEAD~2",
},
"startDialog": {
@ -601,6 +603,40 @@ exports.level = {
}
}
]
}
},
"it_IT": {
childViews: [
{
type: "ModalAlert",
options: {
markdowns: [
"## Giocoliere di commit",
"",
"Ecco una situazione che capita spesso. Hai dei cambiamenti (`newImage`) e un altro insieme di modifiche (`caption`) che sono collegate tra loro, quindi sono posizionate una dopo l'altra nel repository.",
"",
"La cosa complicata è che a volte hai bisogno di fare una piccola modifica a un commit precedente. In questo caso, dobbiamo apporre una modifica a `newImage`, anche se questo commit non risulta essere l'ultimo!!",
],
},
},
{
type: "ModalAlert",
options: {
markdowns: [
"Supereremo queste difficoltà facendo i seguenti passaggi:",
"",
"* Riordineremo i commit in modo che quello che vogliamo modificare risulti l'ultimo con `git rebase -i`",
"* Faremo `git commit --amend` per apporre la modifica",
"* Riordineremo i commit nello stesso ordine in cui erano, sempre con `git rebase -i`",
"* Alla fine, sposteremo main in questo ramo aggiornato dell'albero per finire il livello (utilizzate il metodo che volete)",
"",
"Ci sono vari modi per raggiungere l'obbiettivo finale (vedo che strizzi l'occhio verso cherry-pick), e ne vedremo altri più tardi, ma per ora concentriamoci su questa tecnica.",
"In fine, presta attenzione all'obiettivo -- visto che spostiamo i commit due volte, a entrambi viene messo un apostrofo. Un ulteriore apostrofo è aggiunto per il commit --amend, che completa in fine l'albero.",
"",
"Detto questo, posso confrontare i livelli in base alla struttura e i relativi apostrofi. Finchè il tuo ramo `main` avrà la stessa struttura con i giusti apostrofi, ti darò pieni voti.",
],
},
},
],
},
}
};

View file

@ -32,6 +32,7 @@ exports.level = {
"uk": "Жонглюємо комітами #2",
"vi": "Tung hứng commit #2",
"sl_SI": "Žongliranje s Commiti #2",
"it_IT": "Giocoliere di commit #2",
"pl": "Żonglowanie commitami #2",
},
"hint": {
@ -50,6 +51,8 @@ exports.level = {
"uk": "Не забудь перемістити main на останні зміни!",
"vi": "Đừng quên đẩy nhánh main lên cập nhật mới nhất!",
"sl_SI": "Ne pozabi prestaviti main naprej na posodobljene spremembe.",
"it_IT":
"Non dimenticare di avanzare il main verso le ultime modifiche aggiornate!",
"pl": "Nie zapomnij zforwardować maina do najnowszych zmian!",
},
"startDialog": {
@ -735,5 +738,48 @@ exports.level = {
}
]
},
"it_IT": {
childViews: [
{
type: "ModalAlert",
options: {
markdowns: [
"## Giocoliere di commit #2",
"",
"*Se non hai completato Giocoliere di commit #1 (il livello precedente), sei pregato di farlo prima di proseguire*",
"",
"Come hai visto nell'ultimo livello, abbiamo usato `rebase -i` per riordinare i commit. Una volta che il commit che volevamo modificare era in cima, abbiamo potuto facilmente fare --amend per poi ritornare nell'ordine di partenza.",
"",
"L'unico problema qui è che ci sono tanti riordini da fare, che può portare a conflitti nel rebase. Vediamo di farlo attraverso il metodo `git cherry-pick`.",
],
},
},
{
type: "GitDemonstrationView",
options: {
beforeMarkdowns: [
"Ricorda che git cherry-pick creerà un qualsiasi commit del repository su HEAD (a condizione che il commit non sia un antenato di HEAD).",
"",
"Qui un breve demo per rinfrescare la memoria:",
],
afterMarkdowns: ["Grande! Andiamo avanti."],
command: "git cherry-pick C2",
beforeCommand:
"git checkout -b bugFix; git commit; git checkout main; git commit",
},
},
{
type: "ModalAlert",
options: {
markdowns: [
"In questo livello, dobbiamo fare amend di `C2` una volta, evitando di usare `rebase -i`. Lascerò a te il compito di scoprire come farlo! :D",
"",
"Ricorda, il numero esatto di apostrofi sul commit non sono importanti, solo le differenze tra essi. Per esempio, considererò l'albero che corrisponde a quello della soluzione ma che ha un apostrofo extra dappertutto.",
],
},
},
],
},
}
};

View file

@ -18,6 +18,7 @@ exports.level = {
"uk" : "Git Tags",
"vi" : "Tag trong Git",
"sl_SI": "Git Tagi",
"it_IT": "Git Tag",
"pl": "Git Tagi",
},
"hint": {
@ -36,6 +37,8 @@ exports.level = {
"uk" : "ти можеш або зробити checkout коміта напряму чи просто зачекаутити таг!",
"vi" : "Bạn có thể chuyển trực tiếp sang commit hoặc đơn giản là chuyển sang tag!",
"sl_SI": "Checkoutaš lahko neposredno commit ali pa preprosto njegov tag!",
"it_IT":
"Puoi fare direttamente checkout del commit o semplicemente del tag!",
"pl": "Możesz checkoutować commit bezpośrednio lub po prostu tag!",
},
"startDialog": {
@ -871,5 +874,57 @@ exports.level = {
}
]
},
"it_IT": {
childViews: [
{
type: "ModalAlert",
options: {
markdowns: [
"## Git Tag",
"",
"Come hai già imparato nelle lezioni precedenti, i rami sono facili da spostare e puntano a commit differenti man mano che il lavoro avanza. I rami subiscono modifiche, spesso temporaneamente, ma sono sempre in continua evoluzione.",
"",
"Ti starai chedendo se esiste un modo *definitivo* per segnare un particolare commit del repository. Nel caso di release importanti e grandi merge (fusioni), esiste un modo per segnare questi commit con qualcosa di più permanente dei rami?",
"",
],
},
},
{
type: "ModalAlert",
options: {
markdowns: [
'Ci puoi scommettere! Git tags serve proprio a questo -- i tag contrassegnano in modo permanente dei commit "importanti" a cui puoi far riferimento come avviene con i rami.',
"",
'Ancora più importante il fatto che non si spostano anche se vengono eseguiti nuovi commit. Non puoi selezionare un tag e aggiungere del lavoro su quel tag -- i tag esistono come ancore nell\'albero dei commit, e si riferiscono a determinati punti.',
"",
"Vediamo in pratica a cosa servono i tag.",
],
},
},
{
type: "GitDemonstrationView",
options: {
beforeMarkdowns: [
"Creiamo un tag in `C1` che è la nostra versione 1 del prototipo.",
],
afterMarkdowns: [
"Ecco! Abbastanza facile. Abbiamo creato il tag `v1` che si riferisce al solo commit `C1`. Se non specifichi il commit, git creera il tag sul commit puntato da `HEAD`.",
],
command: "git tag v1 C1",
beforeCommand: "git commit",
},
},
{
type: "ModalAlert",
options: {
markdowns: [
"In questo livello riproduci gli stessi tag mostrati nell'obbiettivo, e alla fine seleziona il tag `v1`. Presta attenzione a come vai nello stato di detached `HEAD` -- questo perché non puoi creare commit direttamente dal tag `v1.",
"",
"Nel livello successivo vedremo un utilizzo più interessante dell'uso dei tag.",
],
},
},
],
},
}
};

View file

@ -22,6 +22,7 @@ exports.level = {
"uk": "Знайомство з cherry-pick",
"vi" : "Giới thiệu về cherry-pick",
"sl_SI": "Uvod v Cherry-pick",
"it_IT": "Introduzione al cherry-pick",
"pl": "Wprowadzenie do Cherry-pick'ingu"
},
"hint": {
@ -40,6 +41,7 @@ exports.level = {
"uk": "git cherry-pick базується на іменах комітів!",
"vi" : "git cherry-pick sau đó là tên commit!",
"sl_SI": "git cherry-pick nato pa imena commitov.",
"it_IT": "git cherry-pick seguito dai nomi dei commit!",
"pl": "git cherry-pick a po nim nazwy commitów!",
},
"startDialog": {
@ -954,5 +956,63 @@ exports.level = {
}
]
},
"it_IT": {
childViews: [
{
type: "ModalAlert",
options: {
markdowns: [
"## Spostare il lavoro in giro",
"",
"Fino a ora abbiamo intravisto le basi di git -- creazione di commit, rami, e come spostarsi sull'albero dei commit. Questi concetti sono sufficienti per sfruttare il 90% della potenza di git, e soddisfano gli utilizzi standard degli sviluppatori.",
"",
'Il restante 10%, può rivelarsi utile in situazioni più complesse (o se ti sei messo nei guai). Il prossimo concetto che affronteremo è lo "spostare il lavoro in giro" -- in altre parole, è un modo per gli sviluppatori di dire "Voglio questo lavoro qua e quel lavoro la" in maniera chiara e precisa.',
"",
"Sembra un grosso lavoro, ma è un concetto semplice.",
],
},
},
{
type: "ModalAlert",
options: {
markdowns: [
"## Git Cherry-pick",
"",
"Il primo comando si chiama `git cherry-pick`. Il comando ha il seguente aspetto:",
"",
"* `git cherry-pick <Commit1> <Commit2> <...>`",
"",
"E' un modo chiaro e diretto di dire che vuoi la copia di una serie di commit da applicare sulla posizione in cui ti trovi attualmente (`HEAD`). Io personalmente adoro `cherry-pick` perché e semplice e facile da capire.",
"",
"Vediamo una demo!",
"",
],
},
},
{
type: "GitDemonstrationView",
options: {
beforeMarkdowns: [
"In questo repository abbiamo del lavoro nel ramo `side` che vogliamo copiare nel `main`. Questo può essere eseguito tramite rebase (che abbiamo già imparato), ma vediamo il cherry-pick all'opera.",
],
afterMarkdowns: [
"Ecco qua! Volevamo i commit `C2` and `C4` e git gli ha copiati sotto di noi. Semplicissimo!",
],
command: "git cherry-pick C2 C4",
beforeCommand:
"git checkout -b side; git commit; git commit; git commit; git checkout main; git commit;",
},
},
{
type: "ModalAlert",
options: {
markdowns: [
"Per completare questo livello, copia il lavoro dai tre rami sul main. Puoi vedere quali sono i commit richiesti guardando l'obbiettivo.",
"",
],
},
},
],
},
}
};

View file

@ -18,6 +18,7 @@ exports.level = {
"uk": "Втрачаємо голову чи detached HEAD",
'vi': "Tháo đầu cái nào",
"sl_SI": "Ločevanje tvoje glave - HEAD-a",
"it_IT": "Perdere la testa (HEAD)",
"pl" : "Odczep swój HEAD"
},
"hint": {
@ -36,6 +37,7 @@ exports.level = {
"uk": "Орієнтуйся по індентифікаторам (hash) комітів.",
"vi": "Dùng mã băm (hash) của commit để hoàn thành!",
"sl_SI": "Uporabi oznako (hash) commita za pomoč!",
"it_IT": "Usa l'etichetta (hash) sul commit per aiutarti!",
"pl": "Wpisz (hash) w wiadomości commita aby uzyskać pomoc!",
},
"startDialog": {
@ -1282,6 +1284,82 @@ exports.level = {
}
}
]
}
},
"it_IT": {
childViews: [
{
type: "ModalAlert",
options: {
markdowns: [
"## Spostarsi in Git",
"",
"Prima di imparare comandi avanzati in Git, è fondamentale conoscere i diversi modi per spostarsi nell'albero dei commit che costituiscono il tuo progetto.",
"",
"Una volta che ti sentirai a tuo agio, il potere con gli altri comandi git sarà amplificato!",
"",
"",
"",
"",
"",
],
},
},
{
type: "ModalAlert",
options: {
markdowns: [
"## HEAD",
"",
"Prima di tutto dobbiamo parlare di \"HEAD\". HEAD (testa) è il nome simbolico dato al commit selezionato -- in pratica è il commit su cui stai lavorando.",
"",
"HEAD punta sempre al commit più recente. La maggiorparte dei commandi git che fanno cambiamenti all'albero dei commit, faranno cambiamento a HEAD.",
"",
"Di norma HEAD punta al nome di un ramo (per esempio bugFix). Quando esegui un commit, lo stato di bugFix viene modificato, e questo cambiamento è visibile attraverso HEAD.",
],
},
},
{
type: "GitDemonstrationView",
options: {
beforeMarkdowns: [
"Vediamolo in azione. Qui mostreremo HEAD prima e dopo un commit.",
],
afterMarkdowns: [
"Visto! HEAD era nascosto sotto il ramo `main`.",
],
command:
"git checkout C1; git checkout main; git commit; git checkout C2",
beforeCommand: "",
},
},
{
type: "GitDemonstrationView",
options: {
beforeMarkdowns: [
"### Detaching HEAD (testa distaccata)",
"",
"Detaching HEAD significa attaccare la testa a un commit invece che a un ramo. All'inizio la situazione è questa:",
"",
"HEAD -> main -> C1",
"",
],
afterMarkdowns: ["E ora è", "", "HEAD -> C1"],
command: "git checkout C1",
beforeCommand: "",
},
},
{
type: "ModalAlert",
options: {
markdowns: [
"Per completare questo livello, stacchiamo HEAD da `bugFix` e attacchiamolo a un commit.",
"",
"Per specificare un commit si usa l'hash. L'hash per ogni commit è presente sul cerchio che rappresenta il commit.",
],
},
},
],
},
}
};

View file

@ -22,6 +22,8 @@ exports.level = {
"uk" : "ти можеш використовувати гілки чи відносні посилання (HEAD~) щоб вказувати ціль для rebase",
"vi": "bạn có thể sử dụng tham chiếu tương đối (HEAD~) hoặc nhánh để chỉ định mục tiêu rebase",
"sl_SI": "Uporabiš lahko bilokateri branch ali relativno referenco (HEAD~), da določiš cilj za rebase.",
"it_IT":
"Puoi usare sia i rami o i riferimenti relativi (HEAD~) per specificare l'obbiettivo del rebase",
"pl": "Możesz użyć gałęzi lub referencji względnych (HEAD~), aby określić cel rebase'a"
},
"name": {
@ -40,6 +42,7 @@ exports.level = {
"uk" : "Знайомство з інтерактивним rebase",
"vi" : "Giới thiệu về tương tác rebase",
"sl_SI": "Interaktivni uvod v Rebase",
"it_IT": "Introduzione al rebase interattivo",
"pl": "Wprowadzenie do interaktywnego Rebase'a",
},
"startDialog": {
@ -1087,5 +1090,73 @@ exports.level = {
}
]
},
"it_IT": {
childViews: [
{
type: "ModalAlert",
options: {
markdowns: [
"## Git rebase interattivo",
"",
"Git cherry-pick è fantastico quando sai quale commit vuoi (_e_ conosci l'hash corrispondente) -- è difficile avere di meglio.",
"",
"Ma cosa accade se non sai quale commit ti serve? Per fortuna git ci viene in contro anche in questo caso! Possiamo usare il rebase interattivo -- è il miglior modo per rivedere la sequenza di commit di cui stai per fare il rebase.",
"",
"Vediamolo nel dettaglio...",
],
},
},
{
type: "ModalAlert",
options: {
markdowns: [
"Fare rebase interattivo significa usare il comando `rebase` con l'opzione `-i`.",
"",
"Se aggiungi quest'opzione, git aprirà un'interfaccia per mostrarti quali commit stanno per essere copiati sotto il commit su cui vuoi fare il rebase. Verrà anche mostrato l'hash e il messaggio del commit, il che è grandioso per darci l'idea di cosa è cosa",
"",
'Nel git "vero", l\'interfaccia che si apre in realtà è un editor di testo come `vim`. Nel nostro caso, ho creato una piccola finestra che si comporta allo stesso modo.',
],
},
},
{
type: "ModalAlert",
options: {
markdowns: [
"Quando la finestra si apre, hai la possibilità di fare due cose:",
"",
"* Puoi riordinare i commit modificandone l'ordine (drag & drop con il mouse).",
"* Puoi decidere se conservare tutti i commit o rimuoverne qualcuno. Quando la finestra si apre, ogni commit è considerato preso dal pulsante `pick` " +
"attivo affianco a esso. Per scartare un commit, disattiva il suo pulsante `pick`.",
"",
"*Vale la pena ricordare che nel vero rebase interattivo puoi fare molte più cose come lo squashing (combinazione) di commit, " +
"la modifica del messaggio di commit (amending), e perfino la modifica dello stesso commit. Noi ci concentreremo sulle due funzioni descritte sopra.*",
"",
"Bene! Vediamo un esempio.",
],
},
},
{
type: "GitDemonstrationView",
options: {
beforeMarkdowns: [
"Quando premi il pulsante, apparira la finestra del rebase interattivo. Riordina qualche commit (o sentiti libero di scartarne qualcuno) e vediamo il risultato!",
],
afterMarkdowns: [
"Boom! Git ha fatto la copia nell'ordine esatto che hai specificato nell'interfaccia grafica.",
],
command: "git rebase -i HEAD~4 --aboveAll",
beforeCommand: "git commit; git commit; git commit; git commit",
},
},
{
type: "ModalAlert",
options: {
markdowns: [
"Per concludere questo livello, esegui un rebase interattivo e raggiungi l'obiettivo mostrato. Ricordati che puoi sempre fare `undo` o `reset` per correggere gli errori :D",
],
},
},
],
},
}
};

View file

@ -18,6 +18,7 @@ exports.level = {
"uk": "Відносні посилання",
"vi": "Tham chiếu tương đối (^)",
"sl_SI": "Relativne Reference (^)",
"it_IT": "Riferimenti relativi (^)",
"pl": "Referencje względne (^)",
},
"hint": {
@ -36,6 +37,7 @@ exports.level = {
"uk": "Не забудь оператор `^`",
"vi": "Đừng quên dấu mũ (^)!",
"sl_SI": "Spomni se na (^) operator!",
"it_IT": "Ricorda l'operatore Caret(^)... l'accento circonflesso!",
"pl": "Pamiętaj o operatorze karetu (^)!",
},
"startDialog": {
@ -1239,5 +1241,82 @@ exports.level = {
}
]
},
"it_IT": {
childViews: [
{
type: "ModalAlert",
options: {
markdowns: [
"## Riferimenti relativi",
"",
"Spostarsi in Git specificando l'hash dei commit può essere una scocciatura. Nella vita vera non avrai un bel albero con tutti i commit sullo schermo, dovrai usare `git log` per vedere gli hash.",
"",
"Inoltre, gli hash sono solitamente molto più lunghi. Per esempio, l'hash del commit nel livello precedente è `fed2da64c0efc5293610bdd892f82a58e8cbc5d8`. Non così semplice da ricordare...",
"",
"La nota positiva è che Git è furbo con gli hash. Richiede un numero di caratteri dell'hash tali da poter identificare in modo univoco il commit. Posso scrivere `fed2` invece dell'hash completo.",
],
},
},
{
type: "ModalAlert",
options: {
markdowns: [
"Come detto prima, specificare un commit tramite l'hash non è assolutamente il modo migliore, ragion per cui Git ha i riferimenti relativi. Sono stupendi!",
"",
"Tramite i riferimenti relativi, puoi partire da un punto facile da ricordare (per esempio dal ramo `bugFix` o `HEAD`) e procedere da li.",
"",
"Questi riferimenti sono strumenti potenti, introduciamo i più semplici:",
"",
"* Risalire di un commit alla volta con `^`",
"* Risalire di tot commit alla volta con `~<num>`",
],
},
},
{
type: "GitDemonstrationView",
options: {
beforeMarkdowns: [
"Diamo un occhiata all'operatore (^) chiamato Caret o accento circonflesso. Ogni volta che lo aggiungi a un riferimento, stai dicendo a Git di cercare il genitore del commit specificato.",
"",
'Quindi, dire `main^` è equivalente a dire "il primo genitore di `main`".',
"",
"`main^^` è il nonno (antenato di seconda generazione) di `main`",
"",
"Selezioniamo il commit sopra main.",
],
afterMarkdowns: [
"Colpito! Fatto. Mille volte meglio che scrivere l'hash.",
],
command: "git checkout main^",
beforeCommand: "git commit",
},
},
{
type: "GitDemonstrationView",
options: {
beforeMarkdowns: [
"Puoi considerare `HEAD` come un riferimento relativo. Usiamolo un paio di volte per risalire l'albero dei commit.",
],
afterMarkdowns: [
"Facile! Possiamo viaggiare in dietro nel tempo con `HEAD^`",
],
command:
"git checkout C3; git checkout HEAD^; git checkout HEAD^; git checkout HEAD^",
beforeCommand: "git commit; git commit",
},
},
{
type: "ModalAlert",
options: {
markdowns: [
"Per completare questo livello, seleziona il commit padre di `bugFix`. Questo provocherà una detached `HEAD`.",
"",
"Puoi usare l'hash se vuoi, ma prova a usare i riferimenti relativi!",
],
},
},
],
},
}
};

View file

@ -18,6 +18,8 @@ exports.level = {
"uk": "Тобі потрібно використати як мінімум одне пряме посилання (хеш) щоб пройти цей рівень",
"vi": "Bạn sẽ cần dùng ít nhất một tham chiếu trực tiếp (mã băm) để hoàn thành cấp độ này",
"sl_SI": "Moral boš uporabiti vsaj eno direktno referenco (hash) za dokončanje te stopnje.",
"it_IT":
"Dovrai usare almeno un riferimento diretto (hash) per completare questo livello",
"pl": "Aby ukończyć ten poziom, musisz użyć co najmniej jednego bezpośredniej referencji (hasza).",
},
"name": {
@ -36,6 +38,7 @@ exports.level = {
"uk": "Відносні посилання №2",
"vi": "Tham chiếu tương đối #2 (~)",
"sl_SI": "Relativne Reference #2 (~)",
"it_IT": "Riferimenti relativi #2 (~)",
"pl": "Referencje względne #2 (~)"
},
"startDialog": {
@ -1126,5 +1129,72 @@ exports.level = {
}
]
},
"it_IT": {
childViews: [
{
type: "ModalAlert",
options: {
markdowns: [
'### L\'operatore "~"',
"",
"Nel caso in cui vuoi risalire di più livelli l'albero dei commit, è una seccatura aggiungere `^` per ogni salto, per questo Git ha l'operatore tilde(~).",
"",
"",
"A questo operatore si può (facoltativamente) aggiungere un numero che specifica di quanti livelli si vuole risalire l'albero dei commit. Vediamolo in azione.",
],
},
},
{
type: "GitDemonstrationView",
options: {
beforeMarkdowns: [
"Specifichiamo il numero di commit con `~`.",
],
afterMarkdowns: ["Fatto! Breve ed efficace -- i riferimenti relativi sono stupendi."],
command: "git checkout HEAD~4",
beforeCommand: "git commit; git commit; git commit",
},
},
{
type: "ModalAlert",
options: {
markdowns: [
"### Forzatura dei rami (branch forcing)",
"",
"Ormai sei un esperto di riferimenti relativi, quindi facciamone realmente *uso* per qualcosa.",
"",
"Uno dei motivi più comuni per cui uso i riferimenti relativi è per spostare i rami. E' possibile assegnare un ramo a un commit con l'opzione `-f`. Per esempio:",
"",
"`git branch -f main HEAD~3`",
"",
"sposta (con la forza) il ramo main al terzo antenato di HEAD.",
],
},
},
{
type: "GitDemonstrationView",
options: {
beforeMarkdowns: ["Vediamolo in azione."],
afterMarkdowns: [
"Ecco qua! I riferimenti relativi ci permettono facilmente di specificare `C1` e il branch forcing (`-f`) ci da modo di spostare rapidamente il ramo su quella posizione.",
],
command: "git branch -f main HEAD~3",
beforeCommand:
"git commit; git commit; git commit; git checkout -b bugFix",
},
},
{
type: "ModalAlert",
options: {
markdowns: [
"Ora che hai visto i riferimenti relativi e il branch forcing, usiamoli per completare il prossimo livello.",
"",
"Per completare questo livello, sposta `HEAD`, `main`, e `bugFix` alla loro destinazione finale mostrata nell'obiettivo.",
],
},
},
],
},
}
};

View file

@ -19,6 +19,7 @@ exports.level = {
"uk": "Відміна змін в Git",
"vi": "Hoàn tác thay đổi trong Git",
"sl_SI": "Revertanje Sprememb v Gitu",
"it_IT": "Annullare i cambiamenti in Git",
"pl": "Odwracanie zmian w Gitcie",
},
"hint": {
@ -37,6 +38,7 @@ exports.level = {
"uk": "Зверни увагу на те що revert та reset приймають різні параметри",
"vi": "Lưu ý rằng hoàn tác(revert) và đặt lại(reset) có những đối số khác nhau.",
"sl_SI": "Revert in reset sprejmeta različne argumente.",
"it_IT": "Revert e reset hanno parametri diversi.",
"pl": "Zauważ, że revert i reset przyjmują różne argumenty",
},
"startDialog": {
@ -1039,6 +1041,70 @@ exports.level = {
}
},
]
}
},
"it_IT": {
childViews: [
{
type: "ModalAlert",
options: {
markdowns: [
"## Annullare i cambiamenti in Git",
"",
"Esistono molti modi per annullare i cambiamenti in Git. Come la creazione di commit, anche l'annullamento in Git ha sia una componente di basso livello (tracciatura dei singoli file o blocchi) e uno di alto livello (come l'annullamento viene realmente eseguito). La nostra applicazione si concentrerà su quest'ultima.",
"",
"Ci sono due modi principali per annullare con Git -- uno è usare `git reset` e l'altro è `git revert`. Entreremo nel dettaglio per entrambi",
"",
],
},
},
{
type: "GitDemonstrationView",
options: {
beforeMarkdowns: [
"## Git Reset",
"",
'`git reset` annulla le modifiche spostando il puntatore al ramo indietro nel tempo a un commit precedente. Puoi vederla come se stessi "riscriveno la storia;" `git reset` torna al commit precedente come se il nuovo commit non fosse mai esistito.',
"",
"Vediamone una rappresentazione:",
],
afterMarkdowns: [
"Grande! Git ha spostato il puntatore del ramo main the main sul commit `C1`; ora il nostro repository locale è come se non avesse mai avuto un commit `C2`.",
],
command: "git reset HEAD~1",
beforeCommand: "git commit",
},
},
{
type: "GitDemonstrationView",
options: {
beforeMarkdowns: [
"## Git Revert",
"",
'Git reset funziona perfettamente in locale sul proprio computer, la funzione di "riscrivere la storia" non va d\'accordo con i rami salvati in remoto utilizzati da altri colleghi.',
"",
"Per fare in modo di annullare e *condividere* con gli altri le modifiche annullate, dobbiamo usare `git revert`. Vediamolo in azione.",
],
afterMarkdowns: [
"Strano, un nuovo commit è stato creato sotto il commit che volevamo annullare. Questo perché il nuovo commit `C2'` porta *cambiamenti* -- per l'esattezza i cambiamenti sono quelli che annullano il commit `C2`.",
"",
"Con git revert, aggiungi i cambiamenti che possono essere poi condivisi con altrri.",
],
command: "git revert HEAD",
beforeCommand: "git commit",
},
},
{
type: "ModalAlert",
options: {
markdowns: [
"Per completare questo livello, annulla i commit più recenti sia in `local` che in `pushed`. Alla fine annullerai due commit in totale (uno per ramo).",
"",
"Tieni presente che `pushed` è un ramo remoto e `local` è un ramo remoto -- questo dovrebbe aiutarti a scegliere quale metodo usare.",
],
},
},
],
},
}
};

View file

@ -23,6 +23,7 @@ exports.level = {
"uk" : "Rebase over 9000 разів",
"vi" : "Rebase hơn 9000 lần",
"sl_SI": "Več kot 9000 Rebaseov",
"it_IT": "Rebasing livello 8000",
"pl" : "Rebase ponad 9000 razy"
},
"hint": {
@ -41,6 +42,8 @@ exports.level = {
"uk" : "Не забувай, що краще всього буде перемістити main в самому кінці... ",
"vi" : "Hãy nhớ rằng, cách tốt nhất có lẽ là nên cuối cùng mới cập nhật nhánh `main`... ",
"sl_SI": "Pomni, morda je najbolj učinkovit način posodabljanje masterja samo na koncu ...",
"it_IT":
"Ricorda, il modo migliore potrebbe essere di aggiornare il main alla fine...",
"pl" : "Pamiętaj, że najskuteczniejszym sposobem może być aktualizacja `main` tylko na samym końcu..."
},
"startDialog": {
@ -331,5 +334,23 @@ exports.level = {
}
]
},
"it_IT": {
childViews: [
{
type: "ModalAlert",
options: {
markdowns: [
"### Fare rebase con più rami",
"",
"Hey, qui abbiamo un bel po di rami! Facciamo un po di rebase di questi rami nel main.",
"",
"I piani alti ci stanno rendendo la vita complicata -- vogliono i commit tutti in ordine progressivo. Questo significa che alla fine il nostro albero avrà `C7'` come ultimo commit, `C6'` sopra di esso, e così via, tutto in ordine.",
"",
"Se ti smarrisci lungo la via, usa `reset` senza problemi per ripartire da capo. Assicurati di raggiungere l'obiettivo e cerca di farlo con il minor numero di comandi!",
],
},
},
],
},
}
};

View file

@ -22,6 +22,7 @@ exports.level = {
"uk" : "Макарони з гілок",
"vi" : "Nhánh rối như canh hẹ",
"sl_SI": "Špageti iz Branchev",
"it_IT": "Rami spaghettificati",
"pl": "Gałęziowe Spaghetti",
},
"hint": {
@ -40,6 +41,7 @@ exports.level = {
"uk": "Переконайся, що все йде за порядком! Спершу гілка `one`, потім `two`, і тільки потім `three`",
"vi": "Hãy chắc chắn rằng bạn làm đúng thứ tự! Nhánh `one` trước, rồi `two`, rồi mới đến `three`",
"sl_SI": "Glej da boš vse opravil v pravilnem vrstnem redu! Najprej branch ena, nato pa dva in tri.",
"it_IT": "Assicurati di fare tutto nel giusto ordine! Prima il primo ramo, poi il secondo, poi il terzo",
"pl": "Upewnij się, że robisz wszystko w odpowiedniej kolejności! Gałąź pierwsza, potem druga, potem trzecia.",
},
"startDialog": {
@ -362,5 +364,25 @@ exports.level = {
}
]
},
"it_IT": {
"childViews": [
{
"type": "ModalAlert",
"options": {
"markdowns": [
"## Rami spaghettificati",
"",
"Accidenti! C'è tanto da fare per raggiungere l'obiettivo questa volta.",
"",
"Qui abbiamo il `main` situato qualche commit più avanti rispetto ai rami `one` `two` e `three`. Per una qualche ragione, dobbiamo aggiungere questi altri tre rami con versioni aggiornate degli ultimi commit sul main.",
"",
"Il ramo `one` deve essere riordinato e il commit`C5` è da rimuovere. `two` deve essere riordinato, e `three` deve avere un solo commit!",
"",
"Tocca a te capire come farlo -- controlla la soluzione alla fine con il comando `show solution`. "
]
}
}
]
},
}
};

View file

@ -533,10 +533,10 @@ bl@^1.2.1:
readable-stream "^2.3.5"
safe-buffer "^5.1.1"
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
version "4.11.9"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828"
integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.11.9:
version "4.12.0"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
brace-expansion@^1.1.7:
version "1.1.11"
@ -571,7 +571,7 @@ braces@^2.3.1, braces@^2.3.2:
split-string "^3.0.2"
to-regex "^3.0.1"
brorand@^1.0.1:
brorand@^1.0.1, brorand@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
@ -769,6 +769,14 @@ cached-path-relative@^1.0.0, cached-path-relative@^1.0.2:
resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz#a13df4196d26776220cc3356eb147a52dba2c6db"
integrity sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==
call-bind@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
dependencies:
function-bind "^1.1.1"
get-intrinsic "^1.0.2"
camel-case@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73"
@ -1200,7 +1208,7 @@ defer-to-connect@^1.0.1:
resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591"
integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==
define-properties@^1.1.2:
define-properties@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
@ -1344,17 +1352,17 @@ each-props@^1.3.0:
object.defaults "^1.1.0"
elliptic@^6.0.0:
version "6.5.3"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6"
integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==
version "6.5.4"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
dependencies:
bn.js "^4.4.0"
brorand "^1.0.1"
bn.js "^4.11.9"
brorand "^1.1.0"
hash.js "^1.0.0"
hmac-drbg "^1.0.0"
inherits "^2.0.1"
minimalistic-assert "^1.0.0"
minimalistic-crypto-utils "^1.0.0"
hmac-drbg "^1.0.1"
inherits "^2.0.4"
minimalistic-assert "^1.0.1"
minimalistic-crypto-utils "^1.0.1"
encoding@^0.1.11:
version "0.1.12"
@ -1768,6 +1776,15 @@ get-caller-file@^1.0.1:
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
get-intrinsic@^1.0.2:
version "1.1.1"
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
dependencies:
function-bind "^1.1.1"
has "^1.0.3"
has-symbols "^1.0.1"
get-stdin@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
@ -2063,10 +2080,10 @@ has-gulplog@^0.1.0:
dependencies:
sparkles "^1.0.0"
has-symbols@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
has-symbols@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
has-value@^0.3.1:
version "0.3.1"
@ -2099,7 +2116,7 @@ has-values@^1.0.0:
is-number "^3.0.0"
kind-of "^4.0.0"
has@^1.0.0:
has@^1.0.0, has@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
@ -2127,7 +2144,7 @@ he@^1.2.0:
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
hmac-drbg@^1.0.0:
hmac-drbg@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=
@ -2219,7 +2236,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3:
inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@ -3173,7 +3190,7 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
minimalistic-crypto-utils@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
@ -3358,7 +3375,7 @@ object-copy@^0.1.0:
define-property "^0.2.5"
kind-of "^3.0.3"
object-keys@^1.0.11, object-keys@^1.0.12:
object-keys@^1.0.12, object-keys@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
@ -3370,15 +3387,15 @@ object-visit@^1.0.0:
dependencies:
isobject "^3.0.0"
object.assign@^4.0.4:
version "4.1.0"
resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==
object.assign@^4.0.4, object.assign@^4.1.0:
version "4.1.2"
resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
dependencies:
define-properties "^1.1.2"
function-bind "^1.1.1"
has-symbols "^1.0.0"
object-keys "^1.0.11"
call-bind "^1.0.0"
define-properties "^1.1.3"
has-symbols "^1.0.1"
object-keys "^1.1.1"
object.defaults@^1.0.0, object.defaults@^1.1.0:
version "1.1.0"
@ -4984,11 +5001,12 @@ yallist@^2.1.2:
integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
yargs-parser@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a"
integrity sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=
version "5.0.1"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.1.tgz#7ede329c1d8cdbbe209bd25cdb990e9b1ebbb394"
integrity sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==
dependencies:
camelcase "^3.0.0"
object.assign "^4.1.0"
yargs-parser@^7.0.0:
version "7.0.0"