mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-02-08 03:02:03 +01:00
Merge branch 'develop' of github.com:ether/etherpad-lite into custom-obj-msg
This commit is contained in:
commit
d0e656d0a6
39 changed files with 287 additions and 177 deletions
12
CHANGELOG.md
12
CHANGELOG.md
|
@ -1,3 +1,15 @@
|
||||||
|
# 1.2.9
|
||||||
|
* Fix: MAJOR Security issue, where a hacker could submit content as another user
|
||||||
|
* Fix: security issue due to unescaped user input
|
||||||
|
* Fix: Admin page at /admin redirects to /admin/ now to prevent breaking relative links
|
||||||
|
* Fix: indentation in chrome on linux
|
||||||
|
* Fix: PadUsers API endpoint
|
||||||
|
* NEW: A script to import data to all dbms
|
||||||
|
* NEW: Add authorId to chat and userlist as a data attribute
|
||||||
|
* NEW Refactor and fix our frontend tests
|
||||||
|
* NEW: Localisation updates
|
||||||
|
|
||||||
|
|
||||||
# 1.2.81
|
# 1.2.81
|
||||||
* Fix: CtrlZ-Y for Undo Redo
|
* Fix: CtrlZ-Y for Undo Redo
|
||||||
* Fix: RTL functionality on contents & fix RTL/LTR tests and RTL in Safari
|
* Fix: RTL functionality on contents & fix RTL/LTR tests and RTL in Safari
|
||||||
|
|
|
@ -11,8 +11,8 @@ To make sure everybody is going in the same direction:
|
||||||
* easy to install for admins and easy to use for people
|
* easy to install for admins and easy to use for people
|
||||||
* easy to integrate into other apps, but also usable as standalone
|
* easy to integrate into other apps, but also usable as standalone
|
||||||
* using less resources on server side
|
* using less resources on server side
|
||||||
* extensible, as much functionality should be extendable with plugins so changes don't have to be done in core
|
* extensible, as much functionality should be extendable with plugins so changes don't have to be done in core.
|
||||||
Also, keep it maintainable. We don't wanna end ob as the monster Etherpad was!
|
Also, keep it maintainable. We don't wanna end up as the monster Etherpad was!
|
||||||
|
|
||||||
## How to work with git?
|
## How to work with git?
|
||||||
* Don't work in your master branch.
|
* Don't work in your master branch.
|
||||||
|
|
|
@ -62,10 +62,11 @@ Update to the latest version with `git pull origin`, then run `bin\installOnWind
|
||||||
|
|
||||||
[Next steps](#next-steps).
|
[Next steps](#next-steps).
|
||||||
|
|
||||||
## Linux
|
## Linux/Unix
|
||||||
You'll need gzip, git, curl, libssl develop libraries, python and gcc.
|
You'll need gzip, git, curl, libssl develop libraries, python and gcc.
|
||||||
*For Debian/Ubuntu*: `apt-get install gzip git-core curl python libssl-dev pkg-config build-essential`
|
*For Debian/Ubuntu*: `apt-get install gzip git-core curl python libssl-dev pkg-config build-essential`
|
||||||
*For Fedora/CentOS*: `yum install gzip git-core curl python openssl-devel && yum groupinstall "Development Tools"`
|
*For Fedora/CentOS*: `yum install gzip git-core curl python openssl-devel && yum groupinstall "Development Tools"`
|
||||||
|
*For FreeBSD*: `portinstall node node, npm and git (optional)`
|
||||||
|
|
||||||
Additionally, you'll need [node.js](http://nodejs.org) installed, Ideally the latest stable version, be careful of installing nodejs from apt.
|
Additionally, you'll need [node.js](http://nodejs.org) installed, Ideally the latest stable version, be careful of installing nodejs from apt.
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
"pad.toolbar.clearAuthorship.title": "Llimpiar los colores d'autor\u00eda",
|
"pad.toolbar.clearAuthorship.title": "Llimpiar los colores d'autor\u00eda",
|
||||||
"pad.toolbar.import_export.title": "Importar\/Esportar ente distintos formatos de ficheru",
|
"pad.toolbar.import_export.title": "Importar\/Esportar ente distintos formatos de ficheru",
|
||||||
"pad.toolbar.timeslider.title": "Eslizador de tiempu",
|
"pad.toolbar.timeslider.title": "Eslizador de tiempu",
|
||||||
"pad.toolbar.savedRevision.title": "Revisiones guardaes",
|
"pad.toolbar.savedRevision.title": "Guardar revisi\u00f3n",
|
||||||
"pad.toolbar.settings.title": "Configuraci\u00f3n",
|
"pad.toolbar.settings.title": "Configuraci\u00f3n",
|
||||||
"pad.toolbar.embed.title": "Incrustar esti bloc",
|
"pad.toolbar.embed.title": "Incrustar esti bloc",
|
||||||
"pad.toolbar.showusers.title": "Amosar los usuarios d'esti bloc",
|
"pad.toolbar.showusers.title": "Amosar los usuarios d'esti bloc",
|
||||||
|
@ -34,6 +34,7 @@
|
||||||
"pad.settings.stickychat": "Alderique en pantalla siempres",
|
"pad.settings.stickychat": "Alderique en pantalla siempres",
|
||||||
"pad.settings.colorcheck": "Colores d'autor\u00eda",
|
"pad.settings.colorcheck": "Colores d'autor\u00eda",
|
||||||
"pad.settings.linenocheck": "N\u00famberos de llinia",
|
"pad.settings.linenocheck": "N\u00famberos de llinia",
|
||||||
|
"pad.settings.rtlcheck": "\u00bfLleer el conten\u00edu de drecha a izquierda?",
|
||||||
"pad.settings.fontType": "Tipograf\u00eda:",
|
"pad.settings.fontType": "Tipograf\u00eda:",
|
||||||
"pad.settings.fontType.normal": "Normal",
|
"pad.settings.fontType.normal": "Normal",
|
||||||
"pad.settings.fontType.monospaced": "Monoespaciada",
|
"pad.settings.fontType.monospaced": "Monoespaciada",
|
||||||
|
|
61
src/locales/be-tarask.json
Normal file
61
src/locales/be-tarask.json
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
{
|
||||||
|
"index.newPad": "\u0421\u0442\u0432\u0430\u0440\u044b\u0446\u044c",
|
||||||
|
"index.createOpenPad": "\u0446\u0456 \u0442\u0432\u0430\u0440\u044b\u0446\u044c\/\u0430\u0434\u043a\u0440\u044b\u0446\u044c \u0434\u0430\u043a\u0443\u043c\u044d\u043d\u0442 \u0437 \u043d\u0430\u0437\u0432\u0430\u0439:",
|
||||||
|
"pad.toolbar.bold.title": "\u0422\u043e\u045e\u0441\u0442\u044b (Ctrl-B)",
|
||||||
|
"pad.toolbar.italic.title": "\u041a\u0443\u0440\u0441\u0456\u045e (Ctrl-I)",
|
||||||
|
"pad.toolbar.underline.title": "\u041f\u0430\u0434\u043a\u0440\u044d\u0441\u044c\u043b\u0456\u0432\u0430\u043d\u044c\u043d\u0435 (Ctrl-U)",
|
||||||
|
"pad.toolbar.strikethrough.title": "\u0417\u0430\u043a\u0440\u044d\u0441\u044c\u043b\u0456\u0432\u0430\u043d\u044c\u043d\u0435",
|
||||||
|
"pad.toolbar.ol.title": "\u0423\u043f\u0430\u0440\u0430\u0434\u043a\u0430\u0432\u0430\u043d\u044b \u0441\u044c\u043f\u0456\u0441",
|
||||||
|
"pad.toolbar.ul.title": "\u041d\u0435\u045e\u043f\u0430\u0440\u0430\u0434\u043a\u0430\u0432\u0430\u043d\u044b \u0441\u044c\u043f\u0456\u0441",
|
||||||
|
"pad.toolbar.indent.title": "\u0412\u043e\u0434\u0441\u0442\u0443\u043f",
|
||||||
|
"pad.toolbar.unindent.title": "\u0412\u044b\u0441\u0442\u0443\u043f",
|
||||||
|
"pad.toolbar.undo.title": "\u0421\u043a\u0430\u0441\u0430\u0432\u0430\u0446\u044c(Ctrl-Z)",
|
||||||
|
"pad.toolbar.redo.title": "\u0412\u044f\u0440\u043d\u0443\u0446\u044c (Ctrl-Y)",
|
||||||
|
"pad.toolbar.clearAuthorship.title": "\u041f\u0440\u044b\u0431\u0440\u0430\u0446\u044c \u043a\u043e\u043b\u0435\u0440 \u0434\u0430\u043a\u0443\u043c\u044d\u043d\u0442\u0443",
|
||||||
|
"pad.toolbar.import_export.title": "\u0406\u043c\u043f\u0430\u0440\u0442\/\u042d\u043a\u0441\u043f\u0430\u0440\u0442 \u0437 \u0432\u044b\u043a\u0430\u0440\u044b\u0441\u0442\u0430\u043d\u044c\u043d\u0435 \u0440\u043e\u0437\u043d\u044b\u0445 \u0444\u0430\u0440\u043c\u0430\u0442\u0430\u045e \u0444\u0430\u0439\u043b\u0430\u045e",
|
||||||
|
"pad.toolbar.timeslider.title": "\u0428\u043a\u0430\u043b\u0430 \u0447\u0430\u0441\u0443",
|
||||||
|
"pad.toolbar.savedRevision.title": "\u0417\u0430\u0445\u0430\u0432\u0430\u0446\u044c \u0432\u044d\u0440\u0441\u0456\u044e",
|
||||||
|
"pad.toolbar.settings.title": "\u041d\u0430\u043b\u0430\u0434\u044b",
|
||||||
|
"pad.toolbar.embed.title": "\u0423\u0431\u0443\u0434\u0430\u0432\u0430\u0446\u044c \u0433\u044d\u0442\u044b \u0434\u0430\u043a\u0443\u043c\u044d\u043d\u0442",
|
||||||
|
"pad.toolbar.showusers.title": "\u041f\u0430\u043a\u0430\u0437\u0430\u0446\u044c \u043a\u0430\u0440\u044b\u0441\u0442\u0430\u043b\u044c\u043d\u0456\u043a\u0430\u045e \u0443 \u0433\u044d\u0442\u044b\u043c \u0434\u0430\u043a\u0443\u043c\u044d\u043d\u0446\u0435",
|
||||||
|
"pad.colorpicker.save": "\u0417\u0430\u0445\u0430\u0432\u0430\u0446\u044c",
|
||||||
|
"pad.colorpicker.cancel": "\u0421\u043a\u0430\u0441\u0430\u0432\u0430\u0446\u044c",
|
||||||
|
"pad.loading": "\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430...",
|
||||||
|
"pad.passwordRequired": "\u0414\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0443 \u0434\u0430 \u0433\u044d\u0442\u0430\u0433\u0430 \u0434\u0430\u043a\u0443\u043c\u044d\u043d\u0442\u0430 \u043f\u0430\u0442\u0440\u044d\u0431\u043d\u044b \u043f\u0430\u0440\u043e\u043b\u044c",
|
||||||
|
"pad.permissionDenied": "\u0412\u044b \u043d\u044f \u043c\u0430\u0435\u0446\u0435 \u0434\u0430\u0437\u0432\u043e\u043b\u0443 \u043d\u0430 \u0434\u043e\u0441\u0442\u0443\u043f \u0434\u0430 \u0433\u044d\u0442\u0430\u0433\u0430 \u0434\u0430\u043a\u0443\u043c\u044d\u043d\u0442\u0430",
|
||||||
|
"pad.wrongPassword": "\u0412\u044b \u045e\u0432\u044f\u043b\u0456 \u043d\u044f\u0441\u043b\u0443\u0448\u043d\u044b \u043f\u0430\u0440\u043e\u043b\u044c",
|
||||||
|
"pad.settings.padSettings": "\u041d\u0430\u043b\u0430\u0434\u044b \u0434\u0430\u043a\u0443\u043c\u044d\u043d\u0442\u0430",
|
||||||
|
"pad.settings.myView": "\u041c\u043e\u0439 \u0432\u044b\u0433\u043b\u044f\u0434",
|
||||||
|
"pad.settings.stickychat": "\u0417\u0430\u045e\u0441\u0451\u0434\u044b \u043f\u0430\u043a\u0430\u0437\u0432\u0430\u0446\u044c \u0447\u0430\u0442",
|
||||||
|
"pad.settings.colorcheck": "\u041a\u043e\u043b\u0435\u0440\u044b \u0430\u045e\u0442\u0430\u0440\u0441\u0442\u0432\u0430",
|
||||||
|
"pad.settings.linenocheck": "\u041d\u0443\u043c\u0430\u0440\u044b \u0440\u0430\u0434\u043a\u043e\u045e",
|
||||||
|
"pad.settings.rtlcheck": "\u0422\u044d\u043a\u0441\u0442 \u0441\u043f\u0440\u0430\u0432\u0430-\u043d\u0430\u043b\u0435\u0432\u0430",
|
||||||
|
"pad.settings.fontType": "\u0422\u044b\u043f \u0448\u0440\u044b\u0444\u0442\u0443:",
|
||||||
|
"pad.settings.fontType.normal": "\u0417\u0432\u044b\u0447\u0430\u0439\u043d\u044b",
|
||||||
|
"pad.settings.fontType.monospaced": "\u041c\u043e\u043d\u0430\u0448\u044b\u0440\u044b\u043d\u043d\u044b",
|
||||||
|
"pad.settings.globalView": "\u0410\u0433\u0443\u043b\u044c\u043d\u044b \u0432\u044b\u0433\u043b\u044f\u0434",
|
||||||
|
"pad.settings.language": "\u041c\u043e\u0432\u0430:",
|
||||||
|
"pad.importExport.import_export": "\u0406\u043c\u043f\u0430\u0440\u0442\/\u042d\u043a\u0441\u043f\u0430\u0440\u0442",
|
||||||
|
"pad.importExport.import": "\u0417\u0430\u0433\u0440\u0443\u0437\u0456\u0436\u0430\u0439\u0446\u0435 \u043b\u044e\u0431\u044b\u044f \u0442\u044d\u043a\u0441\u0442\u0430\u0432\u044b\u044f \u0444\u0430\u0439\u043b\u044b \u0430\u0431\u043e \u0434\u0430\u043a\u0443\u043c\u044d\u043d\u0442\u044b",
|
||||||
|
"pad.importExport.importSuccessful": "\u041f\u0430\u0441\u044c\u043f\u044f\u0445\u043e\u0432\u0430!",
|
||||||
|
"pad.importExport.export": "\u042d\u043a\u0441\u043f\u0430\u0440\u0442\u0430\u0432\u0430\u0446\u044c \u0431\u044f\u0433\u0443\u0447\u044b \u0434\u0430\u043a\u0443\u043c\u044d\u043d\u0442 \u044f\u043a:",
|
||||||
|
"pad.importExport.exporthtml": "HTML",
|
||||||
|
"pad.importExport.exportplain": "\u041f\u0440\u043e\u0441\u0442\u044b \u0442\u044d\u043a\u0441\u0442",
|
||||||
|
"pad.importExport.exportword": "Microsoft Word",
|
||||||
|
"pad.importExport.exportpdf": "PDF",
|
||||||
|
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||||
|
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||||
|
"pad.modals.connected": "\u041f\u0430\u0434\u043b\u0443\u0447\u044b\u043b\u0456\u0441\u044f.",
|
||||||
|
"pad.modals.reconnecting": "\u041f\u0435\u0440\u0430\u043f\u0430\u0434\u043b\u0443\u0447\u044d\u043d\u044c\u043d\u0435 \u0434\u0430 \u0432\u0430\u0448\u0430\u0433\u0430 \u0434\u0430\u043a\u0443\u043c\u044d\u043d\u0442\u0430...",
|
||||||
|
"pad.modals.forcereconnect": "\u041f\u0440\u044b\u043c\u0443\u0441\u043e\u0432\u0430\u0435 \u043f\u0435\u0440\u0430\u043f\u0430\u0434\u043b\u0443\u0447\u044d\u043d\u044c\u043d\u0435",
|
||||||
|
"pad.share": "\u041f\u0430\u0434\u0437\u044f\u043b\u0456\u0446\u0446\u0430 \u0434\u0430\u043a\u0443\u043c\u044d\u043d\u0442\u0430\u043c",
|
||||||
|
"pad.share.readonly": "\u0422\u043e\u043b\u044c\u043a\u0456 \u0434\u043b\u044f \u0447\u044b\u0442\u0430\u043d\u044c\u043d\u044f",
|
||||||
|
"pad.share.link": "\u0421\u043f\u0430\u0441\u044b\u043b\u043a\u0430",
|
||||||
|
"pad.chat": "\u0427\u0430\u0442",
|
||||||
|
"@metadata": {
|
||||||
|
"authors": [
|
||||||
|
"Jim-by",
|
||||||
|
"Wizardist"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -37,6 +37,7 @@
|
||||||
"pad.settings.stickychat": "Diskwel ar flap bepred",
|
"pad.settings.stickychat": "Diskwel ar flap bepred",
|
||||||
"pad.settings.colorcheck": "Livio\u00f9 anaout",
|
"pad.settings.colorcheck": "Livio\u00f9 anaout",
|
||||||
"pad.settings.linenocheck": "Niverenno\u00f9 linenno\u00f9",
|
"pad.settings.linenocheck": "Niverenno\u00f9 linenno\u00f9",
|
||||||
|
"pad.settings.rtlcheck": "Lenn an danvez a-zehou da gleiz ?",
|
||||||
"pad.settings.fontType": "Seurt font :",
|
"pad.settings.fontType": "Seurt font :",
|
||||||
"pad.settings.fontType.normal": "Reizh",
|
"pad.settings.fontType.normal": "Reizh",
|
||||||
"pad.settings.fontType.monospaced": "Monospas",
|
"pad.settings.fontType.monospaced": "Monospas",
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
"pad.settings.stickychat": "Xateja sempre a la pantalla",
|
"pad.settings.stickychat": "Xateja sempre a la pantalla",
|
||||||
"pad.settings.colorcheck": "Colors d'autoria",
|
"pad.settings.colorcheck": "Colors d'autoria",
|
||||||
"pad.settings.linenocheck": "N\u00fameros de l\u00ednia",
|
"pad.settings.linenocheck": "N\u00fameros de l\u00ednia",
|
||||||
|
"pad.settings.rtlcheck": "Llegir el contingut de dreta a esquerra?",
|
||||||
"pad.settings.fontType": "Tipus de lletra:",
|
"pad.settings.fontType": "Tipus de lletra:",
|
||||||
"pad.settings.fontType.normal": "Normal",
|
"pad.settings.fontType.normal": "Normal",
|
||||||
"pad.settings.fontType.monospaced": "D'amplada fixa",
|
"pad.settings.fontType.monospaced": "D'amplada fixa",
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
{
|
{
|
||||||
"@metadata": {
|
"@metadata": {
|
||||||
"authors": [
|
"authors": {
|
||||||
"Christian List",
|
"0": "Christian List",
|
||||||
"Peter Alberti"
|
"1": "Peter Alberti",
|
||||||
]
|
"3": "Steenth"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"index.newPad": "Ny Pad",
|
"index.newPad": "Ny Pad",
|
||||||
"index.createOpenPad": "eller opret\/\u00e5bn en Pad med navnet:",
|
"index.createOpenPad": "eller opret\/\u00e5bn en Pad med navnet:",
|
||||||
|
@ -20,7 +21,7 @@
|
||||||
"pad.toolbar.clearAuthorship.title": "Fjern farver for forfatterskab",
|
"pad.toolbar.clearAuthorship.title": "Fjern farver for forfatterskab",
|
||||||
"pad.toolbar.import_export.title": "Import\/eksport fra\/til forskellige filformater",
|
"pad.toolbar.import_export.title": "Import\/eksport fra\/til forskellige filformater",
|
||||||
"pad.toolbar.timeslider.title": "Timeslider",
|
"pad.toolbar.timeslider.title": "Timeslider",
|
||||||
"pad.toolbar.savedRevision.title": "Gemte revisioner",
|
"pad.toolbar.savedRevision.title": "Gem Revision",
|
||||||
"pad.toolbar.settings.title": "Indstillinger",
|
"pad.toolbar.settings.title": "Indstillinger",
|
||||||
"pad.toolbar.embed.title": "Integrer denne pad",
|
"pad.toolbar.embed.title": "Integrer denne pad",
|
||||||
"pad.toolbar.showusers.title": "Vis brugere p\u00e5 denne pad",
|
"pad.toolbar.showusers.title": "Vis brugere p\u00e5 denne pad",
|
||||||
|
@ -35,6 +36,7 @@
|
||||||
"pad.settings.stickychat": "Chat altid p\u00e5 sk\u00e6rmen",
|
"pad.settings.stickychat": "Chat altid p\u00e5 sk\u00e6rmen",
|
||||||
"pad.settings.colorcheck": "Forfatterskabsfarver",
|
"pad.settings.colorcheck": "Forfatterskabsfarver",
|
||||||
"pad.settings.linenocheck": "Linjenumre",
|
"pad.settings.linenocheck": "Linjenumre",
|
||||||
|
"pad.settings.rtlcheck": "L\u00e6se indhold fra h\u00f8jre mod venstre?",
|
||||||
"pad.settings.fontType": "Skrifttype:",
|
"pad.settings.fontType": "Skrifttype:",
|
||||||
"pad.settings.fontType.normal": "Normal",
|
"pad.settings.fontType.normal": "Normal",
|
||||||
"pad.settings.fontType.monospaced": "Fastbredde",
|
"pad.settings.fontType.monospaced": "Fastbredde",
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
"pad.settings.stickychat": "Chat immer anzeigen",
|
"pad.settings.stickychat": "Chat immer anzeigen",
|
||||||
"pad.settings.colorcheck": "Autorenfarben anzeigen",
|
"pad.settings.colorcheck": "Autorenfarben anzeigen",
|
||||||
"pad.settings.linenocheck": "Zeilennummern",
|
"pad.settings.linenocheck": "Zeilennummern",
|
||||||
|
"pad.settings.rtlcheck": "Inhalt von rechts nach links lesen?",
|
||||||
"pad.settings.fontType": "Schriftart:",
|
"pad.settings.fontType": "Schriftart:",
|
||||||
"pad.settings.fontType.normal": "Normal",
|
"pad.settings.fontType.normal": "Normal",
|
||||||
"pad.settings.fontType.monospaced": "Monospace",
|
"pad.settings.fontType.monospaced": "Monospace",
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
"pad.toolbar.clearAuthorship.title": "\u067e\u0627\u06a9 \u06a9\u0631\u062f\u0646 \u0631\u0646\u06af\u200c\u0647\u0627\u06cc \u0646\u0648\u06cc\u0633\u0646\u062f\u06af\u06cc",
|
"pad.toolbar.clearAuthorship.title": "\u067e\u0627\u06a9 \u06a9\u0631\u062f\u0646 \u0631\u0646\u06af\u200c\u0647\u0627\u06cc \u0646\u0648\u06cc\u0633\u0646\u062f\u06af\u06cc",
|
||||||
"pad.toolbar.import_export.title": "\u062f\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc\/\u0628\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc \u0627\u0632\/\u0628\u0647 \u0642\u0627\u0644\u0628\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641",
|
"pad.toolbar.import_export.title": "\u062f\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc\/\u0628\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc \u0627\u0632\/\u0628\u0647 \u0642\u0627\u0644\u0628\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641",
|
||||||
"pad.toolbar.timeslider.title": "\u0627\u0633\u0644\u0627\u06cc\u062f\u0631 \u0632\u0645\u0627\u0646",
|
"pad.toolbar.timeslider.title": "\u0627\u0633\u0644\u0627\u06cc\u062f\u0631 \u0632\u0645\u0627\u0646",
|
||||||
"pad.toolbar.savedRevision.title": "\u0630\u062e\u06cc\u0631\u0647\u200c\u0633\u0627\u0632\u06cc \u0646\u0633\u062e\u0647",
|
"pad.toolbar.savedRevision.title": "\u0630\u062e\u06cc\u0631\u0647\u200c\u06cc \u0628\u0627\u0632\u0646\u0648\u06cc\u0633\u06cc",
|
||||||
"pad.toolbar.settings.title": "\u062a\u0646\u0638\u06cc\u0645\u0627\u062a",
|
"pad.toolbar.settings.title": "\u062a\u0646\u0638\u06cc\u0645\u0627\u062a",
|
||||||
"pad.toolbar.embed.title": "\u062c\u0627\u0633\u0627\u0632\u06cc \u0627\u06cc\u0646 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a",
|
"pad.toolbar.embed.title": "\u062c\u0627\u0633\u0627\u0632\u06cc \u0627\u06cc\u0646 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a",
|
||||||
"pad.toolbar.showusers.title": "\u0646\u0645\u0627\u06cc\u0634 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u062f\u0631 \u0627\u06cc\u0646 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a",
|
"pad.toolbar.showusers.title": "\u0646\u0645\u0627\u06cc\u0634 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u062f\u0631 \u0627\u06cc\u0646 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a",
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
"pad.toolbar.clearAuthorship.title": "Effacer les couleurs identifiant les auteurs",
|
"pad.toolbar.clearAuthorship.title": "Effacer les couleurs identifiant les auteurs",
|
||||||
"pad.toolbar.import_export.title": "Importer\/Exporter de\/vers un format de fichier diff\u00e9rent",
|
"pad.toolbar.import_export.title": "Importer\/Exporter de\/vers un format de fichier diff\u00e9rent",
|
||||||
"pad.toolbar.timeslider.title": "Historique dynamique",
|
"pad.toolbar.timeslider.title": "Historique dynamique",
|
||||||
"pad.toolbar.savedRevision.title": "Versions enregistr\u00e9es",
|
"pad.toolbar.savedRevision.title": "Enregistrer la r\u00e9vision",
|
||||||
"pad.toolbar.settings.title": "Param\u00e8tres",
|
"pad.toolbar.settings.title": "Param\u00e8tres",
|
||||||
"pad.toolbar.embed.title": "Int\u00e9grer ce Pad",
|
"pad.toolbar.embed.title": "Int\u00e9grer ce Pad",
|
||||||
"pad.toolbar.showusers.title": "Afficher les utilisateurs du Pad",
|
"pad.toolbar.showusers.title": "Afficher les utilisateurs du Pad",
|
||||||
|
@ -43,6 +43,7 @@
|
||||||
"pad.settings.stickychat": "Toujours afficher le chat",
|
"pad.settings.stickychat": "Toujours afficher le chat",
|
||||||
"pad.settings.colorcheck": "Couleurs d\u2019identification",
|
"pad.settings.colorcheck": "Couleurs d\u2019identification",
|
||||||
"pad.settings.linenocheck": "Num\u00e9ros de lignes",
|
"pad.settings.linenocheck": "Num\u00e9ros de lignes",
|
||||||
|
"pad.settings.rtlcheck": "Lire le contenu de la droite vers la gauche?",
|
||||||
"pad.settings.fontType": "Type de police :",
|
"pad.settings.fontType": "Type de police :",
|
||||||
"pad.settings.fontType.normal": "Normal",
|
"pad.settings.fontType.normal": "Normal",
|
||||||
"pad.settings.fontType.monospaced": "Monospace",
|
"pad.settings.fontType.monospaced": "Monospace",
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
"pad.toolbar.clearAuthorship.title": "Limpar as cores de identificaci\u00f3n dos autores",
|
"pad.toolbar.clearAuthorship.title": "Limpar as cores de identificaci\u00f3n dos autores",
|
||||||
"pad.toolbar.import_export.title": "Importar\/Exportar desde\/a diferentes formatos de ficheiro",
|
"pad.toolbar.import_export.title": "Importar\/Exportar desde\/a diferentes formatos de ficheiro",
|
||||||
"pad.toolbar.timeslider.title": "Li\u00f1a do tempo",
|
"pad.toolbar.timeslider.title": "Li\u00f1a do tempo",
|
||||||
"pad.toolbar.savedRevision.title": "Revisi\u00f3ns gardadas",
|
"pad.toolbar.savedRevision.title": "Gardar a revisi\u00f3n",
|
||||||
"pad.toolbar.settings.title": "Configuraci\u00f3ns",
|
"pad.toolbar.settings.title": "Configuraci\u00f3ns",
|
||||||
"pad.toolbar.embed.title": "Incorporar este documento",
|
"pad.toolbar.embed.title": "Incorporar este documento",
|
||||||
"pad.toolbar.showusers.title": "Mostrar os usuarios deste documento",
|
"pad.toolbar.showusers.title": "Mostrar os usuarios deste documento",
|
||||||
|
@ -34,6 +34,7 @@
|
||||||
"pad.settings.stickychat": "Chat sempre visible",
|
"pad.settings.stickychat": "Chat sempre visible",
|
||||||
"pad.settings.colorcheck": "Cores de identificaci\u00f3n",
|
"pad.settings.colorcheck": "Cores de identificaci\u00f3n",
|
||||||
"pad.settings.linenocheck": "N\u00fameros de li\u00f1a",
|
"pad.settings.linenocheck": "N\u00fameros de li\u00f1a",
|
||||||
|
"pad.settings.rtlcheck": "Quere ler o contido da dereita \u00e1 esquerda?",
|
||||||
"pad.settings.fontType": "Tipo de letra:",
|
"pad.settings.fontType": "Tipo de letra:",
|
||||||
"pad.settings.fontType.normal": "Normal",
|
"pad.settings.fontType.normal": "Normal",
|
||||||
"pad.settings.fontType.monospaced": "Monoespazada",
|
"pad.settings.fontType.monospaced": "Monoespazada",
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
"pad.toolbar.clearAuthorship.title": "\u05e0\u05d9\u05e7\u05d5\u05d9 \u05e6\u05d1\u05e2\u05d9\u05dd",
|
"pad.toolbar.clearAuthorship.title": "\u05e0\u05d9\u05e7\u05d5\u05d9 \u05e6\u05d1\u05e2\u05d9\u05dd",
|
||||||
"pad.toolbar.import_export.title": "\u05d9\u05d9\u05d1\u05d5\u05d0\/\u05d9\u05d9\u05e6\u05d0 \u05d1\u05ea\u05e1\u05d3\u05d9\u05e8\u05d9 \u05e7\u05d1\u05e6\u05d9\u05dd \u05e9\u05d5\u05e0\u05d9\u05dd",
|
"pad.toolbar.import_export.title": "\u05d9\u05d9\u05d1\u05d5\u05d0\/\u05d9\u05d9\u05e6\u05d0 \u05d1\u05ea\u05e1\u05d3\u05d9\u05e8\u05d9 \u05e7\u05d1\u05e6\u05d9\u05dd \u05e9\u05d5\u05e0\u05d9\u05dd",
|
||||||
"pad.toolbar.timeslider.title": "\u05d2\u05d5\u05dc\u05dc \u05d6\u05de\u05df",
|
"pad.toolbar.timeslider.title": "\u05d2\u05d5\u05dc\u05dc \u05d6\u05de\u05df",
|
||||||
"pad.toolbar.savedRevision.title": "\u05d2\u05e8\u05e1\u05d0\u05d5\u05ea \u05e9\u05de\u05d5\u05e8\u05d5\u05ea",
|
"pad.toolbar.savedRevision.title": "\u05e9\u05de\u05d9\u05e8\u05ea \u05d2\u05e8\u05e1\u05d4",
|
||||||
"pad.toolbar.settings.title": "\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea",
|
"pad.toolbar.settings.title": "\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea",
|
||||||
"pad.toolbar.embed.title": "\u05d4\u05d8\u05de\u05e2\u05ea \u05d4\u05e4\u05e0\u05e7\u05e1 \u05d4\u05d6\u05d4",
|
"pad.toolbar.embed.title": "\u05d4\u05d8\u05de\u05e2\u05ea \u05d4\u05e4\u05e0\u05e7\u05e1 \u05d4\u05d6\u05d4",
|
||||||
"pad.toolbar.showusers.title": "\u05d4\u05e6\u05d2\u05ea \u05d4\u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd \u05d1\u05e4\u05e0\u05e7\u05e1 \u05d4\u05d6\u05d4",
|
"pad.toolbar.showusers.title": "\u05d4\u05e6\u05d2\u05ea \u05d4\u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd \u05d1\u05e4\u05e0\u05e7\u05e1 \u05d4\u05d6\u05d4",
|
||||||
|
@ -35,6 +35,7 @@
|
||||||
"pad.settings.stickychat": "\u05d4\u05e9\u05d9\u05d7\u05d4 \u05ea\u05de\u05d9\u05d3 \u05e2\u05dc \u05d4\u05de\u05e1\u05da",
|
"pad.settings.stickychat": "\u05d4\u05e9\u05d9\u05d7\u05d4 \u05ea\u05de\u05d9\u05d3 \u05e2\u05dc \u05d4\u05de\u05e1\u05da",
|
||||||
"pad.settings.colorcheck": "\u05e6\u05d1\u05d9\u05e2\u05d4 \u05dc\u05e4\u05d9 \u05de\u05d7\u05d1\u05e8",
|
"pad.settings.colorcheck": "\u05e6\u05d1\u05d9\u05e2\u05d4 \u05dc\u05e4\u05d9 \u05de\u05d7\u05d1\u05e8",
|
||||||
"pad.settings.linenocheck": "\u05de\u05e1\u05e4\u05e8\u05d9 \u05e9\u05d5\u05e8\u05d5\u05ea",
|
"pad.settings.linenocheck": "\u05de\u05e1\u05e4\u05e8\u05d9 \u05e9\u05d5\u05e8\u05d5\u05ea",
|
||||||
|
"pad.settings.rtlcheck": "\u05dc\u05e7\u05e8\u05d5\u05d0 \u05d0\u05ea \u05d4\u05ea\u05d5\u05db\u05df \u05de\u05d9\u05de\u05d9\u05df \u05dc\u05e9\u05de\u05d0\u05dc?",
|
||||||
"pad.settings.fontType": "\u05e1\u05d5\u05d2 \u05d2\u05d5\u05e4\u05df:",
|
"pad.settings.fontType": "\u05e1\u05d5\u05d2 \u05d2\u05d5\u05e4\u05df:",
|
||||||
"pad.settings.fontType.normal": "\u05e8\u05d2\u05d9\u05dc",
|
"pad.settings.fontType.normal": "\u05e8\u05d2\u05d9\u05dc",
|
||||||
"pad.settings.fontType.monospaced": "\u05d1\u05e8\u05d5\u05d7\u05d1 \u05e7\u05d1\u05d5\u05e2",
|
"pad.settings.fontType.monospaced": "\u05d1\u05e8\u05d5\u05d7\u05d1 \u05e7\u05d1\u05d5\u05e2",
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
"pad.settings.stickychat": "Chat sempre visibile",
|
"pad.settings.stickychat": "Chat sempre visibile",
|
||||||
"pad.settings.colorcheck": "Colores de autor",
|
"pad.settings.colorcheck": "Colores de autor",
|
||||||
"pad.settings.linenocheck": "Numeros de linea",
|
"pad.settings.linenocheck": "Numeros de linea",
|
||||||
|
"pad.settings.rtlcheck": "Leger le contento de dextra a sinistra?",
|
||||||
"pad.settings.fontType": "Typo de litteras:",
|
"pad.settings.fontType": "Typo de litteras:",
|
||||||
"pad.settings.fontType.normal": "Normal",
|
"pad.settings.fontType.normal": "Normal",
|
||||||
"pad.settings.fontType.monospaced": "Monospatial",
|
"pad.settings.fontType.monospaced": "Monospatial",
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
"pad.toolbar.clearAuthorship.title": "Elimina i colori che indicano gli autori",
|
"pad.toolbar.clearAuthorship.title": "Elimina i colori che indicano gli autori",
|
||||||
"pad.toolbar.import_export.title": "Importa\/esporta da\/a diversi formati di file",
|
"pad.toolbar.import_export.title": "Importa\/esporta da\/a diversi formati di file",
|
||||||
"pad.toolbar.timeslider.title": "Presentazione cronologia",
|
"pad.toolbar.timeslider.title": "Presentazione cronologia",
|
||||||
"pad.toolbar.savedRevision.title": "Revisioni salvate",
|
"pad.toolbar.savedRevision.title": "Versione salvata",
|
||||||
"pad.toolbar.settings.title": "Impostazioni",
|
"pad.toolbar.settings.title": "Impostazioni",
|
||||||
"pad.toolbar.embed.title": "Incorpora questo Pad",
|
"pad.toolbar.embed.title": "Incorpora questo Pad",
|
||||||
"pad.toolbar.showusers.title": "Visualizza gli utenti su questo Pad",
|
"pad.toolbar.showusers.title": "Visualizza gli utenti su questo Pad",
|
||||||
|
@ -37,6 +37,7 @@
|
||||||
"pad.settings.stickychat": "Chat sempre sullo schermo",
|
"pad.settings.stickychat": "Chat sempre sullo schermo",
|
||||||
"pad.settings.colorcheck": "Colori che indicano gli autori",
|
"pad.settings.colorcheck": "Colori che indicano gli autori",
|
||||||
"pad.settings.linenocheck": "Numeri di riga",
|
"pad.settings.linenocheck": "Numeri di riga",
|
||||||
|
"pad.settings.rtlcheck": "Leggere il contenuto da destra a sinistra?",
|
||||||
"pad.settings.fontType": "Tipo di carattere:",
|
"pad.settings.fontType": "Tipo di carattere:",
|
||||||
"pad.settings.fontType.normal": "Normale",
|
"pad.settings.fontType.normal": "Normale",
|
||||||
"pad.settings.fontType.monospaced": "A larghezza fissa",
|
"pad.settings.fontType.monospaced": "A larghezza fissa",
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
"pad.settings.stickychat": "\u753b\u9762\u306b\u30c1\u30e3\u30c3\u30c8\u3092\u5e38\u306b\u8868\u793a",
|
"pad.settings.stickychat": "\u753b\u9762\u306b\u30c1\u30e3\u30c3\u30c8\u3092\u5e38\u306b\u8868\u793a",
|
||||||
"pad.settings.colorcheck": "\u4f5c\u8005\u306e\u8272\u5206\u3051",
|
"pad.settings.colorcheck": "\u4f5c\u8005\u306e\u8272\u5206\u3051",
|
||||||
"pad.settings.linenocheck": "\u884c\u756a\u53f7",
|
"pad.settings.linenocheck": "\u884c\u756a\u53f7",
|
||||||
|
"pad.settings.rtlcheck": "\u53f3\u6a2a\u66f8\u304d\u306b\u3059\u308b",
|
||||||
"pad.settings.fontType": "\u30d5\u30a9\u30f3\u30c8\u306e\u7a2e\u985e:",
|
"pad.settings.fontType": "\u30d5\u30a9\u30f3\u30c8\u306e\u7a2e\u985e:",
|
||||||
"pad.settings.fontType.normal": "\u901a\u5e38",
|
"pad.settings.fontType.normal": "\u901a\u5e38",
|
||||||
"pad.settings.fontType.monospaced": "\u56fa\u5b9a\u5e45",
|
"pad.settings.fontType.monospaced": "\u56fa\u5b9a\u5e45",
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
"pad.toolbar.clearAuthorship.title": "\uc800\uc790\uc758 \uc0c9 \uc9c0\uc6b0\uae30",
|
"pad.toolbar.clearAuthorship.title": "\uc800\uc790\uc758 \uc0c9 \uc9c0\uc6b0\uae30",
|
||||||
"pad.toolbar.import_export.title": "\ub2e4\ub978 \ud30c\uc77c \ud615\uc2dd\uc73c\ub85c \uac00\uc838\uc624\uae30\/\ub0b4\ubcf4\ub0b4\uae30",
|
"pad.toolbar.import_export.title": "\ub2e4\ub978 \ud30c\uc77c \ud615\uc2dd\uc73c\ub85c \uac00\uc838\uc624\uae30\/\ub0b4\ubcf4\ub0b4\uae30",
|
||||||
"pad.toolbar.timeslider.title": "\uc2dc\uac04\uc2ac\ub77c\uc774\ub354",
|
"pad.toolbar.timeslider.title": "\uc2dc\uac04\uc2ac\ub77c\uc774\ub354",
|
||||||
"pad.toolbar.savedRevision.title": "\uc800\uc7a5\ud55c \ud310",
|
"pad.toolbar.savedRevision.title": "\ud310 \uc800\uc7a5",
|
||||||
"pad.toolbar.settings.title": "\uc124\uc815",
|
"pad.toolbar.settings.title": "\uc124\uc815",
|
||||||
"pad.toolbar.embed.title": "\uc774 \ud328\ub4dc \ud3ec\ud568\ud558\uae30",
|
"pad.toolbar.embed.title": "\uc774 \ud328\ub4dc \ud3ec\ud568\ud558\uae30",
|
||||||
"pad.toolbar.showusers.title": "\uc774 \ud328\ub4dc\uc5d0 \uc0ac\uc6a9\uc790 \ubcf4\uae30",
|
"pad.toolbar.showusers.title": "\uc774 \ud328\ub4dc\uc5d0 \uc0ac\uc6a9\uc790 \ubcf4\uae30",
|
||||||
|
@ -34,6 +34,7 @@
|
||||||
"pad.settings.stickychat": "\ud654\uba74\uc5d0 \ud56d\uc0c1 \ub300\ud654 \ubcf4\uae30",
|
"pad.settings.stickychat": "\ud654\uba74\uc5d0 \ud56d\uc0c1 \ub300\ud654 \ubcf4\uae30",
|
||||||
"pad.settings.colorcheck": "\uc800\uc790 \uc0c9",
|
"pad.settings.colorcheck": "\uc800\uc790 \uc0c9",
|
||||||
"pad.settings.linenocheck": "\uc904 \ubc88\ud638",
|
"pad.settings.linenocheck": "\uc904 \ubc88\ud638",
|
||||||
|
"pad.settings.rtlcheck": "\uc6b0\ud6a1\uc11c(\uc624\ub978\ucabd\uc5d0\uc11c \uc67c\ucabd\uc73c\ub85c)\uc785\ub2c8\uae4c?",
|
||||||
"pad.settings.fontType": "\uae00\uaf34 \uc885\ub958:",
|
"pad.settings.fontType": "\uae00\uaf34 \uc885\ub958:",
|
||||||
"pad.settings.fontType.normal": "\ubcf4\ud1b5",
|
"pad.settings.fontType.normal": "\ubcf4\ud1b5",
|
||||||
"pad.settings.fontType.monospaced": "\uace0\uc815 \ud3ed",
|
"pad.settings.fontType.monospaced": "\uace0\uc815 \ud3ed",
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
"pad.toolbar.clearAuthorship.title": "\u041f\u043e\u043d\u0438\u0448\u0442\u0438 \u0433\u0438 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0442\u0435 \u0431\u043e\u0438",
|
"pad.toolbar.clearAuthorship.title": "\u041f\u043e\u043d\u0438\u0448\u0442\u0438 \u0433\u0438 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0442\u0435 \u0431\u043e\u0438",
|
||||||
"pad.toolbar.import_export.title": "\u0423\u0432\u043e\u0437\/\u0418\u0437\u0432\u043e\u0437 \u043e\u0434\/\u0432\u043e \u0440\u0430\u0437\u043d\u0438 \u043f\u043e\u0434\u0430\u0442\u043e\u0442\u0435\u0447\u043d\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438",
|
"pad.toolbar.import_export.title": "\u0423\u0432\u043e\u0437\/\u0418\u0437\u0432\u043e\u0437 \u043e\u0434\/\u0432\u043e \u0440\u0430\u0437\u043d\u0438 \u043f\u043e\u0434\u0430\u0442\u043e\u0442\u0435\u0447\u043d\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438",
|
||||||
"pad.toolbar.timeslider.title": "\u0418\u0441\u0442\u043e\u0440\u0438\u0441\u043a\u0438 \u043f\u0440\u0435\u0433\u043b\u0435\u0434",
|
"pad.toolbar.timeslider.title": "\u0418\u0441\u0442\u043e\u0440\u0438\u0441\u043a\u0438 \u043f\u0440\u0435\u0433\u043b\u0435\u0434",
|
||||||
"pad.toolbar.savedRevision.title": "\u0417\u0430\u0447\u0443\u0432\u0430\u043d\u0438 \u0440\u0435\u0432\u0438\u0437\u0438\u0438",
|
"pad.toolbar.savedRevision.title": "\u0417\u0430\u0447\u0443\u0432\u0430\u0458 \u0440\u0435\u0432\u0438\u0437\u0438\u0458\u0430",
|
||||||
"pad.toolbar.settings.title": "\u041f\u043e\u0441\u0442\u0430\u0432\u043a\u0438",
|
"pad.toolbar.settings.title": "\u041f\u043e\u0441\u0442\u0430\u0432\u043a\u0438",
|
||||||
"pad.toolbar.embed.title": "\u0412\u043c\u0435\u0442\u043d\u0438 \u0458\u0430 \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430\u0432\u0430",
|
"pad.toolbar.embed.title": "\u0412\u043c\u0435\u0442\u043d\u0438 \u0458\u0430 \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430\u0432\u0430",
|
||||||
"pad.toolbar.showusers.title": "\u041f\u0440\u0438\u043a\u0430\u0436. \u043a\u043e\u0440\u0438\u0441\u043d\u0438\u0446\u0438\u0442\u0435 \u043d\u0430 \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430\u0432\u0430",
|
"pad.toolbar.showusers.title": "\u041f\u0440\u0438\u043a\u0430\u0436. \u043a\u043e\u0440\u0438\u0441\u043d\u0438\u0446\u0438\u0442\u0435 \u043d\u0430 \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430\u0432\u0430",
|
||||||
|
@ -35,6 +35,7 @@
|
||||||
"pad.settings.stickychat": "\u0420\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435 \u0441\u0435\u043a\u043e\u0433\u0430\u0448 \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u043e\u0442",
|
"pad.settings.stickychat": "\u0420\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435 \u0441\u0435\u043a\u043e\u0433\u0430\u0448 \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u043e\u0442",
|
||||||
"pad.settings.colorcheck": "\u0410\u0432\u0442\u043e\u0440\u0441\u043a\u0438 \u0431\u043e\u0438",
|
"pad.settings.colorcheck": "\u0410\u0432\u0442\u043e\u0440\u0441\u043a\u0438 \u0431\u043e\u0438",
|
||||||
"pad.settings.linenocheck": "\u0411\u0440\u043e\u0435\u0432\u0438 \u043d\u0430 \u0440\u0435\u0434\u043e\u0432\u0438\u0442\u0435",
|
"pad.settings.linenocheck": "\u0411\u0440\u043e\u0435\u0432\u0438 \u043d\u0430 \u0440\u0435\u0434\u043e\u0432\u0438\u0442\u0435",
|
||||||
|
"pad.settings.rtlcheck": "\u0421\u043e\u0434\u0440\u0436\u0438\u043d\u0438\u0442\u0435 \u0434\u0430 \u0441\u0435 \u0447\u0438\u0442\u0430\u0430\u0442 \u043e\u0434 \u0434\u0435\u0441\u043d\u043e \u043d\u0430 \u043b\u0435\u0432\u043e?",
|
||||||
"pad.settings.fontType": "\u0422\u0438\u043f \u043d\u0430 \u0444\u043e\u043d\u0442:",
|
"pad.settings.fontType": "\u0422\u0438\u043f \u043d\u0430 \u0444\u043e\u043d\u0442:",
|
||||||
"pad.settings.fontType.normal": "\u041d\u043e\u0440\u043c\u0430\u043b\u0435\u043d",
|
"pad.settings.fontType.normal": "\u041d\u043e\u0440\u043c\u0430\u043b\u0435\u043d",
|
||||||
"pad.settings.fontType.monospaced": "\u041d\u0435\u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u043e\u043d\u0430\u043b\u0435\u043d",
|
"pad.settings.fontType.monospaced": "\u041d\u0435\u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u043e\u043d\u0430\u043b\u0435\u043d",
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
"pad.toolbar.clearAuthorship.title": "Padamkan Warna Pengarang",
|
"pad.toolbar.clearAuthorship.title": "Padamkan Warna Pengarang",
|
||||||
"pad.toolbar.import_export.title": "Import\/Eksport dari\/ke format-format fail berbeza",
|
"pad.toolbar.import_export.title": "Import\/Eksport dari\/ke format-format fail berbeza",
|
||||||
"pad.toolbar.timeslider.title": "Gelangsar masa",
|
"pad.toolbar.timeslider.title": "Gelangsar masa",
|
||||||
"pad.toolbar.savedRevision.title": "Semakan Tersimpan",
|
"pad.toolbar.savedRevision.title": "Simpan Semakan",
|
||||||
"pad.toolbar.settings.title": "Tetapan",
|
"pad.toolbar.settings.title": "Tetapan",
|
||||||
"pad.toolbar.embed.title": "Benamkan pad ini",
|
"pad.toolbar.embed.title": "Benamkan pad ini",
|
||||||
"pad.toolbar.showusers.title": "Tunjukkan pengguna pada pad ini",
|
"pad.toolbar.showusers.title": "Tunjukkan pengguna pada pad ini",
|
||||||
|
@ -34,6 +34,7 @@
|
||||||
"pad.settings.stickychat": "Sentiasa bersembang pada skrin",
|
"pad.settings.stickychat": "Sentiasa bersembang pada skrin",
|
||||||
"pad.settings.colorcheck": "Warna pengarang",
|
"pad.settings.colorcheck": "Warna pengarang",
|
||||||
"pad.settings.linenocheck": "Nombor baris",
|
"pad.settings.linenocheck": "Nombor baris",
|
||||||
|
"pad.settings.rtlcheck": "Membaca dari kanan ke kiri?",
|
||||||
"pad.settings.fontType": "Jenis fon:",
|
"pad.settings.fontType": "Jenis fon:",
|
||||||
"pad.settings.fontType.normal": "Normal",
|
"pad.settings.fontType.normal": "Normal",
|
||||||
"pad.settings.fontType.monospaced": "Monospace",
|
"pad.settings.fontType.monospaced": "Monospace",
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
"pad.settings.stickychat": "Chat altijd zichtbaar",
|
"pad.settings.stickychat": "Chat altijd zichtbaar",
|
||||||
"pad.settings.colorcheck": "Kleuren auteurs",
|
"pad.settings.colorcheck": "Kleuren auteurs",
|
||||||
"pad.settings.linenocheck": "Regelnummers",
|
"pad.settings.linenocheck": "Regelnummers",
|
||||||
|
"pad.settings.rtlcheck": "Inhoud van rechts naar links lezen?",
|
||||||
"pad.settings.fontType": "Lettertype:",
|
"pad.settings.fontType": "Lettertype:",
|
||||||
"pad.settings.fontType.normal": "Normaal",
|
"pad.settings.fontType.normal": "Normaal",
|
||||||
"pad.settings.fontType.monospaced": "Monospace",
|
"pad.settings.fontType.monospaced": "Monospace",
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
"pad.toolbar.clearAuthorship.title": "\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0446\u0432\u0435\u0442\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430",
|
"pad.toolbar.clearAuthorship.title": "\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0446\u0432\u0435\u0442\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430",
|
||||||
"pad.toolbar.import_export.title": "\u0418\u043c\u043f\u043e\u0440\u0442\/\u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 \u0444\u0430\u0439\u043b\u043e\u0432",
|
"pad.toolbar.import_export.title": "\u0418\u043c\u043f\u043e\u0440\u0442\/\u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 \u0444\u0430\u0439\u043b\u043e\u0432",
|
||||||
"pad.toolbar.timeslider.title": "\u0428\u043a\u0430\u043b\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438",
|
"pad.toolbar.timeslider.title": "\u0428\u043a\u0430\u043b\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438",
|
||||||
"pad.toolbar.savedRevision.title": "\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438",
|
"pad.toolbar.savedRevision.title": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044e",
|
||||||
"pad.toolbar.settings.title": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438",
|
"pad.toolbar.settings.title": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438",
|
||||||
"pad.toolbar.embed.title": "\u0412\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",
|
"pad.toolbar.embed.title": "\u0412\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",
|
||||||
"pad.toolbar.showusers.title": "\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0435",
|
"pad.toolbar.showusers.title": "\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0435",
|
||||||
|
@ -37,6 +37,7 @@
|
||||||
"pad.settings.stickychat": "\u0412\u0441\u0435\u0433\u0434\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0447\u0430\u0442",
|
"pad.settings.stickychat": "\u0412\u0441\u0435\u0433\u0434\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0447\u0430\u0442",
|
||||||
"pad.settings.colorcheck": "\u0426\u0432\u0435\u0442\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430",
|
"pad.settings.colorcheck": "\u0426\u0432\u0435\u0442\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430",
|
||||||
"pad.settings.linenocheck": "\u041d\u043e\u043c\u0435\u0440\u0430 \u0441\u0442\u0440\u043e\u043a",
|
"pad.settings.linenocheck": "\u041d\u043e\u043c\u0435\u0440\u0430 \u0441\u0442\u0440\u043e\u043a",
|
||||||
|
"pad.settings.rtlcheck": "\u0427\u0438\u0442\u0430\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0441\u043f\u0440\u0430\u0432\u0430 \u043d\u0430\u043b\u0435\u0432\u043e?",
|
||||||
"pad.settings.fontType": "\u0422\u0438\u043f \u0448\u0440\u0438\u0444\u0442\u0430:",
|
"pad.settings.fontType": "\u0422\u0438\u043f \u0448\u0440\u0438\u0444\u0442\u0430:",
|
||||||
"pad.settings.fontType.normal": "\u041e\u0431\u044b\u0447\u043d\u044b\u0439",
|
"pad.settings.fontType.normal": "\u041e\u0431\u044b\u0447\u043d\u044b\u0439",
|
||||||
"pad.settings.fontType.monospaced": "\u041c\u043e\u043d\u043e\u0448\u0438\u0440\u0438\u043d\u043d\u044b\u0439",
|
"pad.settings.fontType.monospaced": "\u041c\u043e\u043d\u043e\u0448\u0438\u0440\u0438\u043d\u043d\u044b\u0439",
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
"pad.toolbar.clearAuthorship.title": "Po\u010disti barvo avtorstva",
|
"pad.toolbar.clearAuthorship.title": "Po\u010disti barvo avtorstva",
|
||||||
"pad.toolbar.import_export.title": "Izvozi\/Uvozi razli\u010dne oblike zapisov",
|
"pad.toolbar.import_export.title": "Izvozi\/Uvozi razli\u010dne oblike zapisov",
|
||||||
"pad.toolbar.timeslider.title": "Drsnik zgodovine",
|
"pad.toolbar.timeslider.title": "Drsnik zgodovine",
|
||||||
"pad.toolbar.savedRevision.title": "Shranjene predelave",
|
"pad.toolbar.savedRevision.title": "Shrani predelavo",
|
||||||
"pad.toolbar.settings.title": "Nastavitve",
|
"pad.toolbar.settings.title": "Nastavitve",
|
||||||
"pad.toolbar.embed.title": "Vstavi dokument",
|
"pad.toolbar.embed.title": "Vstavi dokument",
|
||||||
"pad.toolbar.showusers.title": "Poka\u017ei uporabnike dokumenta",
|
"pad.toolbar.showusers.title": "Poka\u017ei uporabnike dokumenta",
|
||||||
|
@ -34,6 +34,7 @@
|
||||||
"pad.settings.stickychat": "Vsebina klepeta je vedno na zaslonu.",
|
"pad.settings.stickychat": "Vsebina klepeta je vedno na zaslonu.",
|
||||||
"pad.settings.colorcheck": "Barve avtorstva",
|
"pad.settings.colorcheck": "Barve avtorstva",
|
||||||
"pad.settings.linenocheck": "\u0160tevilke vrstic",
|
"pad.settings.linenocheck": "\u0160tevilke vrstic",
|
||||||
|
"pad.settings.rtlcheck": "Ali naj se vsebina prebira od desne proti levi?",
|
||||||
"pad.settings.fontType": "Vrsta pisave:",
|
"pad.settings.fontType": "Vrsta pisave:",
|
||||||
"pad.settings.fontType.normal": "Obi\u010dajno",
|
"pad.settings.fontType.normal": "Obi\u010dajno",
|
||||||
"pad.settings.fontType.monospaced": "Monospace",
|
"pad.settings.fontType.monospaced": "Monospace",
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
"pad.toolbar.clearAuthorship.title": "Rensa f\u00f6rfattarf\u00e4rger",
|
"pad.toolbar.clearAuthorship.title": "Rensa f\u00f6rfattarf\u00e4rger",
|
||||||
"pad.toolbar.import_export.title": "Importera\/exportera fr\u00e5n\/till olika filformat",
|
"pad.toolbar.import_export.title": "Importera\/exportera fr\u00e5n\/till olika filformat",
|
||||||
"pad.toolbar.timeslider.title": "Tidsreglage",
|
"pad.toolbar.timeslider.title": "Tidsreglage",
|
||||||
"pad.toolbar.savedRevision.title": "Sparade revisioner",
|
"pad.toolbar.savedRevision.title": "Spara revision",
|
||||||
"pad.toolbar.settings.title": "Inst\u00e4llningar",
|
"pad.toolbar.settings.title": "Inst\u00e4llningar",
|
||||||
"pad.toolbar.embed.title": "B\u00e4dda in detta block",
|
"pad.toolbar.embed.title": "B\u00e4dda in detta block",
|
||||||
"pad.toolbar.showusers.title": "Visa anv\u00e4ndarna p\u00e5 detta block",
|
"pad.toolbar.showusers.title": "Visa anv\u00e4ndarna p\u00e5 detta block",
|
||||||
|
@ -34,6 +34,7 @@
|
||||||
"pad.settings.stickychat": "Chatten alltid p\u00e5 sk\u00e4rmen",
|
"pad.settings.stickychat": "Chatten alltid p\u00e5 sk\u00e4rmen",
|
||||||
"pad.settings.colorcheck": "F\u00f6rfattarskapsf\u00e4rger",
|
"pad.settings.colorcheck": "F\u00f6rfattarskapsf\u00e4rger",
|
||||||
"pad.settings.linenocheck": "Radnummer",
|
"pad.settings.linenocheck": "Radnummer",
|
||||||
|
"pad.settings.rtlcheck": "Vill du l\u00e4sa inneh\u00e5llet fr\u00e5n h\u00f6ger till v\u00e4nster?",
|
||||||
"pad.settings.fontType": "Typsnitt:",
|
"pad.settings.fontType": "Typsnitt:",
|
||||||
"pad.settings.fontType.normal": "Normal",
|
"pad.settings.fontType.normal": "Normal",
|
||||||
"pad.settings.fontType.monospaced": "Fast breddsteg",
|
"pad.settings.fontType.monospaced": "Fast breddsteg",
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
"pad.colorpicker.save": "\u0c2d\u0c26\u0c4d\u0c30\u0c2a\u0c30\u0c1a\u0c41",
|
"pad.colorpicker.save": "\u0c2d\u0c26\u0c4d\u0c30\u0c2a\u0c30\u0c1a\u0c41",
|
||||||
"pad.colorpicker.cancel": "\u0c30\u0c26\u0c4d\u0c26\u0c41\u0c1a\u0c47\u0c2f\u0c3f",
|
"pad.colorpicker.cancel": "\u0c30\u0c26\u0c4d\u0c26\u0c41\u0c1a\u0c47\u0c2f\u0c3f",
|
||||||
"pad.loading": "\u0c32\u0c4b\u0c21\u0c35\u0c41\u0c24\u0c4b\u0c02\u0c26\u0c3f...",
|
"pad.loading": "\u0c32\u0c4b\u0c21\u0c35\u0c41\u0c24\u0c4b\u0c02\u0c26\u0c3f...",
|
||||||
"pad.wrongPassword": "\u0c2e\u0c40 \u0c30\u0c39\u0c38\u0c4d\u0c2f\u0c2a\u0c26\u0c02 \u0c24\u0c2a\u0c41",
|
"pad.wrongPassword": "\u0c2e\u0c40 \u0c38\u0c02\u0c15\u0c47\u0c24\u0c2a\u0c26\u0c02 \u0c24\u0c2a\u0c4d\u0c2a\u0c41",
|
||||||
"pad.settings.padSettings": "\u0c2a\u0c32\u0c15 \u0c05\u0c2e\u0c30\u0c3f\u0c15\u0c32\u0c41",
|
"pad.settings.padSettings": "\u0c2a\u0c32\u0c15 \u0c05\u0c2e\u0c30\u0c3f\u0c15\u0c32\u0c41",
|
||||||
"pad.settings.myView": "\u0c28\u0c3e \u0c09\u0c26\u0c4d\u0c26\u0c47\u0c36\u0c4d\u0c2f\u0c2e\u0c41",
|
"pad.settings.myView": "\u0c28\u0c3e \u0c09\u0c26\u0c4d\u0c26\u0c47\u0c36\u0c4d\u0c2f\u0c2e\u0c41",
|
||||||
"pad.settings.stickychat": "\u0c24\u0c46\u0c30\u0c2a\u0c48\u0c28\u0c47 \u0c2e\u0c3e\u0c1f\u0c3e\u0c2e\u0c02\u0c24\u0c3f\u0c28\u0c3f \u0c0e\u0c32\u0c4d\u0c32\u0c2a\u0c41\u0c21\u0c41 \u0c1a\u0c47\u0c2f\u0c41\u0c2e\u0c41",
|
"pad.settings.stickychat": "\u0c24\u0c46\u0c30\u0c2a\u0c48\u0c28\u0c47 \u0c2e\u0c3e\u0c1f\u0c3e\u0c2e\u0c02\u0c24\u0c3f\u0c28\u0c3f \u0c0e\u0c32\u0c4d\u0c32\u0c2a\u0c41\u0c21\u0c41 \u0c1a\u0c47\u0c2f\u0c41\u0c2e\u0c41",
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
"pad.settings.stickychat": "\u6c38\u9060\u5728\u5c4f\u5e55\u4e0a\u986f\u793a\u804a\u5929",
|
"pad.settings.stickychat": "\u6c38\u9060\u5728\u5c4f\u5e55\u4e0a\u986f\u793a\u804a\u5929",
|
||||||
"pad.settings.colorcheck": "\u4f5c\u8005\u984f\u8272",
|
"pad.settings.colorcheck": "\u4f5c\u8005\u984f\u8272",
|
||||||
"pad.settings.linenocheck": "\u884c\u865f",
|
"pad.settings.linenocheck": "\u884c\u865f",
|
||||||
|
"pad.settings.rtlcheck": "\u5f9e\u53f3\u81f3\u5de6\u8b80\u53d6\u5167\u5bb9\uff1f",
|
||||||
"pad.settings.fontType": "\u5b57\u9ad4\u985e\u578b\uff1a",
|
"pad.settings.fontType": "\u5b57\u9ad4\u985e\u578b\uff1a",
|
||||||
"pad.settings.fontType.normal": "\u6b63\u5e38",
|
"pad.settings.fontType.normal": "\u6b63\u5e38",
|
||||||
"pad.settings.fontType.monospaced": "\u7b49\u5bec",
|
"pad.settings.fontType.monospaced": "\u7b49\u5bec",
|
||||||
|
|
|
@ -569,11 +569,20 @@ function handleUserChanges(client, message)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Validate all 'author' attribs to be the same value as the current user
|
// Validate all added 'author' attribs to be the same value as the current user
|
||||||
wireApool.eachAttrib(function(type, value) {
|
var iterator = Changeset.opIterator(Changeset.unpack(changeset).ops)
|
||||||
if('author' == type && value != thisSession.author) throw "Trying to submit changes as another author"
|
, op
|
||||||
|
while(iterator.hasNext()) {
|
||||||
|
op = iterator.next()
|
||||||
|
if(op.opcode != '+') continue;
|
||||||
|
op.attribs.split('*').forEach(function(attr) {
|
||||||
|
if(!attr) return
|
||||||
|
attr = wireApool.getAttrib(attr)
|
||||||
|
if(!attr) return
|
||||||
|
if('author' == attr[0] && attr[1] != thisSession.author) throw "Trying to submit changes as another author"
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
}
|
||||||
catch(e)
|
catch(e)
|
||||||
{
|
{
|
||||||
// There is an error in this changeset, so just refuse it
|
// There is an error in this changeset, so just refuse it
|
||||||
|
|
|
@ -354,7 +354,6 @@ exports.expressCreateServer = function (hook_name, args, cb) {
|
||||||
// Let's put this under /rest for now
|
// Let's put this under /rest for now
|
||||||
var subpath = express();
|
var subpath = express();
|
||||||
|
|
||||||
args.app.use(express.bodyParser());
|
|
||||||
args.app.use(basePath, subpath);
|
args.app.use(basePath, subpath);
|
||||||
|
|
||||||
swagger.setAppHandler(subpath);
|
swagger.setAppHandler(subpath);
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
"require-kernel" : "1.0.5",
|
"require-kernel" : "1.0.5",
|
||||||
"resolve" : "0.2.x",
|
"resolve" : "0.2.x",
|
||||||
"socket.io" : "0.9.x",
|
"socket.io" : "0.9.x",
|
||||||
"ueberDB" : "0.1.94",
|
"ueberDB" : "0.1.95",
|
||||||
"async" : "0.1.x",
|
"async" : "0.1.x",
|
||||||
"express" : "3.x",
|
"express" : "3.x",
|
||||||
"connect" : "2.4.x",
|
"connect" : "2.4.x",
|
||||||
|
@ -46,5 +46,5 @@
|
||||||
"engines" : { "node" : ">=0.6.3",
|
"engines" : { "node" : ">=0.6.3",
|
||||||
"npm" : ">=1.0"
|
"npm" : ">=1.0"
|
||||||
},
|
},
|
||||||
"version" : "1.2.81"
|
"version" : "1.2.9"
|
||||||
}
|
}
|
||||||
|
|
|
@ -5125,7 +5125,7 @@ function Ace2Inner(){
|
||||||
function initLineNumbers()
|
function initLineNumbers()
|
||||||
{
|
{
|
||||||
lineNumbersShown = 1;
|
lineNumbersShown = 1;
|
||||||
sideDiv.innerHTML = '<table border="0" cellpadding="0" cellspacing="0" align="right">' + '<tr><td id="sidedivinner"><div>1</div></td></tr></table>';
|
sideDiv.innerHTML = '<table border="0" cellpadding="0" cellspacing="0" align="right"><tr><td id="sidedivinner"><div>1</div></td></tr></table>';
|
||||||
sideDivInner = outerWin.document.getElementById("sidedivinner");
|
sideDivInner = outerWin.document.getElementById("sidedivinner");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,27 +23,27 @@
|
||||||
window.html10n = (function(window, document, undefined) {
|
window.html10n = (function(window, document, undefined) {
|
||||||
|
|
||||||
// fix console
|
// fix console
|
||||||
var console = window.console;
|
var console = window.console
|
||||||
function interceptConsole(method){
|
function interceptConsole(method){
|
||||||
if (!console) return function() {};
|
if (!console) return function() {}
|
||||||
|
|
||||||
var original = console[method];
|
var original = console[method]
|
||||||
|
|
||||||
// do sneaky stuff
|
// do sneaky stuff
|
||||||
if (original.bind){
|
if (original.bind){
|
||||||
// Do this for normal browsers
|
// Do this for normal browsers
|
||||||
return original.bind(console);
|
return original.bind(console)
|
||||||
}else{
|
}else{
|
||||||
return function() {
|
return function() {
|
||||||
// Do this for IE
|
// Do this for IE
|
||||||
var message = Array.prototype.slice.apply(arguments).join(' ');
|
var message = Array.prototype.slice.apply(arguments).join(' ')
|
||||||
original(message);
|
original(message)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var consoleLog = interceptConsole('log')
|
var consoleLog = interceptConsole('log')
|
||||||
, consoleWarn = interceptConsole('warn')
|
, consoleWarn = interceptConsole('warn')
|
||||||
, consoleError = interceptConsole('warn');
|
, consoleError = interceptConsole('warn')
|
||||||
|
|
||||||
|
|
||||||
// fix Array.prototype.instanceOf in, guess what, IE! <3
|
// fix Array.prototype.instanceOf in, guess what, IE! <3
|
||||||
|
@ -100,7 +100,7 @@ window.html10n = (function(window, document, undefined) {
|
||||||
this._events = this._events || {};
|
this._events = this._events || {};
|
||||||
if( event in this._events === false ) return;
|
if( event in this._events === false ) return;
|
||||||
for(var i = 0; i < this._events[event].length; i++){
|
for(var i = 0; i < this._events[event].length; i++){
|
||||||
this._events[event][i].apply(this, Array.prototype.slice.call(arguments, 1));
|
this._events[event][i].apply(this, Array.prototype.slice.call(arguments, 1))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -122,50 +122,50 @@ window.html10n = (function(window, document, undefined) {
|
||||||
* and caching all necessary resources
|
* and caching all necessary resources
|
||||||
*/
|
*/
|
||||||
function Loader(resources) {
|
function Loader(resources) {
|
||||||
this.resources = resources;
|
this.resources = resources
|
||||||
this.cache = {}; // file => contents
|
this.cache = {} // file => contents
|
||||||
this.langs = {}; // lang => strings
|
this.langs = {} // lang => strings
|
||||||
}
|
}
|
||||||
|
|
||||||
Loader.prototype.load = function(lang, cb) {
|
Loader.prototype.load = function(lang, cb) {
|
||||||
if(this.langs[lang]) return cb();
|
if(this.langs[lang]) return cb()
|
||||||
|
|
||||||
if (this.resources.length > 0) {
|
if (this.resources.length > 0) {
|
||||||
var reqs = 0;
|
var reqs = 0;
|
||||||
for (var i=0, n=this.resources.length; i < n; i++) {
|
for (var i=0, n=this.resources.length; i < n; i++) {
|
||||||
this.fetch(this.resources[i], lang, function(e) {
|
this.fetch(this.resources[i], lang, function(e) {
|
||||||
reqs++;
|
reqs++;
|
||||||
if(e) return setTimeout(function(){ throw e }, 0);
|
if(e) console.warn(e)
|
||||||
|
|
||||||
if (reqs < n) return;// Call back once all reqs are completed
|
if (reqs < n) return;// Call back once all reqs are completed
|
||||||
cb && cb();
|
cb && cb()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Loader.prototype.fetch = function(href, lang, cb) {
|
Loader.prototype.fetch = function(href, lang, cb) {
|
||||||
var that = this;
|
var that = this
|
||||||
|
|
||||||
if (this.cache[href]) {
|
if (this.cache[href]) {
|
||||||
this.parse(lang, href, this.cache[href], cb)
|
this.parse(lang, href, this.cache[href], cb)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var xhr = new XMLHttpRequest();
|
var xhr = new XMLHttpRequest()
|
||||||
xhr.open('GET', href, /*async: */true);
|
xhr.open('GET', href, /*async: */true)
|
||||||
if (xhr.overrideMimeType) {
|
if (xhr.overrideMimeType) {
|
||||||
xhr.overrideMimeType('application/json; charset=utf-8');
|
xhr.overrideMimeType('application/json; charset=utf-8');
|
||||||
}
|
}
|
||||||
xhr.onreadystatechange = function() {
|
xhr.onreadystatechange = function() {
|
||||||
if (xhr.readyState == 4) {
|
if (xhr.readyState == 4) {
|
||||||
if (xhr.status == 200 || xhr.status === 0) {
|
if (xhr.status == 200 || xhr.status === 0) {
|
||||||
var data = JSON.parse(xhr.responseText);
|
var data = JSON.parse(xhr.responseText)
|
||||||
that.cache[href] = data;
|
that.cache[href] = data
|
||||||
// Pass on the contents for parsing
|
// Pass on the contents for parsing
|
||||||
that.parse(lang, href, data, cb);
|
that.parse(lang, href, data, cb)
|
||||||
} else {
|
} else {
|
||||||
cb(new Error('Failed to load '+href));
|
cb(new Error('Failed to load '+href))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -174,39 +174,39 @@ window.html10n = (function(window, document, undefined) {
|
||||||
|
|
||||||
Loader.prototype.parse = function(lang, currHref, data, cb) {
|
Loader.prototype.parse = function(lang, currHref, data, cb) {
|
||||||
if ('object' != typeof data) {
|
if ('object' != typeof data) {
|
||||||
cb(new Error('A file couldn\'t be parsed as json.'));
|
cb(new Error('A file couldn\'t be parsed as json.'))
|
||||||
return;
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!data[lang]) lang = lang.substr(0, lang.indexOf('-') == -1? lang.length : lang.indexOf('-'));
|
if (!data[lang]) lang = lang.substr(0, lang.indexOf('-') == -1? lang.length : lang.indexOf('-'))
|
||||||
if (!data[lang]) {
|
if (!data[lang]) {
|
||||||
cb(new Error('Couldn\'t find translations for '+lang));
|
cb(new Error('Couldn\'t find translations for '+lang))
|
||||||
return;
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('string' == typeof data[lang]) {
|
if ('string' == typeof data[lang]) {
|
||||||
// Import rule
|
// Import rule
|
||||||
|
|
||||||
// absolute path
|
// absolute path
|
||||||
var importUrl = data[lang];
|
var importUrl = data[lang]
|
||||||
|
|
||||||
// relative path
|
// relative path
|
||||||
if(data[lang].indexOf("http") != 0 && data[lang].indexOf("/") != 0) {
|
if(data[lang].indexOf("http") != 0 && data[lang].indexOf("/") != 0) {
|
||||||
importUrl = currHref+"/../"+data[lang];
|
importUrl = currHref+"/../"+data[lang]
|
||||||
}
|
}
|
||||||
|
|
||||||
this.fetch(importUrl, lang, cb);
|
this.fetch(importUrl, lang, cb)
|
||||||
return;
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('object' != typeof data[lang]) {
|
if ('object' != typeof data[lang]) {
|
||||||
cb(new Error('Translations should be specified as JSON objects!'));
|
cb(new Error('Translations should be specified as JSON objects!'))
|
||||||
return;
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
this.langs[lang] = data[lang];
|
this.langs[lang] = data[lang]
|
||||||
// TODO: Also store accompanying langs
|
// TODO: Also store accompanying langs
|
||||||
cb();
|
cb()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -216,11 +216,11 @@ window.html10n = (function(window, document, undefined) {
|
||||||
var html10n =
|
var html10n =
|
||||||
{ language : null
|
{ language : null
|
||||||
}
|
}
|
||||||
MicroEvent.mixin(html10n);
|
MicroEvent.mixin(html10n)
|
||||||
|
|
||||||
html10n.macros = {};
|
html10n.macros = {}
|
||||||
|
|
||||||
html10n.rtl = ["ar","dv","fa","ha","he","ks","ku","ps","ur","yi"];
|
html10n.rtl = ["ar","dv","fa","ha","he","ks","ku","ps","ur","yi"]
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get rules for plural forms (shared with JetPack), see:
|
* Get rules for plural forms (shared with JetPack), see:
|
||||||
|
@ -664,14 +664,14 @@ window.html10n = (function(window, document, undefined) {
|
||||||
* @param langs An array of lang codes defining fallbacks
|
* @param langs An array of lang codes defining fallbacks
|
||||||
*/
|
*/
|
||||||
html10n.localize = function(langs) {
|
html10n.localize = function(langs) {
|
||||||
var that = this;
|
var that = this
|
||||||
// if only one string => create an array
|
// if only one string => create an array
|
||||||
if ('string' == typeof langs) langs = [langs];
|
if ('string' == typeof langs) langs = [langs]
|
||||||
|
|
||||||
this.build(langs, function(er, translations) {
|
this.build(langs, function(er, translations) {
|
||||||
html10n.translations = translations;
|
html10n.translations = translations
|
||||||
html10n.translateElement(translations);
|
html10n.translateElement(translations)
|
||||||
that.trigger('localized');
|
that.trigger('localized')
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -682,78 +682,78 @@ window.html10n = (function(window, document, undefined) {
|
||||||
* @param element A DOM element, if omitted, the document element will be used
|
* @param element A DOM element, if omitted, the document element will be used
|
||||||
*/
|
*/
|
||||||
html10n.translateElement = function(translations, element) {
|
html10n.translateElement = function(translations, element) {
|
||||||
element = element || document.documentElement;
|
element = element || document.documentElement
|
||||||
|
|
||||||
var children = element? getTranslatableChildren(element) : document.childNodes;
|
var children = element? getTranslatableChildren(element) : document.childNodes;
|
||||||
for (var i=0, n=children.length; i < n; i++) {
|
for (var i=0, n=children.length; i < n; i++) {
|
||||||
this.translateNode(translations, children[i]);
|
this.translateNode(translations, children[i])
|
||||||
}
|
}
|
||||||
|
|
||||||
// translate element itself if necessary
|
// translate element itself if necessary
|
||||||
this.translateNode(translations, element);
|
this.translateNode(translations, element)
|
||||||
}
|
}
|
||||||
|
|
||||||
function asyncForEach(list, iterator, cb) {
|
function asyncForEach(list, iterator, cb) {
|
||||||
var i = 0
|
var i = 0
|
||||||
, n = list.length;
|
, n = list.length
|
||||||
iterator(list[i], i, function each(err) {
|
iterator(list[i], i, function each(err) {
|
||||||
if(err) consoleLog(err);
|
if(err) consoleLog(err)
|
||||||
i++;
|
i++
|
||||||
if (i < n) return iterator(list[i],i, each);
|
if (i < n) return iterator(list[i],i, each);
|
||||||
cb();
|
cb()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTranslatableChildren(element) {
|
function getTranslatableChildren(element) {
|
||||||
if(!document.querySelectorAll) {
|
if(!document.querySelectorAll) {
|
||||||
if (!element) return [];
|
if (!element) return []
|
||||||
var nodes = element.getElementsByTagName('*')
|
var nodes = element.getElementsByTagName('*')
|
||||||
, l10nElements = [];
|
, l10nElements = []
|
||||||
for (var i=0, n=nodes.length; i < n; i++) {
|
for (var i=0, n=nodes.length; i < n; i++) {
|
||||||
if (nodes[i].getAttribute('data-l10n-id'))
|
if (nodes[i].getAttribute('data-l10n-id'))
|
||||||
l10nElements.push(nodes[i]);
|
l10nElements.push(nodes[i]);
|
||||||
}
|
}
|
||||||
return l10nElements;
|
return l10nElements
|
||||||
}
|
}
|
||||||
return element.querySelectorAll('*[data-l10n-id]');
|
return element.querySelectorAll('*[data-l10n-id]')
|
||||||
}
|
}
|
||||||
|
|
||||||
html10n.get = function(id, args) {
|
html10n.get = function(id, args) {
|
||||||
var translations = html10n.translations;
|
var translations = html10n.translations
|
||||||
if(!translations) return consoleWarn('No translations available (yet)');
|
if(!translations) return consoleWarn('No translations available (yet)')
|
||||||
if(!translations[id]) return consoleWarn('Could not find string '+id);
|
if(!translations[id]) return consoleWarn('Could not find string '+id)
|
||||||
|
|
||||||
// apply args
|
// apply args
|
||||||
var str = substArguments(translations[id], args);
|
var str = substArguments(translations[id], args)
|
||||||
|
|
||||||
// apply macros
|
// apply macros
|
||||||
return substMacros(id, str, args);
|
return substMacros(id, str, args)
|
||||||
|
|
||||||
// replace {{arguments}} with their values or the
|
// replace {{arguments}} with their values or the
|
||||||
// associated translation string (based on its key)
|
// associated translation string (based on its key)
|
||||||
function substArguments(str, args) {
|
function substArguments(str, args) {
|
||||||
var reArgs = /\{\{\s*([a-zA-Z\.]+)\s*\}\}/
|
var reArgs = /\{\{\s*([a-zA-Z\.]+)\s*\}\}/
|
||||||
, match;
|
, match
|
||||||
|
|
||||||
while (match = reArgs.exec(str)) {
|
while (match = reArgs.exec(str)) {
|
||||||
if (!match || match.length < 2)
|
if (!match || match.length < 2)
|
||||||
return str; // argument key not found
|
return str // argument key not found
|
||||||
|
|
||||||
var arg = match[1]
|
var arg = match[1]
|
||||||
, sub = '';
|
, sub = ''
|
||||||
if (arg in args) {
|
if (arg in args) {
|
||||||
sub = args[arg];
|
sub = args[arg]
|
||||||
} else if (arg in translations) {
|
} else if (arg in translations) {
|
||||||
sub = translations[arg];
|
sub = translations[arg]
|
||||||
} else {
|
} else {
|
||||||
consoleWarn('Could not find argument {{' + arg + '}}');
|
consoleWarn('Could not find argument {{' + arg + '}}')
|
||||||
return str;
|
return str
|
||||||
}
|
}
|
||||||
|
|
||||||
str = str.substring(0, match.index) + sub + str.substr(match.index + match[0].length);
|
str = str.substring(0, match.index) + sub + str.substr(match.index + match[0].length)
|
||||||
}
|
}
|
||||||
|
|
||||||
return str;
|
return str
|
||||||
}
|
}
|
||||||
|
|
||||||
// replace {[macros]} with their values
|
// replace {[macros]} with their values
|
||||||
|
@ -766,21 +766,21 @@ window.html10n = (function(window, document, undefined) {
|
||||||
// a macro has been found
|
// a macro has been found
|
||||||
// Note: at the moment, only one parameter is supported
|
// Note: at the moment, only one parameter is supported
|
||||||
var macroName = reMatch[1]
|
var macroName = reMatch[1]
|
||||||
, paramName = reMatch[2];
|
, paramName = reMatch[2]
|
||||||
|
|
||||||
if (!(macroName in gMacros)) return str;
|
if (!(macroName in gMacros)) return str
|
||||||
|
|
||||||
var param;
|
var param
|
||||||
if (args && paramName in args) {
|
if (args && paramName in args) {
|
||||||
param = args[paramName];
|
param = args[paramName]
|
||||||
} else if (paramName in translations) {
|
} else if (paramName in translations) {
|
||||||
param = translations[paramName];
|
param = translations[paramName]
|
||||||
}
|
}
|
||||||
|
|
||||||
// there's no macro parser yet: it has to be defined in gMacros
|
// there's no macro parser yet: it has to be defined in gMacros
|
||||||
var macro = html10n.macros[macroName];
|
var macro = html10n.macros[macroName]
|
||||||
str = macro(translations, key, str, param);
|
str = macro(translations, key, str, param)
|
||||||
return str;
|
return str
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -788,26 +788,26 @@ window.html10n = (function(window, document, undefined) {
|
||||||
* Applies translations to a DOM node (recursive)
|
* Applies translations to a DOM node (recursive)
|
||||||
*/
|
*/
|
||||||
html10n.translateNode = function(translations, node) {
|
html10n.translateNode = function(translations, node) {
|
||||||
var str = {};
|
var str = {}
|
||||||
|
|
||||||
// get id
|
// get id
|
||||||
str.id = node.getAttribute('data-l10n-id');
|
str.id = node.getAttribute('data-l10n-id')
|
||||||
if (!str.id) return;
|
if (!str.id) return
|
||||||
|
|
||||||
if(!translations[str.id]) return consoleWarn('Couldn\'t find translation key '+str.id);
|
if(!translations[str.id]) return consoleWarn('Couldn\'t find translation key '+str.id)
|
||||||
|
|
||||||
// get args
|
// get args
|
||||||
if(window.JSON) {
|
if(window.JSON) {
|
||||||
str.args = JSON.parse(node.getAttribute('data-l10n-args'));
|
str.args = JSON.parse(node.getAttribute('data-l10n-args'))
|
||||||
}else{
|
}else{
|
||||||
try{
|
try{
|
||||||
str.args = eval(node.getAttribute('data-l10n-args'));
|
str.args = eval(node.getAttribute('data-l10n-args'))
|
||||||
}catch(e) {
|
}catch(e) {
|
||||||
consoleWarn('Couldn\'t parse args for '+str.id);
|
consoleWarn('Couldn\'t parse args for '+str.id)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
str.str = html10n.get(str.id, str.args);
|
str.str = html10n.get(str.id, str.args)
|
||||||
|
|
||||||
// get attribute name to apply str to
|
// get attribute name to apply str to
|
||||||
var prop
|
var prop
|
||||||
|
@ -817,31 +817,31 @@ window.html10n = (function(window, document, undefined) {
|
||||||
, "innerHTML": 1
|
, "innerHTML": 1
|
||||||
, "alt": 1
|
, "alt": 1
|
||||||
, "textContent": 1
|
, "textContent": 1
|
||||||
};
|
}
|
||||||
if (index > 0 && str.id.substr(index + 1) in attrList) { // an attribute has been specified
|
if (index > 0 && str.id.substr(index + 1) in attrList) { // an attribute has been specified
|
||||||
prop = str.id.substr(index + 1);
|
prop = str.id.substr(index + 1)
|
||||||
} else { // no attribute: assuming text content by default
|
} else { // no attribute: assuming text content by default
|
||||||
prop = document.body.textContent ? 'textContent' : 'innerText';
|
prop = document.body.textContent ? 'textContent' : 'innerText'
|
||||||
}
|
}
|
||||||
|
|
||||||
// Apply translation
|
// Apply translation
|
||||||
if (node.children.length === 0 || prop != 'textContent') {
|
if (node.children.length === 0 || prop != 'textContent') {
|
||||||
node[prop] = str.str;
|
node[prop] = str.str
|
||||||
} else {
|
} else {
|
||||||
var children = node.childNodes,
|
var children = node.childNodes,
|
||||||
found = false;
|
found = false
|
||||||
for (var i=0, n=children.length; i < n; i++) {
|
for (var i=0, n=children.length; i < n; i++) {
|
||||||
if (children[i].nodeType === 3 && /\S/.test(children[i].textContent)) {
|
if (children[i].nodeType === 3 && /\S/.test(children[i].textContent)) {
|
||||||
if (!found) {
|
if (!found) {
|
||||||
children[i].nodeValue = str.str;
|
children[i].nodeValue = str.str
|
||||||
found = true;
|
found = true
|
||||||
} else {
|
} else {
|
||||||
children[i].nodeValue = '';
|
children[i].nodeValue = ''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!found) {
|
if (!found) {
|
||||||
consoleWarn('Unexpected error: could not translate element content for key '+str.id, node);
|
consoleWarn('Unexpected error: could not translate element content for key '+str.id, node)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -852,32 +852,32 @@ window.html10n = (function(window, document, undefined) {
|
||||||
*/
|
*/
|
||||||
html10n.build = function(langs, cb) {
|
html10n.build = function(langs, cb) {
|
||||||
var that = this
|
var that = this
|
||||||
, build = {};
|
, build = {}
|
||||||
|
|
||||||
asyncForEach(langs, function (lang, i, next) {
|
asyncForEach(langs, function (lang, i, next) {
|
||||||
if(!lang) return next();
|
if(!lang) return next();
|
||||||
that.loader.load(lang, next);
|
that.loader.load(lang, next)
|
||||||
}, function() {
|
}, function() {
|
||||||
var lang;
|
var lang
|
||||||
langs.reverse();
|
langs.reverse()
|
||||||
|
|
||||||
// loop through priority array...
|
// loop through priority array...
|
||||||
for (var i=0, n=langs.length; i < n; i++) {
|
for (var i=0, n=langs.length; i < n; i++) {
|
||||||
lang = langs[i];
|
lang = langs[i]
|
||||||
|
|
||||||
if(!lang || !(lang in that.loader.langs)) continue;
|
if(!lang || !(lang in that.loader.langs)) continue;
|
||||||
|
|
||||||
// ... and apply all strings of the current lang in the list
|
// ... and apply all strings of the current lang in the list
|
||||||
// to our build object
|
// to our build object
|
||||||
for (var string in that.loader.langs[lang]) {
|
for (var string in that.loader.langs[lang]) {
|
||||||
build[string] = that.loader.langs[lang][string];
|
build[string] = that.loader.langs[lang][string]
|
||||||
}
|
}
|
||||||
|
|
||||||
// the last applied lang will be exposed as the
|
// the last applied lang will be exposed as the
|
||||||
// lang the page was translated to
|
// lang the page was translated to
|
||||||
that.language = lang;
|
that.language = lang
|
||||||
}
|
}
|
||||||
cb(null, build);
|
cb(null, build)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -893,8 +893,8 @@ window.html10n = (function(window, document, undefined) {
|
||||||
* Returns the direction of the language returned be html10n#getLanguage
|
* Returns the direction of the language returned be html10n#getLanguage
|
||||||
*/
|
*/
|
||||||
html10n.getDirection = function() {
|
html10n.getDirection = function() {
|
||||||
var langCode = this.language.indexOf('-') == -1? this.language : this.language.substr(0, this.language.indexOf('-'));
|
var langCode = this.language.indexOf('-') == -1? this.language : this.language.substr(0, this.language.indexOf('-'))
|
||||||
return html10n.rtl.indexOf(langCode) == -1? 'ltr' : 'rtl';
|
return html10n.rtl.indexOf(langCode) == -1? 'ltr' : 'rtl'
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -903,28 +903,28 @@ window.html10n = (function(window, document, undefined) {
|
||||||
html10n.index = function () {
|
html10n.index = function () {
|
||||||
// Find all <link>s
|
// Find all <link>s
|
||||||
var links = document.getElementsByTagName('link')
|
var links = document.getElementsByTagName('link')
|
||||||
, resources = [];
|
, resources = []
|
||||||
for (var i=0, n=links.length; i < n; i++) {
|
for (var i=0, n=links.length; i < n; i++) {
|
||||||
if (links[i].type != 'application/l10n+json')
|
if (links[i].type != 'application/l10n+json')
|
||||||
continue;
|
continue;
|
||||||
resources.push(links[i].href);
|
resources.push(links[i].href)
|
||||||
}
|
}
|
||||||
this.loader = new Loader(resources);
|
this.loader = new Loader(resources)
|
||||||
this.trigger('indexed');
|
this.trigger('indexed')
|
||||||
}
|
}
|
||||||
|
|
||||||
if (document.addEventListener) // modern browsers and IE9+
|
if (document.addEventListener) // modern browsers and IE9+
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
html10n.index();
|
html10n.index()
|
||||||
}, false);
|
}, false)
|
||||||
else if (window.attachEvent)
|
else if (window.attachEvent)
|
||||||
window.attachEvent('onload', function() {
|
window.attachEvent('onload', function() {
|
||||||
html10n.index();
|
html10n.index()
|
||||||
}, false);
|
}, false)
|
||||||
|
|
||||||
// gettext-like shortcut
|
// gettext-like shortcut
|
||||||
if (window._ === undefined)
|
if (window._ === undefined)
|
||||||
window._ = html10n.get;
|
window._ = html10n.get;
|
||||||
|
|
||||||
return html10n;
|
return html10n
|
||||||
})(window, document);
|
})(window, document)
|
|
@ -470,14 +470,6 @@ var pad = {
|
||||||
userAgent: pad.getDisplayUserAgent()
|
userAgent: pad.getDisplayUserAgent()
|
||||||
};
|
};
|
||||||
|
|
||||||
if (clientVars.specialKey)
|
|
||||||
{
|
|
||||||
pad.myUserInfo.specialKey = clientVars.specialKey;
|
|
||||||
if (clientVars.specialKeyTranslation)
|
|
||||||
{
|
|
||||||
$("#specialkeyarea").html("mode: " + String(clientVars.specialKeyTranslation).toUpperCase());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
padimpexp.init(this);
|
padimpexp.init(this);
|
||||||
padsavedrevs.init(this);
|
padsavedrevs.init(this);
|
||||||
|
|
||||||
|
@ -663,8 +655,8 @@ var pad = {
|
||||||
{
|
{
|
||||||
alertBar.displayMessage(function(abar)
|
alertBar.displayMessage(function(abar)
|
||||||
{
|
{
|
||||||
abar.find("#servermsgdate").html(" (" + padutils.simpleDateTime(new Date) + ")");
|
abar.find("#servermsgdate").text(" (" + padutils.simpleDateTime(new Date) + ")");
|
||||||
abar.find("#servermsgtext").html(m.text);
|
abar.find("#servermsgtext").text(m.text);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (m.js)
|
if (m.js)
|
||||||
|
|
|
@ -76,7 +76,6 @@ var padconnectionstatus = (function()
|
||||||
},
|
},
|
||||||
isFullyConnected: function()
|
isFullyConnected: function()
|
||||||
{
|
{
|
||||||
padmodals.hideOverlay();
|
|
||||||
return status.what == 'connected';
|
return status.what == 'connected';
|
||||||
},
|
},
|
||||||
getStatus: function()
|
getStatus: function()
|
||||||
|
|
|
@ -40,22 +40,10 @@ var padmodals = (function()
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
showOverlay: function(duration) {
|
showOverlay: function(duration) {
|
||||||
$("#overlay").show().css(
|
$("#overlay").show();
|
||||||
{
|
|
||||||
'opacity': 0
|
|
||||||
}).animate(
|
|
||||||
{
|
|
||||||
'opacity': 1
|
|
||||||
}, duration);
|
|
||||||
},
|
},
|
||||||
hideOverlay: function(duration) {
|
hideOverlay: function(duration) {
|
||||||
$("#overlay").animate(
|
$("#overlay").hide();
|
||||||
{
|
|
||||||
'opacity': 0
|
|
||||||
}, duration, function()
|
|
||||||
{
|
|
||||||
$("#modaloverlay").hide();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return self;
|
return self;
|
||||||
|
|
|
@ -116,7 +116,7 @@ var paduserlist = (function()
|
||||||
nameHtml = '<input data-l10n-id="pad.userlist.unnamed" type="text" class="editempty newinput" value="'+_('pad.userlist.unnamed')+'" ' + (isNameEditable(data) ? '' : 'disabled="disabled" ') + '/>';
|
nameHtml = '<input data-l10n-id="pad.userlist.unnamed" type="text" class="editempty newinput" value="'+_('pad.userlist.unnamed')+'" ' + (isNameEditable(data) ? '' : 'disabled="disabled" ') + '/>';
|
||||||
}
|
}
|
||||||
|
|
||||||
return ['<td style="height:', height, 'px" class="usertdswatch"><div class="swatch" style="background:' + data.color + '"> </div></td>', '<td style="height:', height, 'px" class="usertdname">', nameHtml, '</td>', '<td style="height:', height, 'px" class="activity">', padutils.escapeHtml(data.activity), '</td>'].join('');
|
return ['<td style="height:', height, 'px" class="usertdswatch"><div class="swatch" style="background:' + padutils.escapeHtml(data.color) + '"> </div></td>', '<td style="height:', height, 'px" class="usertdname">', nameHtml, '</td>', '<td style="height:', height, 'px" class="activity">', padutils.escapeHtml(data.activity), '</td>'].join('');
|
||||||
}
|
}
|
||||||
|
|
||||||
function getRowHtml(id, innerHtml, authorId)
|
function getRowHtml(id, innerHtml, authorId)
|
||||||
|
|
|
@ -43,8 +43,13 @@ describe("bold button", function(){
|
||||||
|
|
||||||
//select this text element
|
//select this text element
|
||||||
$firstTextElement.sendkeys('{selectall}');
|
$firstTextElement.sendkeys('{selectall}');
|
||||||
|
if(inner$.browser.mozilla){ // if it's a mozilla browser
|
||||||
|
var evtType = "keypress";
|
||||||
|
}else{
|
||||||
|
var evtType = "keydown";
|
||||||
|
}
|
||||||
|
|
||||||
var e = inner$.Event("keydown");
|
var e = inner$.Event(evtType);
|
||||||
e.ctrlKey = true; // Control key
|
e.ctrlKey = true; // Control key
|
||||||
e.which = 66; // b
|
e.which = 66; // b
|
||||||
inner$("#innerdocbody").trigger(e);
|
inner$("#innerdocbody").trigger(e);
|
||||||
|
|
|
@ -15,7 +15,13 @@ describe("indentation button", function(){
|
||||||
//select this text element
|
//select this text element
|
||||||
$firstTextElement.sendkeys('{selectall}');
|
$firstTextElement.sendkeys('{selectall}');
|
||||||
|
|
||||||
var e = inner$.Event("keydown");
|
if(inner$.browser.mozilla){ // if it's a mozilla browser
|
||||||
|
var evtType = "keypress";
|
||||||
|
}else{
|
||||||
|
var evtType = "keydown";
|
||||||
|
}
|
||||||
|
|
||||||
|
var e = inner$.Event(evtType);
|
||||||
e.keyCode = 9; // tab :|
|
e.keyCode = 9; // tab :|
|
||||||
inner$("#innerdocbody").trigger(e);
|
inner$("#innerdocbody").trigger(e);
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,13 @@ describe("italic some text", function(){
|
||||||
//select this text element
|
//select this text element
|
||||||
$firstTextElement.sendkeys('{selectall}');
|
$firstTextElement.sendkeys('{selectall}');
|
||||||
|
|
||||||
var e = inner$.Event("keydown");
|
if(inner$.browser.mozilla){ // if it's a mozilla browser
|
||||||
|
var evtType = "keypress";
|
||||||
|
}else{
|
||||||
|
var evtType = "keydown";
|
||||||
|
}
|
||||||
|
|
||||||
|
var e = inner$.Event(evtType);
|
||||||
e.ctrlKey = true; // Control key
|
e.ctrlKey = true; // Control key
|
||||||
e.which = 105; // i
|
e.which = 105; // i
|
||||||
inner$("#innerdocbody").trigger(e);
|
inner$("#innerdocbody").trigger(e);
|
||||||
|
|
|
@ -47,12 +47,18 @@ describe("undo button then redo button", function(){
|
||||||
var modifiedValue = $firstTextElement.text(); // get the modified value
|
var modifiedValue = $firstTextElement.text(); // get the modified value
|
||||||
expect(modifiedValue).not.to.be(originalValue); // expect the value to change
|
expect(modifiedValue).not.to.be(originalValue); // expect the value to change
|
||||||
|
|
||||||
var e = inner$.Event("keydown");
|
if(inner$.browser.mozilla){ // if it's a mozilla browser
|
||||||
|
var evtType = "keypress";
|
||||||
|
}else{
|
||||||
|
var evtType = "keydown";
|
||||||
|
}
|
||||||
|
|
||||||
|
var e = inner$.Event(evtType);
|
||||||
e.ctrlKey = true; // Control key
|
e.ctrlKey = true; // Control key
|
||||||
e.which = 90; // z
|
e.which = 90; // z
|
||||||
inner$("#innerdocbody").trigger(e);
|
inner$("#innerdocbody").trigger(e);
|
||||||
|
|
||||||
var e = inner$.Event("keydown");
|
var e = inner$.Event(evtType);
|
||||||
e.ctrlKey = true; // Control key
|
e.ctrlKey = true; // Control key
|
||||||
e.which = 121; // y
|
e.which = 121; // y
|
||||||
inner$("#innerdocbody").trigger(e);
|
inner$("#innerdocbody").trigger(e);
|
||||||
|
|
|
@ -44,7 +44,13 @@ describe("undo button", function(){
|
||||||
var modifiedValue = $firstTextElement.text(); // get the modified value
|
var modifiedValue = $firstTextElement.text(); // get the modified value
|
||||||
expect(modifiedValue).not.to.be(originalValue); // expect the value to change
|
expect(modifiedValue).not.to.be(originalValue); // expect the value to change
|
||||||
|
|
||||||
var e = inner$.Event("keydown");
|
if(inner$.browser.mozilla){ // if it's a mozilla browser
|
||||||
|
var evtType = "keypress";
|
||||||
|
}else{
|
||||||
|
var evtType = "keydown";
|
||||||
|
}
|
||||||
|
|
||||||
|
var e = inner$.Event(evtType);
|
||||||
e.ctrlKey = true; // Control key
|
e.ctrlKey = true; // Control key
|
||||||
e.which = 90; // z
|
e.which = 90; // z
|
||||||
inner$("#innerdocbody").trigger(e);
|
inner$("#innerdocbody").trigger(e);
|
||||||
|
|
Loading…
Reference in a new issue