* Add gitattributes

* Add update locales script

* Update locales

* Remove old script files

* Switch to use transifex client app
pull/517/merge
Rob Garrison 6 years ago committed by GitHub
parent 30cf5b2458
commit 5536f7ad22
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

2
.gitattributes vendored

@ -0,0 +1,2 @@
# Auto detect text files and perform LF normalization
* text=auto

@ -4,7 +4,9 @@
2. [How to report issues](#how-to-report-issues)
3. [Adding translations](#adding-translations)
4. [Pull requests](#pull-requests)
5. [Contact us](#contact-us)
5. [Scripts](#scripts)
6. [Updating locale files](#updating-locale-files-admin-only)
7. [Contact us](#contact-us)
## Getting involved
@ -32,6 +34,26 @@ You can help us translate the extension on [Transifex](https://www.transifex.com
* Make any changes within a branch of this repository (not the `master` branch).
* Submit a pull request and include a reference to the initial issue with the discussion.
## Scripts
* `npm run lint` - Run ESLint on all JavaScript files.
* `npm run update` - Runs update-node & update-main scripts.
* `npm run update-quick` - Updates development dependencies (uses `npm update`; does not include new dependencies).
* `npm run update-locales` (admin only)- Updates locale files from Transifex. See the [updating locale files section](#updating-locale-files-admin-only) for more details.
* `npm run update-main` - Runs update-versions & update-codemirror.
* `npm run update-node` - Update development dependencies, removes & reinstalls `node_modules` folder (slow).
* `npm run update-transifex` (admin only) - Upload `en/messages.json` source to Transifex.
* `npm run update-vendor` - Update codemirror, codemirror themes & other vendor libraries.
* `npm run update-versions` - Update version of `manifest.json` to match `package.json`.
* `npm run zip` - Run update-versions, then compress required files into a zip file.
## Updating locale files (admin only)
* Make sure you have the Transifex client installed. Follow the instructions on [this page](https://docs.transifex.com/client/installing-the-client).
* Contact another admin if you need the `.transifexrc` file in the root folder. It includes the API key to use Transifex's API.
* Use `npm run update-locales` in the command line to [update the language files](https://docs.transifex.com/client/pull) in the repo.
* Use `npm run update-transifex` in the command line to [upload the source](https://docs.transifex.com/client/push) `en/messages.json` file to Transifex.
## Contact us
If you prefer a more informal method of getting in touch or starting a conversation, please [join us on Discord](https://discordapp.com/widget?id=379521691774353408) or leave a comment in the [discussion section](https://add0n.com/stylus.html#reviews). We will monitor any discussions there and join in, and it may be a more appropriate venue for opinions and less urgent suggestions.

1
.gitignore vendored

@ -6,3 +6,4 @@ package-lock.json
yarn.lock
*.zip
.eslintcache
.transifexrc

@ -0,0 +1,10 @@
[main]
host = https://www.transifex.com
[Stylus.messages]
file_filter = _locales/<lang>/messages.json
minimum_perc = 0
source_file = _locales/en/messages.json
source_lang = en_US
type = CHROME

@ -160,4 +160,4 @@
"updateCompleted": {
"message": "اكتمل التحديث."
}
}
}

@ -575,4 +575,4 @@
"writeStyleForURL": {
"message": "този адрес"
}
}
}

@ -284,4 +284,4 @@
"manageOnlyUsercss": {
"message": "Само Потребителскиcss стилове"
}
}
}

@ -258,11 +258,11 @@
"filteredStyles": {
"message": "zobrazeno $numShown$ z $numTotal$",
"placeholders": {
"numShown": {
"content": "$1"
},
"numTotal": {
"content": "$2"
},
"numShown": {
"content": "$1"
}
}
},
@ -742,6 +742,9 @@
"styleBeautifyIndentConditional": {
"message": "Odsadit @media, @supports"
},
"styleBeautifyPreserveNewlines": {
"message": "Zachovat nové řádky"
},
"styleCancelEditLabel": {
"message": "Zpět ke správě"
},
@ -776,14 +779,14 @@
"styleInstallOverwrite": {
"message": "Styl „$stylename$“ je již nainstalován. Přepsat?\nVerze: $oldVersion$ → $newVersion$",
"placeholders": {
"stylename": {
"content": "$1"
},
"newVersion": {
"content": "$3"
},
"oldVersion": {
"content": "$2"
},
"stylename": {
"content": "$1"
}
}
},
@ -798,6 +801,14 @@
}
}
},
"styleMetaErrorRangeOrNumber": {
"message": "Neplatná @var $type$: hodnota musí být pole obsahující alespoň jedno číslo na nulové pozici",
"placeholders": {
"type": {
"content": "$1"
}
}
},
"styleMetaErrorPreprocessor": {
"message": "Nepodporovaný @preprocessor: $preprocessor$",
"placeholders": {
@ -953,6 +964,9 @@
"updatesCurrentlyInstalled": {
"message": "Instalované aktualizace:"
},
"usercssAvoidOverwriting": {
"message": "Prosím, změňte hodnotu @name nebo @namespace ať nedojde k přepsání existujícího stylu."
},
"usercssConfigIncomplete": {
"message": "Styl byl aktualizován nebo smazán po zobrazení dialogu konfigurace. Tyto proměnné nebyly uloženy aby se předešlo poškození metadat stylu."
},
@ -977,4 +991,4 @@
"writeStyleForURL": {
"message": "tuto URL"
}
}
}

@ -246,11 +246,11 @@
"filteredStyles": {
"message": "$numShown$ von $numTotal$ gesamt",
"placeholders": {
"numShown": {
"content": "$1"
},
"numTotal": {
"content": "$2"
},
"numShown": {
"content": "$1"
}
}
},
@ -776,14 +776,14 @@
"styleInstallOverwrite": {
"message": "\"$stylename$\" ist bereits installiert. Überschreiben?\nVersion: $oldVersion$ -> $newVersion$",
"placeholders": {
"stylename": {
"content": "$1"
},
"newVersion": {
"content": "$3"
},
"oldVersion": {
"content": "$2"
},
"stylename": {
"content": "$1"
}
}
},
@ -798,6 +798,14 @@
}
}
},
"styleMetaErrorRangeOrNumber": {
"message": "@var $type$ ungültig: Wert muss ein Array sein, welches mindestens eine Zahl an Index 0 enthält",
"placeholders": {
"type": {
"content": "$1"
}
}
},
"styleMetaErrorPreprocessor": {
"message": "Nicht unterstützter @preprocessor: $preprocessor$",
"placeholders": {
@ -980,4 +988,4 @@
"writeStyleForURL": {
"message": "diese URL"
}
}
}

@ -225,4 +225,4 @@
"writeStyleForURL": {
"message": "αυτή την διεύθυνση URL"
}
}
}

@ -72,4 +72,4 @@
"usercssConfigIncomplete": {
"message": "The style was updated or deleted after the configuration dialogue was shown. These variables were not saved to avoid corrupting the style's metadata:"
}
}
}

@ -255,11 +255,11 @@
"filteredStyles": {
"message": "$numShown$ mostrados de $numTotal$ en total",
"placeholders": {
"numShown": {
"content": "$1"
},
"numTotal": {
"content": "$2"
},
"numShown": {
"content": "$1"
}
}
},
@ -791,14 +791,14 @@
"styleInstallOverwrite": {
"message": "'$stylename$' ya está instalado ¿Sobrescribirlo?\nVersión: $oldVersion$ -> $newVersion$",
"placeholders": {
"stylename": {
"content": "$1"
},
"newVersion": {
"content": "$3"
},
"oldVersion": {
"content": "$2"
},
"stylename": {
"content": "$1"
}
}
},
@ -998,4 +998,4 @@
"writeStyleForURL": {
"message": "este URL"
}
}
}

@ -255,11 +255,11 @@
"filteredStyles": {
"message": "$numShown$/$numTotal$ kuvatud",
"placeholders": {
"numShown": {
"content": "$1"
},
"numTotal": {
"content": "$2"
},
"numShown": {
"content": "$1"
}
}
},
@ -794,14 +794,14 @@
"styleInstallOverwrite": {
"message": "'$stylename$' on juba paigaldatud. Kas kirjutada üle?\nVersioon: $oldVersion$ -> $newVersion$",
"placeholders": {
"stylename": {
"content": "$1"
},
"newVersion": {
"content": "$3"
},
"oldVersion": {
"content": "$2"
},
"stylename": {
"content": "$1"
}
}
},
@ -1001,4 +1001,4 @@
"writeStyleForURL": {
"message": "see URL"
}
}
}

@ -172,4 +172,4 @@
"updateCompleted": {
"message": "Päivitys suoritettu."
}
}
}

@ -258,11 +258,11 @@
"filteredStyles": {
"message": "$numShown$ montrés sur $numTotal$ au total",
"placeholders": {
"numShown": {
"content": "$1"
},
"numTotal": {
"content": "$2"
},
"numShown": {
"content": "$1"
}
}
},
@ -785,14 +785,14 @@
"styleInstallOverwrite": {
"message": "\"$stylename$\" est déjà installé. L'écraser ?\nVersion : $oldVersion$ -> $newVersion$",
"placeholders": {
"stylename": {
"content": "$1"
},
"newVersion": {
"content": "$3"
},
"oldVersion": {
"content": "$2"
},
"stylename": {
"content": "$1"
}
}
},
@ -989,4 +989,4 @@
"writeStyleForURL": {
"message": "cette URL"
}
}
}

@ -94,4 +94,4 @@
"deleteStyleLabel": {
"message": "Fuortsmite"
}
}
}

@ -0,0 +1,52 @@
{
"addStyleTitle": {
"message": "Engadir Estilo"
},
"alphaChannel": {
"message": "Opacidade"
},
"appliesAdd": {
"message": "Engadir"
},
"appliesDisplay": {
"message": "Aplica a: $applies$",
"placeholders": {
"applies": {
"content": "$1"
}
}
},
"appliesDisplayTruncatedSuffix": {
"message": "e mais"
},
"appliesDomainOption": {
"message": "URLs no dominio"
},
"appliesLabel": {
"message": "Aplica para"
},
"appliesLineWidgetWarning": {
"message": "Non funciona con CSS minificado"
},
"appliesRegexpOption": {
"message": "URLs que concorden co regexp"
},
"appliesRemove": {
"message": "Suprimir"
},
"appliesSpecify": {
"message": "Especificar"
},
"appliesToEverything": {
"message": "Todo"
},
"appliesUrlPrefixOption": {
"message": "URLs que comecen por"
},
"applyAllUpdates": {
"message": "Aplicar tódalas actualizacións"
},
"author": {
"message": "Autor"
}
}

@ -764,4 +764,4 @@
"writeStyleForURL": {
"message": "הקישור הנוכחי"
}
}
}

@ -12,7 +12,7 @@
"message": "Hozzáadás"
},
"appliesDisplay": {
"message": "A következőre érvényesül:$applies$",
"message": "Érvényes erre:$applies$",
"placeholders": {
"applies": {
"content": "$1"
@ -23,22 +23,22 @@
"message": "és ennél is több"
},
"appliesDomainOption": {
"message": "URL-ek a doménon"
"message": "URL-ek a tartományban"
},
"appliesHelp": {
"message": "Használd az \"A következőre érvényesül\" részt, hogy korlátozd, milyen URL-ekre vonatkozzon az itt lévő kód!"
"message": "Az \"Érvényes erre\" beállítással korlártozható, hogy milyen URL-ekre vonatkozik az itt lévő kód."
},
"appliesLabel": {
"message": "Amire érvényesül"
"message": "Érvényes erre"
},
"appliesLineWidgetLabel": {
"message": "Információ megjelenítése arról, hogy mire van alkalmazva"
},
"appliesLineWidgetWarning": {
"message": "Nem működik minimalizált CSS-szel"
"message": "Nem működik minimalizált CSS-sel"
},
"appliesRegexpOption": {
"message": "Reguláris kifejezésekre (regexp) illeszkedő URL-ek"
"message": "Reguláris kifejezésre (regexp) illeszkedő URL-ek"
},
"appliesRemove": {
"message": "Eltávolítás"
@ -71,7 +71,7 @@
"message": "Stílusok exportálása"
},
"checkAllUpdates": {
"message": "Az összes stílus frissítésének ellenőrzése"
"message": "Összes stílus frissítésének ellenőrzése"
},
"checkAllUpdatesForce": {
"message": "Ellenőrizd újra, nem módosítottam egy stílust sem!"
@ -89,13 +89,13 @@
"message": "Zárójelek és idézőjelek automatikus bezárása"
},
"cm_autoCloseBracketsTooltip": {
"message": "Automatikusan legyen hozzáadva záró jelpár a következők gépelésekor: ()[]{}''\"\""
"message": "Nyitó '([{'zárójel gépelésekor lezáró ')]}' zárójel automatikus hozzáadása"
},
"cm_autocompleteOnTyping": {
"message": "Automatikus kiegészítés gépeléskor"
},
"cm_colorpicker": {
"message": "Színválasztó CSS színekhez"
"message": "Színválasztó CSS-színekhez"
},
"cm_indentWithTabs": {
"message": "Tabulátorok használata intelligens behúzásra"
@ -107,7 +107,7 @@
"message": "Automatikus sortörés"
},
"cm_matchHighlight": {
"message": "Kijelöl"
"message": "Kijelölés"
},
"cm_matchHighlightSelection": {
"message": "Csak kiválasztás"
@ -125,7 +125,7 @@
"message": "Példák kifejezésekre: .valami-2 #aabbcc 0.32 !important\nAmikor ki van kapcsolva: a központosítással elválasztott szavak ki lesznek jelölve."
},
"cm_smartIndent": {
"message": "Intelligens behúzás használata"
"message": "Intelligens behúzás"
},
"cm_tabSize": {
"message": "Tabulátorméret"
@ -200,7 +200,7 @@
"message": "Tervezd újra a webet a Stylus stíluskezelővel. A Stylus lehetővé teszi a témák és egyéni külsők egyszerű telepítését sok népszerű oldalhoz."
},
"disableAllStyles": {
"message": "Az összes stílus kikapcsolása"
"message": "Összes stílus kikapcsolása"
},
"disableStyleLabel": {
"message": "Letiltás"
@ -255,11 +255,11 @@
"filteredStyles": {
"message": "$numShown$ mutatva $numTotal$-ból/-ből",
"placeholders": {
"numShown": {
"content": "$1"
},
"numTotal": {
"content": "$2"
},
"numShown": {
"content": "$1"
}
}
},
@ -321,10 +321,10 @@
"message": "Írj be egy parancsot"
},
"helpKeyMapHotkey": {
"message": "Gyorsgomb"
"message": "Gyorsbillentyű"
},
"importAppendLabel": {
"message": "Hozzáadás stílushoz"
"message": "Hozzáfűzés stílushoz"
},
"importAppendTooltip": {
"message": "Az importált stílus hozzáadása a jelenlegi stílushoz"
@ -357,10 +357,10 @@
"message": "metainfó frissítve"
},
"importReportTitle": {
"message": "A stílusok importálása befejeződött"
"message": "A stílusok importálása befejeződött."
},
"importReportUnchanged": {
"message": "Semmi sem változott."
"message": "Nincs változás."
},
"importReportUndone": {
"message": "stílusok visszavonva"
@ -384,7 +384,7 @@
"message": "Frissítés telepítése"
},
"installUpdateFrom": {
"message": "A stílus most a következő helyről frissül: $url$",
"message": "A stílus jelenleg innen frissül: $url$",
"placeholders": {
"url": {
"content": "$1"
@ -398,7 +398,7 @@
"message": "Licenc"
},
"linkGetHelp": {
"message": "Kérj segítséget"
"message": "Segítség kérése"
},
"linkGetStyles": {
"message": "Szerezz be stílusokat"
@ -426,10 +426,10 @@
}
},
"linterConfigTooltip": {
"message": "Kattints ennek a linternek a beállításához"
"message": "Linter beállítása"
},
"linterInvalidConfigError": {
"message": "Nincs mentve ezek miatt az érvénytelen beállítások miatt:"
"message": "Nincs mentve a következő érvénytelen beállítások miatt:"
},
"linterIssues": {
"message": "Problémák"
@ -443,31 +443,31 @@
}
},
"linterJSONError": {
"message": "Érvénytelen JSON formátum"
"message": "Érvénytelen JSON-formátum"
},
"linterResetMessage": {
"message": "Egy véletlen visszaállítás visszavonásához nyomj Ctrl-Z-t (vagy Cmd-Z) a szövegdobozon belül)"
},
"linterRulesLink": {
"message": "Lista az összes stílusról"
"message": "Összes szabály listája"
},
"liveReloadError": {
"message": "Hiba történt a fájl figyelése közben"
},
"liveReloadInstallHint": {
"message": "A valós idejű újratöltés engedélyezve van, így a telepített stílus automatikusan frissítve lesz kűlső változtatások során amíg ez a fül és a forrásfájlt tartalmazó fül nyitva van."
"message": "A valós idejű újratöltés engedélyezve van, így a telepített stílus automatikusan frissül külső változások során, amíg ez a fül és a forrásfájlt tartalmazó fül nyitva van."
},
"liveReloadLabel": {
"message": "Valós idejű újratöltés"
},
"manageFavicons": {
"message": "Faviconok az alkalmazási oszlopban"
"message": "Faviconok az 'Érvényes erre' oszlopban"
},
"manageFaviconsGray": {
"message": "Szürke mód"
"message": "Megjelenítés szürkítve"
},
"manageFaviconsHelp": {
"message": "A Stylus egy külső szolgáltatást használ (https://www.google.com/s2/favicons)"
"message": "A Stylus külső szolgáltatást használ (https://www.google.com/s2/favicons)"
},
"manageFilters": {
"message": "Szűrők"
@ -476,13 +476,13 @@
"message": "Telepített stílusok"
},
"manageMaxTargets": {
"message": "Megjelenítendő célok száma"
"message": "'Érvényes erre' elemek kijelzendő száma"
},
"manageNewStyleAsUsercss": {
"message": "Usercss-ként"
},
"manageNewUI": {
"message": "Az új kezelési felületkiosztás"
"message": "Új kezelői felület"
},
"manageOnlyDisabled": {
"message": "Csak letiltott stílusok"
@ -497,13 +497,13 @@
"message": "Csak helyileg létrehozott stílusok"
},
"manageOnlyLocalTooltip": {
"message": "(a stílusok nem egy userstyles.org oldalon lettek telepítve)"
"message": "(a stílusok nem a userstyles.org egyik oldaláról települtek)"
},
"manageOnlyNonUsercss": {
"message": "Csak nem Usercss stílusok"
},
"manageOnlyUpdates": {
"message": "Csak frissíthetőek vagy problémásak"
"message": "Csak a frissíthetők vagy problémásak"
},
"manageOnlyUsercss": {
"message": "Csak Usercss stílusok"
@ -524,7 +524,7 @@
"message": "Beállítások"
},
"openStylesManager": {
"message": "A frissítéskezelő megnyitása"
"message": "Stíluskezelő megnyitása"
},
"optionsActions": {
"message": "Műveletek"
@ -533,13 +533,13 @@
"message": "Haladó"
},
"optionsAdvancedContextDelete": {
"message": "Delete hozzáadása a gyorsmenühöz"
"message": "'Törlés' parancs a szerkesztő helyi menüjében"
},
"optionsAdvancedExposeIframes": {
"message": "iframe-ek kitevése HTML[stylus-iframe]-en keresztül"
},
"optionsAdvancedExposeIframesNote": {
"message": "Engedélyezi a legfelsőbb szintű domain elérését\nmindegyik iframe-ben. Lehetővé teszi az olyan\niframe-specifikus CSS írását, mint:\nhtml[stylus-iframe$=\"twitter.com\"] h1 { display:none }"
"message": "A legfelsőbb szintű tartomány elérésének engedélyezése\nmindegyik iframe-ben. Lehetővé teszi az olyan\niframe-specifikus CSS írását, mint pl.:\nhtml[stylus-iframe$=\"twitter.com\"] h1 { display:none }"
},
"optionsAdvancedNewStyleAsUsercss": {
"message": "Új stílus írása usercss-ként"
@ -557,13 +557,13 @@
"message": "Az összes frissítés ellenőrzése és telepítése"
},
"optionsCustomizeBadge": {
"message": "Jelvény az eszköztárikonon"
"message": "Ikon képe az eszköztáron"
},
"optionsCustomizeIcon": {
"message": "Eszköztárikon"
},
"optionsCustomizePopup": {
"message": "Felugró"
"message": "Felugró ablak"
},
"optionsCustomizeUpdate": {
"message": "Frissítések"
@ -587,13 +587,13 @@
"message": "Felugró ablak szélessége (pixelben)"
},
"optionsReset": {
"message": "Beállítások visszaállítása alapértelmezett értékekre."
"message": "Beállítások visszaállítása alapértelmezett értékre"
},
"optionsResetButton": {
"message": "Beállítások visszaállítása alapra"
"message": "Alapértelmezés visszaállítása"
},
"optionsSubheading": {
"message": "Még több beállítás"
"message": "További beállítások"
},
"optionsUpdateImportNote": {
"message": "Amikor régebbi verzióból vagy a Stylishból importálsz stílusokat, egyszer manuálisan frissítsd a stílusokat a stíluskezelőben, hogy megbizonyosodj afelől, hogy mindegyik frissítve van!"
@ -620,19 +620,19 @@
"message": "A Stylus nem tudta elemezni a usercss-t"
},
"popupBorders": {
"message": "Fehér szegélyek használata két oldalt"
"message": "Fehér szegély az oldalakon"
},
"popupBordersTooltip": {
"message": "Hasznos az új Chromehoz létrehozott sötét témákhoz, mert nem színezi át az oldalszegélyeket"
"message": "Hasznos az új Chrome sötét témáinál, mert nem színezi át az oldalszegélyeket"
},
"popupHotkeysInfo": {
"message": "<1>-<9>, <0>, a numpaden is - be-/kikapcsolja az n-nedik stílust (a 0 10-et jelent)\n<A>-<Z> az adott betűvel kezdődő első stílust kapcsolja be/ki \n<Shift> kapcsolgatás helyett megnyitja a szerkesztőt\n<Numpad +> listázott stílusokat engedélyez\n<Numpad > listázott stílusokat tilt le\n<Numpad *> és <`> (fordított félidézőjel) - kezdeti állapotban engedélyezett stílusokat kapcsol; nem vonatkozik azokra a stílusokra, amiket később engedélyeztél, mialatt a felugró ablakocska nyitva volt, hogy vissza tudd állítani a kezdeti kiválasztást tesztelés után: egyszerűen tilts le mindent, majd pl. <Numpad > vagy <Numpad *>\nTovábbi információ a wikiben"
},
"popupHotkeysTooltip": {
"message": "Kattints az elérhető gyorsbillentyűk megtekintéséhez"
"message": "Elérhető gyorsbillentyűk megtekintése"
},
"popupManageTooltip": {
"message": "Shift-kattintás vagy jobb kattintás megnyitja a stíluskezelőt a jelenlegi oldalra érvényesülő stílusokkal"
"message": "Shift+kattintás vagy jobb kattintás: a stíluskezelő megnyitása a jelenlegi oldalra érvényes stílusokkal"
},
"popupOpenEditInWindow": {
"message": "Szerkesztő megnyitása új ablakban"
@ -641,7 +641,7 @@
"message": "A fül a böngésző ablakától történő leválasztásával is engedélyezhető, és letiltható a fül egy másik ablakhoz való hozzácsatolásával."
},
"popupStylesFirst": {
"message": "Parancsok előtti stílusok"
"message": "Stílusnevek a parancsok előtt"
},
"prefShowBadge": {
"message": "A jelenlegi oldalon aktív stílusok száma"
@ -722,28 +722,28 @@
"message": "Gyorsbillentyűk megadása"
},
"sortDateNewestFirst": {
"message": "a legújabb elöl"
"message": "újabb elöl"
},
"sortDateOldestFirst": {
"message": "a legrégebbi elöl"
"message": "régebbi elöl"
},
"sortLabel": {
"message": "Válaszd ki, hogyan szeretnéd sorba rendezni a telepített stílusokat"
"message": "Telepített stílusok sorbarendezésének módja"
},
"sortLabelTitleAsc": {
"message": "Cím növekvő sorrendben"
"message": "Cím - növekvő sorrend"
},
"sortLabelTitleDesc": {
"message": "Cím csökkenő sorrendben"
"message": "Cím - csökkenő sorrend"
},
"sortStylesHelp": {
"message": "A legördülő menüben válaszd ki, hogyan szeretnéd sorba rendezni a telepített bejegyzéseket. Az alapértelmezett beállítás növekvő sorrend (A-tól Z-ig) a bejegyzések címei szerint. A „Cím csökkenő sorrendben” csoportban megadott rendezési módok csökkenő sorrendet (Z-től A-ig) alkalmaznak a címre.\nMás beállítások azt is lehetővé teszik, hogy több szempont alapján rendezd a bejegyzéseket. Elképzelheted ezt úgy, mint egy többoszlopos rendezési táblázatot, amelyben minden egyes (a plusz jelek között) kiválasztott kategória egy oszlopot vagy egy csoportot jelképez.\nPéldául ha az van beállítva, hogy „Engedélyezve (első) + Cím”, az engedélyezett bejegyzések kerülnek a lista tetejére, aztán az engedélyezett és a letiltott bejegyzések címei külön-külön növekvő sorrendbe A-tól Z-ig) vannak rendezve."
"message": "A legördülő menüben válaszhatjuk ki, hogyan szeretnénk sorbarendezni a telepített stílusok bejegyzéseit. Az alapértelmezett beállítás a bejegyzések címei szerinti növekvő (A-tól Z-ig) sorrend. A „Cím - csökkenő sorrend” csoportban megadott rendezési módok csökkenő (Z-től A-ig) sorrendben rendezik a címeket.\nEgyéb beállításokkal több szempont alapján is rendezhetők a bejegyzések. Tekintsünk erre úgy, mint egy többoszlopos, rendezhető táblázatra, amelyben minden egyes (a plusz jelek között) kiválasztott kategória egy oszlopot vagy egy csoportot jelképez.\nPéldául, ha az van beállítva, hogy „Engedélyezve (első) + Cím”, az engedélyezett bejegyzések kerülnek a lista tetejére, majd az engedélyezett és a letiltott bejegyzések címei külön-külön, növekvő (A-tól Z-ig) sorrendben jelennek meg."
},
"sortStylesHelpTitle": {
"message": "Tartalom rendezése"
},
"styleBadRegexp": {
"message": "Érvénytelen regexp."
"message": "Érvénytelen reguláris kifejezés."
},
"styleBeautify": {
"message": "Csinosít"
@ -788,14 +788,14 @@
"styleInstallOverwrite": {
"message": "„$stylename$” már telepítve van. Felülírod?\nVerzió: $oldVersion$ -> $newVersion$",
"placeholders": {
"stylename": {
"content": "$1"
},
"newVersion": {
"content": "$3"
},
"oldVersion": {
"content": "$2"
},
"stylename": {
"content": "$1"
}
}
},
@ -833,28 +833,28 @@
"message": "Írj be egy nevet!"
},
"styleMozillaFormatHeading": {
"message": "Mozilla formátum"
"message": "Mozilla-formátum"
},
"styleNotAppliedRegexpProblemTooltip": {
"message": "A stílus nem lett alkalmazva a „regexp()” helytelen használata miatt"
},
"styleRegexpInvalidExplanation": {
"message": "Egyes „regexp()” szabályokat nem lehetett lefordítani."
"message": "Néhány „regexp()” szabály nem lefordítható."
},
"styleRegexpPartialExplanation": {
"message": "Ez a stílus olyan részlegesen illeszkedő reguláris kifejezéseket használ, melyek sértik a<a href='https://developer.mozilla.org/docs/Web/CSS/@document'>CSS4@dokumentumspecifikációt</a>, mely szerint egy teljes URL-illeszkedésre van szükség. Az érintett CSS-szekciók nem kerültek alkalmazásra az oldalon. Ez a stílus valószínűleg a Stylish Chrome-kiegészítőben lett létrehozva, amely helytelenül ellenőrzi a „regexp()” szabályokat az első verziótól fogva (ismert hiba)."
"message": "A stílus olyan részlegesen illeszkedő reguláris kifejezéseket használ, amelyek sértik a<a href='https://developer.mozilla.org/docs/Web/CSS/@document'>CSS4@dokumentumspecifikációt</a>, amely megköveteli az URL teljes illeszkedését. Az érintett CSS-szekciók nem kerültek alkalmazásra az oldalon. A stílus valószínűleg a Stylish-for-Chrome kiegészítőben készült, amely helytelenül ellenőrzi a „regexp()” szabályokat a legelső verziótól fogva (ismert hiba)."
},
"styleRegexpProblemTooltip": {
"message": "A nem alkalmazott szeckiók száma helytelen 'regexp()' használat miatt"
},
"styleRegexpTestButton": {
"message": "RegExp teszt"
"message": "RegExp tesztelése"
},
"styleRegexpTestFull": {
"message": "Illeszkedő fülek"
},
"styleRegexpTestInvalid": {
"message": "Kihagyott érvénytelen reguláris kifejezések"
"message": "Kihagyott, érvénytelen reguláris kifejezések"
},
"styleRegexpTestNone": {
"message": "Nincs illeszkedő fül"
@ -995,4 +995,4 @@
"writeStyleForURL": {
"message": "ehhez az URL-hez"
}
}
}

@ -79,6 +79,9 @@
"clickToUninstall": {
"message": "Clica per disinstallare"
},
"cm_autoCloseBrackets": {
"message": "Chiudi automaticamente parentesi e virgolette"
},
"cm_autocompleteOnTyping": {
"message": "Completamento automatico durante digitazione"
},
@ -86,7 +89,7 @@
"message": "Selezionatore colore per colori CSS"
},
"cm_indentWithTabs": {
"message": "Usa schede con indentazione intellingente"
"message": "Usa tabulazioni con indentazione intellingente"
},
"cm_keyMap": {
"message": "Mappa caratteri"
@ -101,7 +104,7 @@
"message": "Usa indentazione intelligente"
},
"cm_tabSize": {
"message": "Dimensione scheda"
"message": "Dimensione tabulazione"
},
"cm_theme": {
"message": "Tema"
@ -207,11 +210,11 @@
"filteredStyles": {
"message": "$numShown$ mostrati di $numTotal$ totali",
"placeholders": {
"numShown": {
"content": "$1"
},
"numTotal": {
"content": "$2"
},
"numShown": {
"content": "$1"
}
}
},
@ -523,6 +526,9 @@
"search": {
"message": "Cerca"
},
"searchNumberOfResults": {
"message": "Numero di occorrenze"
},
"searchResultInstallCount": {
"message": "Installazioni totali"
},
@ -611,14 +617,14 @@
"styleInstallOverwrite": {
"message": "'$stylename$' è già installato. Vuoi sovrascriverlo?\nVersione: $oldVersion$ -> $newVersion$",
"placeholders": {
"stylename": {
"content": "$1"
},
"newVersion": {
"content": "$3"
},
"oldVersion": {
"content": "$2"
},
"stylename": {
"content": "$1"
}
}
},
@ -727,4 +733,4 @@
"writeStyleForURL": {
"message": "questo URL"
}
}
}

@ -255,11 +255,11 @@
"filteredStyles": {
"message": "$numTotal$ 件中の $numShown$ 件を表示",
"placeholders": {
"numShown": {
"content": "$1"
},
"numTotal": {
"content": "$2"
},
"numShown": {
"content": "$1"
}
}
},
@ -797,14 +797,14 @@
"styleInstallOverwrite": {
"message": "「$stylename$」はすでにインストール済みです。上書きしますか?\nバージョン: $oldVersion$ -> $newVersion$",
"placeholders": {
"stylename": {
"content": "$1"
},
"newVersion": {
"content": "$3"
},
"oldVersion": {
"content": "$2"
},
"stylename": {
"content": "$1"
}
}
},
@ -819,6 +819,14 @@
}
}
},
"styleMetaErrorRangeOrNumber": {
"message": "不正な @var $type$: 最低でも1個の数値を持つ配列である必要があります",
"placeholders": {
"type": {
"content": "$1"
}
}
},
"styleMetaErrorPreprocessor": {
"message": "未サポートの @preprocessor: $preprocessor$",
"placeholders": {
@ -1001,4 +1009,4 @@
"writeStyleForURL": {
"message": "このURL"
}
}
}

@ -255,11 +255,11 @@
"filteredStyles": {
"message": "$numShown$ van de $numTotal$ getoond",
"placeholders": {
"numShown": {
"content": "$1"
},
"numTotal": {
"content": "$2"
},
"numShown": {
"content": "$1"
}
}
},
@ -782,14 +782,14 @@
"styleInstallOverwrite": {
"message": "$stylename$ is al geïnstalleerd. Overschrijven?\nVersie: $oldVersion$ -> $newVersion$",
"placeholders": {
"stylename": {
"content": "$1"
},
"newVersion": {
"content": "$3"
},
"oldVersion": {
"content": "$2"
},
"stylename": {
"content": "$1"
}
}
},
@ -804,6 +804,14 @@
}
}
},
"styleMetaErrorRangeOrNumber": {
"message": "Ongeldige @var $type$: de waarde moet een reeks zijn die minimaal één getal bevat bij index nul",
"placeholders": {
"type": {
"content": "$1"
}
}
},
"styleMetaErrorPreprocessor": {
"message": "Niet-ondersteunde @preprocessor: $preprocessor$",
"placeholders": {
@ -989,4 +997,4 @@
"writeStyleForURL": {
"message": "deze URL"
}
}
}

@ -261,11 +261,11 @@
"filteredStyles": {
"message": "Pokazano $numShown$ z sumy $numTotal$",
"placeholders": {
"numShown": {
"content": "$1"
},
"numTotal": {
"content": "$2"
},
"numShown": {
"content": "$1"
}
}
},
@ -800,14 +800,14 @@
"styleInstallOverwrite": {
"message": "'$stylename$' jest już zainstalowany. Zastąpić?\nWersja: $oldVersion$ -> $newVersion$",
"placeholders": {
"stylename": {
"content": "$1"
},
"newVersion": {
"content": "$3"
},
"oldVersion": {
"content": "$2"
},
"stylename": {
"content": "$1"
}
}
},
@ -822,6 +822,14 @@
}
}
},
"styleMetaErrorRangeOrNumber": {
"message": "Nieprawidłowa wartość @var $type$: musi być tablicą zawierającą co najmniej jedną liczbę w punkcie zerowym",
"placeholders": {
"type": {
"content": "$1"
}
}
},
"styleMetaErrorPreprocessor": {
"message": "Nieobsługiwany @preprocessor: $preprocessor$",
"placeholders": {
@ -1007,4 +1015,4 @@
"writeStyleForURL": {
"message": "tego adresu URL"
}
}
}

@ -271,4 +271,4 @@
"writeStyleForURL": {
"message": "esse URL"
}
}
}

@ -249,11 +249,11 @@
"filteredStyles": {
"message": "$numShown$ apresentado(s) de $numTotal$total",
"placeholders": {
"numShown": {
"content": "$1"
},
"numTotal": {
"content": "$2"
},
"numShown": {
"content": "$1"
}
}
},
@ -782,14 +782,14 @@
"styleInstallOverwrite": {
"message": "$stylename$já está instalado. Substituir?\nVersão:$oldVersion$-> $newVersion$",
"placeholders": {
"stylename": {
"content": "$1"
},
"newVersion": {
"content": "$3"
},
"oldVersion": {
"content": "$2"
},
"stylename": {
"content": "$1"
}
}
},
@ -989,4 +989,4 @@
"writeStyleForURL": {
"message": "este URL"
}
}
}

@ -222,11 +222,11 @@
"filteredStyles": {
"message": "$numShown$ vizualizabile din $numTotal$ ",
"placeholders": {
"numShown": {
"content": "$1"
},
"numTotal": {
"content": "$2"
},
"numShown": {
"content": "$1"
}
}
},
@ -725,14 +725,14 @@
"styleInstallOverwrite": {
"message": "'$stylename$' este deja instalată. Scrieți peste?\nVersiune: $oldVersion$ -> $newVersion$",
"placeholders": {
"stylename": {
"content": "$1"
},
"newVersion": {
"content": "$3"
},
"oldVersion": {
"content": "$2"
},
"stylename": {
"content": "$1"
}
}
},
@ -926,4 +926,4 @@
"writeStyleForURL": {
"message": "acest URL"
}
}
}

@ -261,11 +261,11 @@
"filteredStyles": {
"message": "найдено $numShown$ из $numTotal$всего",
"placeholders": {
"numShown": {
"content": "$1"
},
"numTotal": {
"content": "$2"
},
"numShown": {
"content": "$1"
}
}
},
@ -803,14 +803,14 @@
"styleInstallOverwrite": {
"message": "'$stylename$' уже установлен. Обновить?\nВерсии: $oldVersion$ -> $newVersion$",
"placeholders": {
"stylename": {
"content": "$1"
},
"newVersion": {
"content": "$3"
},
"oldVersion": {
"content": "$2"
},
"stylename": {
"content": "$1"
}
}
},
@ -1010,4 +1010,4 @@
"writeStyleForURL": {
"message": "этого адреса"
}
}
}

@ -320,4 +320,4 @@
"writeStyleForURL": {
"message": "ову УРЛ адресу"
}
}
}

@ -402,4 +402,4 @@
"writeStyleForURL": {
"message": "denna URL"
}
}
}

@ -52,4 +52,4 @@
"styleSectionsTitle": {
"message": "విభాగాలు"
}
}
}

@ -157,4 +157,4 @@
"updateCompleted": {
"message": "Güncelleme tamamlandı."
}
}
}

@ -168,4 +168,4 @@
"updateCompleted": {
"message": "更新完成."
}
}
}

@ -255,11 +255,11 @@
"filteredStyles": {
"message": "已显示 $numShown$ 个,总共 $numTotal$ 个",
"placeholders": {
"numShown": {
"content": "$1"
},
"numTotal": {
"content": "$2"
},
"numShown": {
"content": "$1"
}
}
},
@ -776,14 +776,14 @@
"styleInstallOverwrite": {
"message": "'$stylename$' 已经安装,要覆盖吗?\n版本 $oldVersion$ -> $newVersion$",
"placeholders": {
"stylename": {
"content": "$1"
},
"newVersion": {
"content": "$3"
},
"oldVersion": {
"content": "$2"
},
"stylename": {
"content": "$1"
}
}
},
@ -980,4 +980,4 @@
"writeStyleForURL": {
"message": "这个URL"
}
}
}

@ -206,7 +206,7 @@
"message": "用Stylus一個用戶樣式管理器重塑網頁。 Stylus 讓你能為诸多主流網站輕鬆的安裝主題和皮膚。"
},
"disableAllStyles": {
"message": "用所有樣式"
"message": "用所有樣式"
},
"disableStyleLabel": {
"message": "停用"
@ -261,11 +261,11 @@
"filteredStyles": {
"message": "$numShown$ 個已顯示,總共 $numTotal$ 個",
"placeholders": {
"numShown": {
"content": "$1"
},
"numTotal": {
"content": "$2"
},
"numShown": {
"content": "$1"
}
}
},
@ -800,14 +800,14 @@
"styleInstallOverwrite": {
"message": "「$stylename$」已安裝。要覆寫嗎?\n版本$oldVersion$→$newVersion$",
"placeholders": {
"stylename": {
"content": "$1"
},
"newVersion": {
"content": "$3"
},
"oldVersion": {
"content": "$2"
},
"stylename": {
"content": "$1"
}
}
},
@ -822,6 +822,14 @@
}
}
},
"styleMetaErrorRangeOrNumber": {
"message": "無效的 @var $type$:值必須為在索引零處包含至少一個數字的陣列",
"placeholders": {
"type": {
"content": "$1"
}
}
},
"styleMetaErrorPreprocessor": {
"message": "不支援的 @preprocessor$preprocessor$",
"placeholders": {
@ -1007,4 +1015,4 @@
"writeStyleForURL": {
"message": "此網址"
}
}
}

@ -17,15 +17,18 @@
"semver-bundle": "^0.1.1",
"stylelint-bundle": "^8.0.0",
"stylus-lang-bundle": "^0.54.5",
"updates": "^4.2.1"
"updates": "^4.2.1",
"webext-tx-fix": "^0.3.1"
},
"scripts": {
"lint": "eslint **/*.js --cache || exit 0",
"update": "npm run update-node && npm run update-main",
"update-quick": "updates -u && npm update && npm run update-main",
"update-main": "npm run update-versions && npm run update-codemirror",
"update-locales": "tx pull --all && webext-tx-fix",
"update-main": "npm run update-versions && npm run update-vendor",
"update-node": "updates -u && node tools/remove-modules.js && npm install",
"update-codemirror": "node tools/update-libraries.js && node tools/update-codemirror-themes.js",
"update-transifex": "tx push -s",
"update-vendor": "node tools/update-libraries.js && node tools/update-codemirror-themes.js",
"update-versions": "node tools/update-versions",
"zip": "npm run update-versions && node tools/zip.js"
}

@ -1,45 +0,0 @@
# Install transifex-ruby - https://rubygems.org/gems/transifex-ruby
#
# Create a file called pull_locales_login.rb.
# Contents should be:
#
# Transifex.configure do |config|
# config.username = 'transifex.username'
# config.password = 'transifex.password'
# end
#
# Update require_relative to point to this file.
require 'transifex'
require 'fileutils'
require_relative '../stylish-chrome-bin/pull_locales_login'
project_slug = 'stylish-for-chrome'
transifex = Transifex::Client.new
project = transifex.project(project_slug)
project.languages.each do |language|
code = language.language_code
puts "Getting locale #{code}"
dir_name = "../_locales/#{code}"
Dir.mkdir(dir_name) if !Dir.exist?(dir_name)
has_content = false
project.resources.each do |resource|
c = resource.translation(code).content
file_name = "#{dir_name}/#{resource.name}"
begin
completed = resource.stats(code).completed
rescue Transifex::NotFound
puts "#{code} not found."
next
end
has_content ||= completed != "0%"
puts "Writing resource #{file_name}, #{completed} complete."
File.open(file_name, 'w') { |file| file.write(c) }
end
if !has_content
puts "Locale #{code} has no content, deleting."
FileUtils.rm_rf(dir_name)
end
end

@ -1,2 +0,0 @@
ruby pull_locales.rb
python pull_locales_postprocess.py

@ -1,45 +0,0 @@
#! python2
import io, os, json, re
from collections import OrderedDict
with io.open('../_locales/en/messages.json', 'r', encoding='utf-8') as f:
items = json.load(f).items()
english = [(k, v['message']) for k, v in items if 'message' in v]
english_placeholders = [(k, v['placeholders']) for k,v in items
if 'placeholders' in v]
for locale_name in os.listdir('../_locales'):
if locale_name == 'en':
continue
if not re.match(r'^\w{2}(_\w{2,3})?$', locale_name):
print('Skipped %s: not a locale dir' % locale_name)
continue
loc_path = '../_locales/' + locale_name + '/messages.json'
with io.open(loc_path, 'r+', encoding='utf-8') as f:
loc = json.load(f, object_pairs_hook=OrderedDict)
deduplicated = 0
for msgId, message in english:
if msgId in loc and loc[msgId].get('message', '') == message:
del loc[msgId]
deduplicated += 1
changed = 0
for msgId, placeholder in english_placeholders:
if msgId in loc and cmp(placeholder, loc[msgId].get('placeholders', None)) != 0:
loc[msgId]['placeholders'] = placeholder
changed += 1
if deduplicated > 0 or changed > 0:
f.seek(0)
json_str = json.dumps(loc, indent=1, ensure_ascii=False,
separators=(',', ': '), encoding='utf-8')
json_tabs = re.sub(r'^\s+', lambda s: s.group(0).replace(' ', '\t'),
json_str, flags=re.MULTILINE)
f.write(json_tabs)
f.truncate()
print('%s: %d deduplicated%s' % (
locale_name,
deduplicated,
', %d placeholder(s) added' % changed if changed else ''
))
Loading…
Cancel
Save