mirror of
https://github.com/YunoHost-Apps/etherpad_ynh.git
synced 2024-09-03 18:36:10 +02:00
first commit
This commit is contained in:
commit
be32aeeab7
303 changed files with 59009 additions and 0 deletions
44
manifest.json
Normal file
44
manifest.json
Normal file
|
@ -0,0 +1,44 @@
|
|||
{
|
||||
"name": "Etherpad Lite",
|
||||
"id": "etherpadlite",
|
||||
"description": {
|
||||
"en": "online editor providing collaborative editing in really real-time",
|
||||
},
|
||||
"developer": {
|
||||
"name": "beudbeud",
|
||||
"email": "beudbeud@beudibox.fr",
|
||||
"url": "http://etherpad.org/"
|
||||
},
|
||||
"multi_instance": "true",
|
||||
"arguments": {
|
||||
"install" : [
|
||||
{
|
||||
"name": "domain",
|
||||
"ask": {
|
||||
"en": "Choose a domain for Etherpad"
|
||||
},
|
||||
"example": "domain.org"
|
||||
},
|
||||
{
|
||||
"name": "path",
|
||||
"ask": {
|
||||
"en": "Choose a path for Etherpad"
|
||||
},
|
||||
"example": "/pad",
|
||||
"default": "/pad"
|
||||
},
|
||||
{
|
||||
"name": "public_site",
|
||||
"ask": {
|
||||
"en": "Is it a public Etherpad ?"
|
||||
},
|
||||
"choices": ["Yes", "No"],
|
||||
"default": "Yes"
|
||||
}
|
||||
|
||||
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
|
38
scripts/install
Normal file
38
scripts/install
Normal file
|
@ -0,0 +1,38 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Retrieve arguments
|
||||
domain=$1
|
||||
path=$2
|
||||
is_public=$3
|
||||
|
||||
# Check domain/path availability
|
||||
sudo yunohost app checkurl $domain$path -a etherpadlite
|
||||
if [[ ! $? -eq 0 ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Install dependances
|
||||
apt-get install nodejs npm -y
|
||||
|
||||
# Copy files to the right place
|
||||
final_path=/var/www/etherpadlite
|
||||
sudo mkdir -p $final_path
|
||||
sudo cp -a ../sources/* $final_path
|
||||
|
||||
# Set permissions to roundcube directory
|
||||
sudo chown -R www-data: $final_path
|
||||
|
||||
#
|
||||
|
||||
# Modify Nginx configuration file and copy it to Nginx conf directory
|
||||
sed -i "s@PATHTOCHANGE@$path@g" ../conf/nginx.conf*
|
||||
sed -i "s@ALIASTOCHANGE@$final_path/@g" ../conf/nginx.conf*
|
||||
sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/etherpadlite.conf
|
||||
|
||||
# Reload Nginx and regenerate SSOwat conf
|
||||
sudo service nginx reload
|
||||
if [ $is_public = "Yes" ];
|
||||
then
|
||||
sudo yunohost app setting etherpadlite skipped_uris -v "/"
|
||||
fi
|
||||
sudo yunohost app ssowatconf
|
6
scripts/remove
Normal file
6
scripts/remove
Normal file
|
@ -0,0 +1,6 @@
|
|||
#!/bin/bash
|
||||
|
||||
sudo rm -rf /var/www/etherpadlite
|
||||
sudo rm -f /etc/nginx/conf.d/$domain.d/etherpadlite.conf
|
||||
|
||||
|
3
scripts/upgrade
Normal file
3
scripts/upgrade
Normal file
|
@ -0,0 +1,3 @@
|
|||
#!/bin/bash
|
||||
|
||||
#TODO
|
17
sources/.gitignore
vendored
Normal file
17
sources/.gitignore
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
node_modules
|
||||
settings.json
|
||||
!settings.json.template
|
||||
APIKEY.txt
|
||||
bin/abiword.exe
|
||||
bin/node.exe
|
||||
etherpad-lite-win.zip
|
||||
var/dirty.db
|
||||
bin/convertSettings.json
|
||||
*~
|
||||
*.patch
|
||||
src/static/js/jquery.js
|
||||
npm-debug.log
|
||||
*.DS_Store
|
||||
.ep_initialized
|
||||
*.crt
|
||||
*.key
|
20
sources/.travis.yml
Normal file
20
sources/.travis.yml
Normal file
|
@ -0,0 +1,20 @@
|
|||
language: node_js
|
||||
node_js:
|
||||
- "0.10"
|
||||
install:
|
||||
- "bin/installDeps.sh"
|
||||
- "export GIT_HASH=$(cat .git/HEAD | head -c 7)"
|
||||
before_script:
|
||||
- "tests/frontend/travis/sauce_tunnel.sh"
|
||||
script:
|
||||
- "tests/frontend/travis/runner.sh"
|
||||
env:
|
||||
global:
|
||||
- secure: "WMGxFkOeTTlhWB+ChMucRtIqVmMbwzYdNHuHQjKCcj8HBEPdZLfCuK/kf4rG\nVLcLQiIsyllqzNhBGVHG1nyqWr0/LTm8JRqSCDDVIhpyzp9KpCJQQJG2Uwjk\n6/HIJJh/wbxsEdLNV2crYU/EiVO3A4Bq0YTHUlbhUqG3mSCr5Ec="
|
||||
- secure: "gejXUAHYscbR6Bodw35XexpToqWkv2ifeECsbeEmjaLkYzXmUUNWJGknKSu7\nEUsSfQV8w+hxApr1Z+jNqk9aX3K1I4btL3cwk2trnNI8XRAvu1c1Iv60eerI\nkE82Rsd5lwUaMEh+/HoL8ztFCZamVndoNgX7HWp5J/NRZZMmh4g="
|
||||
jdk:
|
||||
- oraclejdk6
|
||||
notifications:
|
||||
irc:
|
||||
channels:
|
||||
- "irc.freenode.org#etherpad-lite-dev"
|
258
sources/CHANGELOG.md
Normal file
258
sources/CHANGELOG.md
Normal file
|
@ -0,0 +1,258 @@
|
|||
# 1.3
|
||||
* NEW: We now follow the semantic versioning scheme!
|
||||
* NEW: Option to disable IP logging
|
||||
* NEW: Localisation updates from http://translatewiki.net.
|
||||
* Fix: Fix readOnly group pads
|
||||
* Fix: don't fetch padList on every request
|
||||
|
||||
# 1.2.12
|
||||
* NEW: Add explanations for more disconnect scenarios
|
||||
* NEW: export sessioninfos so plugins can access it
|
||||
* NEW: pass pad in postAceInit hook
|
||||
* NEW: Add trustProxy setting. ALlows to make ep use X-forwarded-for as remoteAddress
|
||||
* NEW: userLeave hook (UNDOCUMENTED)
|
||||
* NEW: Plural macro for translations
|
||||
* NEW: backlinks to main page in Admin pages
|
||||
* NEW: New translations from translatewiki.net
|
||||
* SECURITY FIX: Filter author data sent to clients
|
||||
* FIX: Never keep processing a changeset if it's corrupted
|
||||
* FIX: Some client-side performance fixes for webkit browsers
|
||||
* FIX: Only execute listAllPads query on demand (not on start-up)
|
||||
* FIX: HTML import (don't crash on malformed or blank HTML input; strip title out of html during import)
|
||||
* FIX: check if uploaded file only contains ascii chars when abiword disabled
|
||||
* FIX: Plugin search in /admin/plugins
|
||||
* FIX: Don't create new pad if a non-existant read-only pad is accessed
|
||||
* FIX: Drop messages from unknown connections (would lead to a crash after a restart)
|
||||
* FIX: API: fix createGroupFor endpoint, if mapped group is deleted
|
||||
* FIX: Import form for other locales
|
||||
* FIX: Don't stop processing changeset queue if there is an error
|
||||
* FIX: Caret movement. Chrome detects blank rows line heights as incorrect
|
||||
* FIX: allow colons in password
|
||||
* FIX: Polish logging of client-side errors on the server
|
||||
* FIX: Username url param
|
||||
* FIX: Make start script POSIX ompatible
|
||||
|
||||
|
||||
# 1.2.11
|
||||
* NEW: New Hook for outer_ace dynamic css manager and author style hook
|
||||
* NEW: Bump log4js for improved logging
|
||||
* Fix: Remove URL schemes which don't have RFC standard
|
||||
* Fix: Fix safeRun subsequent restarts issue
|
||||
* Fix: Allow safeRun to pass arguements to run.sh
|
||||
* Fix: Include script for more efficient import
|
||||
* Fix: Fix sysv comptibile script
|
||||
* Fix: Fix client side changeset spamming
|
||||
* Fix: Don't crash on no-auth
|
||||
* Fix: Fix some IE8 errors
|
||||
* Fix: Fix authorship sanitation
|
||||
|
||||
# 1.2.10
|
||||
* NEW: Broadcast slider is exposed in timeslider so plugins can interact with it
|
||||
* Fix: IE issue where pads wouldn't load due to missing console from i18n
|
||||
* Fix: console issue in collab client would error on cross domain embeds in IE
|
||||
* Fix: Only Restart Etherpad once plugin is installed
|
||||
* Fix: Only redraw lines that exist after drag and drop
|
||||
* Fix: Pasting into ordered list
|
||||
* Fix: Import browser detection
|
||||
* Fix: 2 Part Locale Specs
|
||||
* Fix: Remove language string from chat element
|
||||
* Fix: Make Saved revision Star fade back out on non Top frames
|
||||
* Other: Remove some cruft legacy JS from old Etherpad
|
||||
* Other: Express 3.1.2 breaks sessions, set Express to 3.1.0
|
||||
|
||||
# 1.2.91
|
||||
* NEW: Authors can now send custom object messages to other Authors making 3 way conversations possible. This introduces WebRTC plugin support.
|
||||
* NEW: Hook for Chat Messages Allows for Desktop Notification support
|
||||
* NEW: FreeBSD installation docs
|
||||
* NEW: Ctrl S for save revision makes the Icon glow for a few sconds.
|
||||
* NEW: Various hooks and expose the document ACE object
|
||||
* NEW: Plugin page revamp makes finding and installing plugins more sane.
|
||||
* NEW: Icon to enable sticky chat from the Chat box
|
||||
* Fix: Cookies inside of plugins
|
||||
* Fix: Don't leak event emitters when accessing admin/plugins
|
||||
* Fix: Don't allow user to send messages after they have been "kicked" from a pad
|
||||
* Fix: Refactor Caret navigation with Arrow and Pageup/down keys stops cursor being lost
|
||||
* Fix: Long lines in Firefox now wrap properly
|
||||
* Fix: Session Disconnect limit is increased from 10 to 20 to support slower restarts
|
||||
* Fix: Support Node 0.10
|
||||
* Fix: Log HTTP on DEBUG log level
|
||||
* Fix: Server wont crash on import fails on 0 file import.
|
||||
* Fix: Import no longer fails consistantly
|
||||
* Fix: Language support for non existing languages
|
||||
* Fix: Mobile support for chat notifications are now usable
|
||||
* Fix: Re-Enable Editbar buttons on reconnect
|
||||
* Fix: Clearing authorship colors no longer disconnects all clients
|
||||
* Other: New debug information for sessions
|
||||
|
||||
# 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
|
||||
* Fix: CtrlZ-Y for Undo Redo
|
||||
* Fix: RTL functionality on contents & fix RTL/LTR tests and RTL in Safari
|
||||
* Fix: Various other tests fixed in Android
|
||||
|
||||
# 1.2.8
|
||||
! IMPORTANT: New setting.json value is required to automatically reconnect clients on disconnect
|
||||
* NEW: Use Socket IO for rooms (allows for pads to be load balanced with sticky rooms)
|
||||
* NEW: Plugins can now provide their own frontend tests
|
||||
* NEW: Improved server-side logging
|
||||
* NEW: Admin dashboard mobile device support and new hooks for Admin dashboard
|
||||
* NEW: Get current API version from API
|
||||
* NEW: CLI script to delete pads
|
||||
* Fix: Automatic client reconnection on disonnect
|
||||
* Fix: Text Export indentation now supports multiple indentations
|
||||
* Fix: Bugfix getChatHistory API method
|
||||
* Fix: Stop Chrome losing caret after paste is texted
|
||||
* Fix: Make colons on end of line create 4 spaces on indent
|
||||
* Fix: Stop the client disconnecting if a rev is in the wrong order
|
||||
* Fix: Various server crash issues based on rev in wrong order
|
||||
* Fix: Various tests
|
||||
* Fix: Make indent when on middle of the line stop creating list
|
||||
* Fix: Stop long strings breaking the UX by moving focus away from beginning of line
|
||||
* Fix: Redis findKeys support
|
||||
* Fix: padUsersCount no longer hangs server
|
||||
* Fix: Issue with two part locale specs not working
|
||||
* Fix: Make plugin search case insensitive
|
||||
* Fix: Indentation and bullets on text export
|
||||
* Fix: Resolve various warnings on dependencies during install
|
||||
* Fix: Page up / Page down now works in all browsers
|
||||
* Fix: Stop Opera browser inserting two new lines on enter keypress
|
||||
* Fix: Stop timeslider from showing NaN on pads with only one revision
|
||||
* Other: Allow timeslider tests to run and provide & fix various other frontend-tests
|
||||
* Other: Begin dropping referene to Lite. Etherpad Lite is now named "Etherpad"
|
||||
* Other: Update to latest jQuery
|
||||
* Other: Change loading message asking user to please wait on first build
|
||||
* Other: Allow etherpad to use global npm installation (Safe since node 6.3)
|
||||
* Other: Better documentation for log rotation and log message handling
|
||||
|
||||
|
||||
|
||||
# 1.2.7
|
||||
* NEW: notifications are now modularized and can be stacked
|
||||
* NEW: Visit a specific revision in the timeslider by suffixing #%revNumber% IE http://localhost/p/test/timeslider#12
|
||||
* NEW: Link to plugin on Admin page allows admins to easily see plugin details in a new window by clicking on the plugin name
|
||||
* NEW: Automatically see plugins that require update and be able to one click update
|
||||
* NEW: API endpoints for Chat .. getChatHistory, getChatHead
|
||||
* NEW: API endpoint to see a pad diff in HTML format from revision x to revision y .. createPadDiffHTML
|
||||
* NEW: Real time plugin search & unified menu UI for admin pages
|
||||
* Fix: MAJOR issue where server could be crashed by malformed client message
|
||||
* Fix: AuthorID is now included in padUsers API response
|
||||
* Fix: make docs
|
||||
* Fix: Timeslider UI bug with slider not being in position
|
||||
* Fix: IE8 language issue where it wouldn't load pads due to IE8 suckling on the bussum of hatrid
|
||||
* Fix: Import timeout issue
|
||||
* Fix: Import now works if Params are set in pad URL
|
||||
* Fix: Convert script
|
||||
* Other: Various new language strings and update/bugfixes of others
|
||||
* Other: Clean up the getParams functionality
|
||||
* Other: Various new EEJS blocks: index, timeslider, html etc.
|
||||
|
||||
# 1.2.6
|
||||
* Fix: Package file UeberDB reference
|
||||
* New #users EEJS block for plugins
|
||||
|
||||
# 1.2.5
|
||||
* Create timeslider EEJS blocks for plugins
|
||||
* Allow for "more messages" to be loaded in chat
|
||||
* Introduce better logging
|
||||
* API endpoint for "listAllPads"
|
||||
* Fix: Stop highlight of timeslider when dragging mouse
|
||||
* Fix: Time Delta on Timeslider make date update properly
|
||||
* Fix: Prevent empty chat messages from being sent
|
||||
* Fix: checkPad script
|
||||
* Fix: IE onLoad listener for i18n
|
||||
|
||||
# 1.2.4
|
||||
* Fix IE console issue created in 1.2.3
|
||||
* Allow CI Tests to pass by ignoring timeslider test
|
||||
* Fix broken placeholders in locales
|
||||
* Fix extractPadData script
|
||||
* Fix documentation for checkToken
|
||||
* Fix hitting enter on form in admin/plugins
|
||||
|
||||
# 1.2.3
|
||||
* Fix #1307: Chrome needs console.log to be called on console obj
|
||||
* Fix #1309: We had broken support for node v0.6 in the last release
|
||||
|
||||
# 1.2.2
|
||||
* More translations and better language support. See https://translatewiki.net/wiki/Translating:Etherpad_lite for more details
|
||||
* Add a checkToken Method to the API
|
||||
* Bugfix for Internal Caching issue that was causing some 404s on images.
|
||||
* Bugfix for IE Import
|
||||
* Bugfix for Node 0.6 compatibility
|
||||
* Bugfix for multiple cookie support
|
||||
* Bugfix for API when requireAuth is enabled.
|
||||
* Plugin page now shows plugin version #
|
||||
* Show color of Author in Chat messages
|
||||
* Allow plugin search by description
|
||||
* Allow for different socket IO transports
|
||||
* Allow for custom favicon path
|
||||
* Control S now does Create new Revision functionality
|
||||
* Focus on password when required
|
||||
* Frontend Timeslider test
|
||||
* Allow for basic HTML etc. import without abiword
|
||||
* Native HTTPS support
|
||||
|
||||
# 1.2.1
|
||||
* Allow ! in urls inside the editor (Not Pad urls)
|
||||
* Allow comments in language files
|
||||
* More languages (Finish, Spanish, Bengali, Dutch) Thanks to TranslateWiki.net team. See https://translatewiki.net/w/i.php?title=Special:MessageGroupStats&group=out-etherpad-lite for more details
|
||||
* Bugfix for IE7/8 issue with a JS error #1186
|
||||
* Bugfix windows package extraction issue and make the .zip file smaller
|
||||
* Bugfix group pad API export
|
||||
* Kristen Stewart is a terrible actress and Twilight sucks.
|
||||
|
||||
# v1.2
|
||||
* Internationalization / Language / Translation support (i18n) with support for German/French
|
||||
* A frontend/client side testing framework and backend build tests
|
||||
* Customizable robots.txt
|
||||
* Customizable app title (finally you can name your epl instance!)
|
||||
* eejs render arguments are now passed on to eejs hooks through the newly introduced `renderContext` argument.
|
||||
* Plugin-specific settings in settings.json (finally allowing for things like a google analytics plugin)
|
||||
* Serve admin dashboard at /admin (still very limited, though)
|
||||
* Modify your settings.json through the newly created UI at /admin/settings
|
||||
* Fix: Import <ol>'s as <ol>'s and not as <ul>'s!
|
||||
* Added solaris compatibility (bin/installDeps.sh was broken on solaris)
|
||||
* Fix a bug with IE9 and Password Protected Pads using HTTPS
|
||||
|
||||
# v1.1.5
|
||||
* We updated to express v3 (please [make sure](https://github.com/visionmedia/express/wiki/Migrating-from-2.x-to-3.x) your plugin works under express v3)
|
||||
* `userColor` URL parameter which sets the initial author color
|
||||
* Hooks for "padCreate", "padRemove", "padUpdate" and "padLoad" events
|
||||
* Security patches concerning the handling of messages originating from clients
|
||||
* Our database abstraction layer now natively supports couchDB, levelDB, mongoDB, postgres, and redis!
|
||||
* We now provide a script helping you to migrate from dirtyDB to MySQL
|
||||
* Support running Etherpad Lite behind IIS, using [iisnode](https://github.com/tjanczuk/iisnode/wiki)
|
||||
* LibreJS Licensing information in headers of HTML templates
|
||||
* Default port number to PORT env var, if port isn't specified in settings
|
||||
* Fix for `convert.js`
|
||||
* Raise upper char limit in chat to 999 characters
|
||||
* Fixes for mobile layout
|
||||
* Fixes for usage behind reverse proxy
|
||||
* Improved documentation
|
||||
* Fixed some opera style bugs
|
||||
* Update npm and fix some bugs, this introduces
|
||||
|
||||
# v1.1
|
||||
* Introduced Plugin framework
|
||||
* Many bugfixes
|
||||
* Faster page loading
|
||||
* Various UI polishes
|
||||
* Saved Revisions
|
||||
* Read only Real time view
|
||||
* More API functionality
|
||||
|
||||
# v 1.0.1
|
||||
|
||||
* Updated MySQL driver, this fixes some problems with mysql
|
||||
* Fixed export,import and timeslider link when embed parameters are used
|
68
sources/CONTRIBUTING.md
Normal file
68
sources/CONTRIBUTING.md
Normal file
|
@ -0,0 +1,68 @@
|
|||
# Developer Guidelines
|
||||
(Please talk to people on the mailing list before you change this page, see our section on [how to get in touch](https://github.com/ether/etherpad-lite#get-in-touch))
|
||||
|
||||
## Important note for pull requests
|
||||
**Pull requests should be issued against the develop branch**. We never pull directly into master.
|
||||
|
||||
**Our goal is to iterate in small steps. Release often, release early. Evolution instead of a revolution**
|
||||
|
||||
## General goals of Etherpad
|
||||
To make sure everybody is going in the same direction:
|
||||
* easy to install for admins and easy to use for people
|
||||
* easy to integrate into other apps, but also usable as standalone
|
||||
* 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.
|
||||
Also, keep it maintainable. We don't wanna end up as the monster Etherpad was!
|
||||
|
||||
## How to work with git?
|
||||
* Don't work in your master branch.
|
||||
* Make a new branch for every feature you're working on. (This ensures that you can work you can do lots of small, independent pull requests instead of one big one with complete different features)
|
||||
* Don't use the online edit function of github (this only creates ugly and not working commits!)
|
||||
* Try to make clean commits that are easy readable (including descriptive commit messages!)
|
||||
* Test before you push. Sounds easy, it isn't!
|
||||
* Don't check in stuff that gets generated during build or runtime
|
||||
* Make small pull requests that are easy to review but make sure they do add value by themselves / individually
|
||||
|
||||
## Coding style
|
||||
* Do write comments. (You don't have to comment every line, but if you come up with something thats a bit complex/weird, just leave a comment. Bear in mind that you will probably leave the project at some point and that other people will read your code. Undocumented huge amounts of code are worthless!)
|
||||
* Never ever use tabs
|
||||
* Indentation: JS/CSS: 2 spaces; HTML: 4 spaces
|
||||
* Don't overengineer. Don't try to solve any possible problem in one step, but try to solve problems as easy as possible and improve the solution over time!
|
||||
* Do generalize sooner or later! (if an old solution, quickly hacked together, poses more problems than it solves today, refactor it!)
|
||||
* Keep it compatible. Do not introduce changes to the public API, db schema or configurations too lightly. Don't make incompatible changes without good reasons!
|
||||
* If you do make changes, document them! (see below)
|
||||
|
||||
## Branching model / git workflow
|
||||
see git flow http://nvie.com/posts/a-successful-git-branching-model/
|
||||
|
||||
### `master` branch
|
||||
* the stable
|
||||
* This is the branch everyone should use for production stuff
|
||||
|
||||
### `develop`branch
|
||||
* everything that is READY to go into master at some point in time
|
||||
* This stuff is tested and ready to go out
|
||||
|
||||
### release branches
|
||||
* stuff that should go into master very soon
|
||||
* only bugfixes go into these (see http://nvie.com/posts/a-successful-git-branching-model/ for why)
|
||||
* we should not be blocking new features to develop, just because we feel that we should be releasing it to master soon. This is the situation that release branches solve/handle.
|
||||
|
||||
### hotfix branches
|
||||
* fixes for bugs in master
|
||||
|
||||
### feature branches (in your own repos)
|
||||
* these are the branches where you develop your features in
|
||||
* If its ready to go out, it will be merged into develop
|
||||
|
||||
Over the time we pull features from feature branches into the develop branch. Every month we pull from develop into master. Bugs in master get fixed in hotfix branches. These branches will get merged into master AND develop. There should never be commits in master that aren't in develop
|
||||
|
||||
## Documentation
|
||||
The docs are in the `doc/` folder in the git repository, so people can easily find the suitable docs for the current git revision.
|
||||
|
||||
Documentation should be kept up-to-date. This means, whenever you add a new API method, add a new hook or change the database model, pack the relevant changes to the docs in the same pull request.
|
||||
|
||||
You can build the docs e.g. produce html, using `make docs`. At some point in the future we will provide an online documentation. The current documentation in the github wiki should always reflect the state of `master` (!), since there are no docs in master, yet.
|
||||
|
||||
## Testing
|
||||
Front-end tests are found in the `tests/frontend/` folder in the repository. Run them by pointing your browser to `<yourdomainhere>/tests/frontend`.
|
201
sources/LICENSE
Normal file
201
sources/LICENSE
Normal file
|
@ -0,0 +1,201 @@
|
|||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright 2013 THE ETHERPAD FOUNDATION
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
25
sources/Makefile
Normal file
25
sources/Makefile
Normal file
|
@ -0,0 +1,25 @@
|
|||
doc_sources = $(wildcard doc/*/*.md) $(wildcard doc/*.md)
|
||||
outdoc_files = $(addprefix out/,$(doc_sources:.md=.html))
|
||||
|
||||
docassets = $(addprefix out/,$(wildcard doc/assets/*))
|
||||
|
||||
VERSION = $(shell node -e "console.log( require('./src/package.json').version )")
|
||||
UNAME := $(shell uname -s)
|
||||
|
||||
docs: $(outdoc_files) $(docassets)
|
||||
|
||||
out/doc/assets/%: doc/assets/%
|
||||
mkdir -p $(@D)
|
||||
cp $< $@
|
||||
|
||||
out/doc/%.html: doc/%.md
|
||||
mkdir -p $(@D)
|
||||
node tools/doc/generate.js --format=html --template=doc/template.html $< > $@
|
||||
ifeq ($(UNAME),Darwin)
|
||||
sed -i '' 's/__VERSION__/${VERSION}/' $@
|
||||
else
|
||||
sed -i 's/__VERSION__/${VERSION}/' $@
|
||||
endif
|
||||
|
||||
clean:
|
||||
rm -rf out/
|
115
sources/README.md
Normal file
115
sources/README.md
Normal file
|
@ -0,0 +1,115 @@
|
|||
# A really-real time collaborative word processor for the web
|
||||
![alt text](http://i.imgur.com/zYrGkg3.gif "Etherpad in action on PrimaryPad")
|
||||
|
||||
# About
|
||||
Etherpad is a really-real time collaborative editor maintained by the Etherpad Community.
|
||||
|
||||
Etherpad is written in Javascript(99.9%) on both the server and client so it's easy for developers to maintain and add new features. Because of this Etherpad has tons of customizations that you can leverage.
|
||||
|
||||
Etherpad is designed to be easily embeddable and provides a [HTTP API](https://github.com/ether/etherpad-lite/wiki/HTTP-API)
|
||||
that allows your web application to manage pads, users and groups. It is recommended to use the [available client implementations](https://github.com/ether/etherpad-lite/wiki/HTTP-API-client-libraries) in order to interact with this API.
|
||||
|
||||
There is also a [jQuery plugin](https://github.com/ether/etherpad-lite-jquery-plugin) that helps you to embed Pads into your website.
|
||||
|
||||
There's also a full-featured plugin framework, allowing you to easily add your own features. By default your Etherpad is rather sparce and because Etherpad takes a lot of it's inspiration from Wordpress plugins are really easy to install and update. Once you have Etherpad installed you should visit the plugin page and take control.
|
||||
|
||||
Finally, Etherpad comes with translations into most languages! Users are automatically delivered the correct language for their local settings.
|
||||
|
||||
|
||||
**Visit [beta.etherpad.org](http://beta.etherpad.org) to test it live.**
|
||||
|
||||
Also, check out the **[FAQ](https://github.com/ether/etherpad-lite/wiki/FAQ)**, really!
|
||||
|
||||
# Installation
|
||||
|
||||
Etherpad works with node v0.8 and v0.10, only. (We don't support v0.6)
|
||||
|
||||
## Windows
|
||||
|
||||
### Prebuilt windows package
|
||||
This package works out of the box on any windows machine, but it's not very useful for developing purposes...
|
||||
|
||||
1. [Download the latest windows package](http://etherpad.org/downloads/etherpad-lite-win-1.2.91-7492fb18a4.zip)
|
||||
2. Extract the folder
|
||||
|
||||
Now, run `start.bat` and open <http://localhost:9001> in your browser. You like it? [Next steps](#next-steps).
|
||||
|
||||
### Fancy install
|
||||
You'll need [node.js](http://nodejs.org) and (optionally, though recommended) git.
|
||||
|
||||
1. Grab the source, either
|
||||
- download <https://github.com/ether/etherpad-lite/zipball/master>
|
||||
- or `git clone https://github.com/ether/etherpad-lite.git` (for this you need git, obviously)
|
||||
2. start `bin\installOnWindows.bat`
|
||||
|
||||
Now, run `start.bat` and open <http://localhost:9001> in your browser.
|
||||
|
||||
Update to the latest version with `git pull origin`, then run `bin\installOnWindows.bat`, again.
|
||||
|
||||
[Next steps](#next-steps).
|
||||
|
||||
## GNU/Linux and other UNIX-like systems
|
||||
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 Fedora/CentOS*: `yum install gzip git-core curl python openssl-devel && yum groupinstall "Development Tools"`
|
||||
*For FreeBSD*: `portinstall node, npm, git (optional)`
|
||||
|
||||
Additionally, you'll need [node.js](http://nodejs.org) installed, Ideally the latest stable version, be careful of installing nodejs from apt.
|
||||
|
||||
**As any user (we recommend creating a separate user called etherpad):**
|
||||
|
||||
1. Move to a folder where you want to install Etherpad. Clone the git repository `git clone git://github.com/ether/etherpad-lite.git`
|
||||
2. Change into the new directory containing the cloned source code `cd etherpad-lite`
|
||||
|
||||
Now, run `bin/run.sh` and open <http://127.0.0.1:9001> in your browser.
|
||||
|
||||
Update to the latest version with `git pull origin`. The next start with bin/run.sh will update the dependencies.
|
||||
|
||||
You like it? [Next steps](#next-steps).
|
||||
|
||||
# Next Steps
|
||||
|
||||
## Tweak the settings
|
||||
You can initially modify the settings in `settings.json`. (If you need to handle multiple settings files, you can pass the path to a settings file to `bin/run.sh` using the `-s|--settings` option. This allows you to run multiple Etherpad instances from the same installation.) Once you have access to your /admin section settings can be modified through the web browser.
|
||||
|
||||
You should use a dedicated database such as "mysql", if you are planning on using etherpad-in a production environment, since the "dirtyDB" database driver is only for testing and/or development purposes.
|
||||
|
||||
## Helpful resources
|
||||
The [wiki](https://github.com/ether/etherpad-lite/wiki) is your one-stop resource for Tutorials and How-to's, really check it out! Also, feel free to improve these wiki pages.
|
||||
|
||||
Documentation can be found in `docs/`.
|
||||
|
||||
# Development
|
||||
|
||||
## Things you should know
|
||||
Read this [git guide](http://learn.github.com/p/index.html) and watch this [video on getting started with Etherpad Development](http://youtu.be/67-Q26YH97E).
|
||||
|
||||
If you're new to node.js, start with Ryan Dahl's [Introduction to Node.js](http://youtu.be/jo_B4LTHi3I).
|
||||
|
||||
You can debug Etherpad using `bin/debugRun.sh`.
|
||||
|
||||
If you want to find out how Etherpad's `Easysync` works (the library that makes it really realtime), start with this [PDF](https://github.com/ether/etherpad-lite/raw/master/doc/easysync/easysync-full-description.pdf) (complex, but worth reading).
|
||||
|
||||
## Getting started
|
||||
You know all this and just want to know how you can help?
|
||||
|
||||
Look at the [TODO list](https://github.com/ether/etherpad-lite/wiki/TODO) and our [Issue tracker](https://github.com/ether/etherpad-lite/issues). (Please consider using [jshint](http://www.jshint.com/about/), if you plan to contribute code.)
|
||||
|
||||
Also, and most importantly, read our [**Developer Guidelines**](https://github.com/ether/etherpad-lite/blob/master/CONTRIBUTING.md), really!
|
||||
|
||||
# Get in touch
|
||||
Join the [mailinglist](http://groups.google.com/group/etherpad-lite-dev) and make some noise on our busy freenode irc channel [#etherpad-lite-dev](http://webchat.freenode.net?channels=#etherpad-lite-dev)!
|
||||
|
||||
# Modules created for this project
|
||||
|
||||
* [ueberDB](https://github.com/Pita/ueberDB) "transforms every database into a object key value store" - manages all database access
|
||||
* [channels](https://github.com/Pita/channels) "Event channels in node.js" - ensures that ueberDB operations are atomic and in series for each key
|
||||
* [async-stacktrace](https://github.com/Pita/async-stacktrace) "Improves node.js stacktraces and makes it easier to handle errors"
|
||||
|
||||
# Donate!
|
||||
* [Flattr] (http://flattr.com/thing/71378/Etherpad-Foundation)
|
||||
* Paypal - Press the donate button on [etherpad.org](http://etherpad.org)
|
||||
* [Bitcoin] (https://coinbase.com/checkouts/1e572bf8a82e4663499f7f1f66c2d15a)
|
||||
|
||||
# License
|
||||
[Apache License v2](http://www.apache.org/licenses/LICENSE-2.0.html)
|
70
sources/bin/buildForWindows.sh
Executable file
70
sources/bin/buildForWindows.sh
Executable file
|
@ -0,0 +1,70 @@
|
|||
#!/bin/sh
|
||||
|
||||
NODE_VERSION="0.8.4"
|
||||
|
||||
#Move to the folder where ep-lite is installed
|
||||
cd `dirname $0`
|
||||
|
||||
#Was this script started in the bin folder? if yes move out
|
||||
if [ -d "../bin" ]; then
|
||||
cd "../"
|
||||
fi
|
||||
|
||||
#Is wget installed?
|
||||
hash wget > /dev/null 2>&1 || {
|
||||
echo "Please install wget" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
#Is zip installed?
|
||||
hash zip > /dev/null 2>&1 || {
|
||||
echo "Please install zip" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
#Is zip installed?
|
||||
hash unzip > /dev/null 2>&1 || {
|
||||
echo "Please install unzip" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
START_FOLDER=$(pwd);
|
||||
|
||||
echo "create a clean environment in /tmp/etherpad-lite-win..."
|
||||
rm -rf /tmp/etherpad-lite-win
|
||||
cp -ar . /tmp/etherpad-lite-win
|
||||
cd /tmp/etherpad-lite-win
|
||||
rm -rf node_modules
|
||||
rm -f etherpad-lite-win.zip
|
||||
|
||||
echo "do a normal unix install first..."
|
||||
bin/installDeps.sh || exit 1
|
||||
|
||||
echo "copy the windows settings template..."
|
||||
cp settings.json.template settings.json
|
||||
|
||||
echo "resolve symbolic links..."
|
||||
cp -rL node_modules node_modules_resolved
|
||||
rm -rf node_modules
|
||||
mv node_modules_resolved node_modules
|
||||
|
||||
echo "download windows node..."
|
||||
cd bin
|
||||
wget "http://nodejs.org/dist/v$NODE_VERSION/node.exe" -O ../node.exe
|
||||
|
||||
echo "remove git history to reduce folder size"
|
||||
rm -rf .git/objects
|
||||
|
||||
echo "remove windows jsdom-nocontextify/test folder"
|
||||
rm -rf /tmp/etherpad-lite-win/node_modules/ep_etherpad-lite/node_modules/jsdom-nocontextifiy/test/
|
||||
rm -rf /tmp/etherpad-lite-win/src/node_modules/jsdom-nocontextifiy/test/
|
||||
|
||||
echo "create the zip..."
|
||||
cd /tmp
|
||||
zip -9 -r etherpad-lite-win.zip etherpad-lite-win
|
||||
mv etherpad-lite-win.zip $START_FOLDER
|
||||
|
||||
echo "clean up..."
|
||||
rm -rf /tmp/etherpad-lite-win
|
||||
|
||||
echo "Finished. You can find the zip in the Etherpad root folder, it's called etherpad-lite-win.zip"
|
141
sources/bin/checkPad.js
Normal file
141
sources/bin/checkPad.js
Normal file
|
@ -0,0 +1,141 @@
|
|||
/*
|
||||
This is a debug tool. It checks all revisions for data corruption
|
||||
*/
|
||||
|
||||
if(process.argv.length != 3)
|
||||
{
|
||||
console.error("Use: node bin/checkPad.js $PADID");
|
||||
process.exit(1);
|
||||
}
|
||||
//get the padID
|
||||
var padId = process.argv[2];
|
||||
|
||||
//initalize the variables
|
||||
var db, settings, padManager;
|
||||
var npm = require("../src/node_modules/npm");
|
||||
var async = require("../src/node_modules/async");
|
||||
|
||||
var Changeset = require("ep_etherpad-lite/static/js/Changeset");
|
||||
|
||||
async.series([
|
||||
//load npm
|
||||
function(callback) {
|
||||
npm.load({}, function(er) {
|
||||
callback(er);
|
||||
})
|
||||
},
|
||||
//load modules
|
||||
function(callback) {
|
||||
settings = require('../src/node/utils/Settings');
|
||||
db = require('../src/node/db/DB');
|
||||
|
||||
//intallize the database
|
||||
db.init(callback);
|
||||
},
|
||||
//get the pad
|
||||
function (callback)
|
||||
{
|
||||
padManager = require('../src/node/db/PadManager');
|
||||
|
||||
padManager.doesPadExists(padId, function(err, exists)
|
||||
{
|
||||
if(!exists)
|
||||
{
|
||||
console.error("Pad does not exist");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
padManager.getPad(padId, function(err, _pad)
|
||||
{
|
||||
pad = _pad;
|
||||
callback(err);
|
||||
});
|
||||
});
|
||||
},
|
||||
function (callback)
|
||||
{
|
||||
//create an array with key kevisions
|
||||
//key revisions always save the full pad atext
|
||||
var head = pad.getHeadRevisionNumber();
|
||||
var keyRevisions = [];
|
||||
for(var i=0;i<head;i+=100)
|
||||
{
|
||||
keyRevisions.push(i);
|
||||
}
|
||||
|
||||
//run trough all key revisions
|
||||
async.forEachSeries(keyRevisions, function(keyRev, callback)
|
||||
{
|
||||
//create an array of revisions we need till the next keyRevision or the End
|
||||
var revisionsNeeded = [];
|
||||
for(var i=keyRev;i<=keyRev+100 && i<=head; i++)
|
||||
{
|
||||
revisionsNeeded.push(i);
|
||||
}
|
||||
|
||||
//this array will hold all revision changesets
|
||||
var revisions = [];
|
||||
|
||||
//run trough all needed revisions and get them from the database
|
||||
async.forEach(revisionsNeeded, function(revNum, callback)
|
||||
{
|
||||
db.db.get("pad:"+padId+":revs:" + revNum, function(err, revision)
|
||||
{
|
||||
revisions[revNum] = revision;
|
||||
callback(err);
|
||||
});
|
||||
}, function(err)
|
||||
{
|
||||
if(err)
|
||||
{
|
||||
callback(err);
|
||||
return;
|
||||
}
|
||||
|
||||
//check if the pad has a pool
|
||||
if(pad.pool === undefined )
|
||||
{
|
||||
console.error("Attribute pool is missing");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
//check if there is a atext in the keyRevisions
|
||||
if(revisions[keyRev] === undefined || revisions[keyRev].meta === undefined || revisions[keyRev].meta.atext === undefined)
|
||||
{
|
||||
console.error("No atext in key revision " + keyRev);
|
||||
callback();
|
||||
return;
|
||||
}
|
||||
|
||||
var apool = pad.pool;
|
||||
var atext = revisions[keyRev].meta.atext;
|
||||
|
||||
for(var i=keyRev+1;i<=keyRev+100 && i<=head; i++)
|
||||
{
|
||||
try
|
||||
{
|
||||
//console.log("check revision " + i);
|
||||
var cs = revisions[i].changeset;
|
||||
atext = Changeset.applyToAText(cs, atext, apool);
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
console.error("Bad changeset at revision " + i + " - " + e.message);
|
||||
callback();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
callback();
|
||||
});
|
||||
}, callback);
|
||||
}
|
||||
], function (err)
|
||||
{
|
||||
if(err) throw err;
|
||||
else
|
||||
{
|
||||
console.log("finished");
|
||||
process.exit(0);
|
||||
}
|
||||
});
|
453
sources/bin/convert.js
Normal file
453
sources/bin/convert.js
Normal file
|
@ -0,0 +1,453 @@
|
|||
var startTime = new Date().getTime();
|
||||
var fs = require("fs");
|
||||
var ueberDB = require("../src/node_modules/ueberDB");
|
||||
var mysql = require("../src/node_modules/ueberDB/node_modules/mysql");
|
||||
var async = require("../src/node_modules/async");
|
||||
var Changeset = require("ep_etherpad-lite/static/js/Changeset");
|
||||
var randomString = require('ep_etherpad-lite/static/js/pad_utils').randomString;
|
||||
var AttributePool = require("ep_etherpad-lite/static/js/AttributePool");
|
||||
|
||||
var settingsFile = process.argv[2];
|
||||
var sqlOutputFile = process.argv[3];
|
||||
|
||||
//stop if the settings file is not set
|
||||
if(!settingsFile || !sqlOutputFile)
|
||||
{
|
||||
console.error("Use: node convert.js $SETTINGSFILE $SQLOUTPUT");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
log("read settings file...");
|
||||
//read the settings file and parse the json
|
||||
var settings = JSON.parse(fs.readFileSync(settingsFile, "utf8"));
|
||||
log("done");
|
||||
|
||||
log("open output file...");
|
||||
var sqlOutput = fs.openSync(sqlOutputFile, "w");
|
||||
var sql = "SET CHARACTER SET UTF8;\n" +
|
||||
"CREATE TABLE IF NOT EXISTS `store` ( \n" +
|
||||
"`key` VARCHAR( 100 ) NOT NULL , \n" +
|
||||
"`value` LONGTEXT NOT NULL , \n" +
|
||||
"PRIMARY KEY ( `key` ) \n" +
|
||||
") ENGINE = INNODB;\n" +
|
||||
"START TRANSACTION;\n\n";
|
||||
fs.writeSync(sqlOutput, sql);
|
||||
log("done");
|
||||
|
||||
//set setings for ep db
|
||||
var etherpadDB= new mysql.Client();
|
||||
etherpadDB.host = settings.etherpadDB.host;
|
||||
etherpadDB.port = settings.etherpadDB.port;
|
||||
etherpadDB.database = settings.etherpadDB.database;
|
||||
etherpadDB.user = settings.etherpadDB.user;
|
||||
etherpadDB.password = settings.etherpadDB.password;
|
||||
|
||||
//get the timestamp once
|
||||
var timestamp = new Date().getTime();
|
||||
|
||||
var padIDs;
|
||||
|
||||
async.series([
|
||||
//get all padids out of the database...
|
||||
function(callback)
|
||||
{
|
||||
log("get all padIds out of the database...");
|
||||
|
||||
etherpadDB.query("SELECT ID FROM PAD_META", [], function(err, _padIDs)
|
||||
{
|
||||
padIDs = _padIDs;
|
||||
callback(err);
|
||||
});
|
||||
},
|
||||
function(callback)
|
||||
{
|
||||
log("done");
|
||||
|
||||
//create a queue with a concurrency 100
|
||||
var queue = async.queue(function (padId, callback)
|
||||
{
|
||||
convertPad(padId, function(err)
|
||||
{
|
||||
incrementPadStats();
|
||||
callback(err);
|
||||
});
|
||||
}, 100);
|
||||
|
||||
//set the step callback as the queue callback
|
||||
queue.drain = callback;
|
||||
|
||||
//add the padids to the worker queue
|
||||
for(var i=0,length=padIDs.length;i<length;i++)
|
||||
{
|
||||
queue.push(padIDs[i].ID);
|
||||
}
|
||||
}
|
||||
], function(err)
|
||||
{
|
||||
if(err) throw err;
|
||||
|
||||
//write the groups
|
||||
var sql = "";
|
||||
for(var proID in proID2groupID)
|
||||
{
|
||||
var groupID = proID2groupID[proID];
|
||||
var subdomain = proID2subdomain[proID];
|
||||
|
||||
sql+="REPLACE INTO store VALUES (" + etherpadDB.escape("group:" + groupID) + ", " + etherpadDB.escape(JSON.stringify(groups[groupID]))+ ");\n";
|
||||
sql+="REPLACE INTO store VALUES (" + etherpadDB.escape("mapper2group:subdomain:" + subdomain) + ", " + etherpadDB.escape(groupID)+ ");\n";
|
||||
}
|
||||
|
||||
//close transaction
|
||||
sql+="COMMIT;";
|
||||
|
||||
//end the sql file
|
||||
fs.writeSync(sqlOutput, sql, undefined, "utf-8");
|
||||
fs.closeSync(sqlOutput);
|
||||
|
||||
log("finished.");
|
||||
process.exit(0);
|
||||
});
|
||||
|
||||
function log(str)
|
||||
{
|
||||
console.log((new Date().getTime() - startTime)/1000 + "\t" + str);
|
||||
}
|
||||
|
||||
var padsDone = 0;
|
||||
|
||||
function incrementPadStats()
|
||||
{
|
||||
padsDone++;
|
||||
|
||||
if(padsDone%100 == 0)
|
||||
{
|
||||
var averageTime = Math.round(padsDone/((new Date().getTime() - startTime)/1000));
|
||||
log(padsDone + "/" + padIDs.length + "\t" + averageTime + " pad/s")
|
||||
}
|
||||
}
|
||||
|
||||
var proID2groupID = {};
|
||||
var proID2subdomain = {};
|
||||
var groups = {};
|
||||
|
||||
function convertPad(padId, callback)
|
||||
{
|
||||
var changesets = [];
|
||||
var changesetsMeta = [];
|
||||
var chatMessages = [];
|
||||
var authors = [];
|
||||
var apool;
|
||||
var subdomain;
|
||||
var padmeta;
|
||||
|
||||
async.series([
|
||||
//get all needed db values
|
||||
function(callback)
|
||||
{
|
||||
async.parallel([
|
||||
//get the pad revisions
|
||||
function(callback)
|
||||
{
|
||||
var sql = "SELECT * FROM `PAD_CHAT_TEXT` WHERE NUMID = (SELECT `NUMID` FROM `PAD_CHAT_META` WHERE ID=?)";
|
||||
|
||||
etherpadDB.query(sql, [padId], function(err, results)
|
||||
{
|
||||
if(!err)
|
||||
{
|
||||
try
|
||||
{
|
||||
//parse the pages
|
||||
for(var i=0,length=results.length;i<length;i++)
|
||||
{
|
||||
parsePage(chatMessages, results[i].PAGESTART, results[i].OFFSETS, results[i].DATA, true);
|
||||
}
|
||||
}catch(e) {err = e}
|
||||
}
|
||||
|
||||
callback(err);
|
||||
});
|
||||
},
|
||||
//get the chat entries
|
||||
function(callback)
|
||||
{
|
||||
var sql = "SELECT * FROM `PAD_REVS_TEXT` WHERE NUMID = (SELECT `NUMID` FROM `PAD_REVS_META` WHERE ID=?)";
|
||||
|
||||
etherpadDB.query(sql, [padId], function(err, results)
|
||||
{
|
||||
if(!err)
|
||||
{
|
||||
try
|
||||
{
|
||||
//parse the pages
|
||||
for(var i=0,length=results.length;i<length;i++)
|
||||
{
|
||||
parsePage(changesets, results[i].PAGESTART, results[i].OFFSETS, results[i].DATA, false);
|
||||
}
|
||||
}catch(e) {err = e}
|
||||
}
|
||||
|
||||
callback(err);
|
||||
});
|
||||
},
|
||||
//get the pad revisions meta data
|
||||
function(callback)
|
||||
{
|
||||
var sql = "SELECT * FROM `PAD_REVMETA_TEXT` WHERE NUMID = (SELECT `NUMID` FROM `PAD_REVMETA_META` WHERE ID=?)";
|
||||
|
||||
etherpadDB.query(sql, [padId], function(err, results)
|
||||
{
|
||||
if(!err)
|
||||
{
|
||||
try
|
||||
{
|
||||
//parse the pages
|
||||
for(var i=0,length=results.length;i<length;i++)
|
||||
{
|
||||
parsePage(changesetsMeta, results[i].PAGESTART, results[i].OFFSETS, results[i].DATA, true);
|
||||
}
|
||||
}catch(e) {err = e}
|
||||
}
|
||||
|
||||
callback(err);
|
||||
});
|
||||
},
|
||||
//get the attribute pool of this pad
|
||||
function(callback)
|
||||
{
|
||||
var sql = "SELECT `JSON` FROM `PAD_APOOL` WHERE `ID` = ?";
|
||||
|
||||
etherpadDB.query(sql, [padId], function(err, results)
|
||||
{
|
||||
if(!err)
|
||||
{
|
||||
try
|
||||
{
|
||||
apool=JSON.parse(results[0].JSON).x;
|
||||
}catch(e) {err = e}
|
||||
}
|
||||
|
||||
callback(err);
|
||||
});
|
||||
},
|
||||
//get the authors informations
|
||||
function(callback)
|
||||
{
|
||||
var sql = "SELECT * FROM `PAD_AUTHORS_TEXT` WHERE NUMID = (SELECT `NUMID` FROM `PAD_AUTHORS_META` WHERE ID=?)";
|
||||
|
||||
etherpadDB.query(sql, [padId], function(err, results)
|
||||
{
|
||||
if(!err)
|
||||
{
|
||||
try
|
||||
{
|
||||
//parse the pages
|
||||
for(var i=0, length=results.length;i<length;i++)
|
||||
{
|
||||
parsePage(authors, results[i].PAGESTART, results[i].OFFSETS, results[i].DATA, true);
|
||||
}
|
||||
}catch(e) {err = e}
|
||||
}
|
||||
|
||||
callback(err);
|
||||
});
|
||||
},
|
||||
//get the pad information
|
||||
function(callback)
|
||||
{
|
||||
var sql = "SELECT JSON FROM `PAD_META` WHERE ID=?";
|
||||
|
||||
etherpadDB.query(sql, [padId], function(err, results)
|
||||
{
|
||||
if(!err)
|
||||
{
|
||||
try
|
||||
{
|
||||
padmeta = JSON.parse(results[0].JSON).x;
|
||||
}catch(e) {err = e}
|
||||
}
|
||||
|
||||
callback(err);
|
||||
});
|
||||
},
|
||||
//get the subdomain
|
||||
function(callback)
|
||||
{
|
||||
//skip if this is no proPad
|
||||
if(padId.indexOf("$") == -1)
|
||||
{
|
||||
callback();
|
||||
return;
|
||||
}
|
||||
|
||||
//get the proID out of this padID
|
||||
var proID = padId.split("$")[0];
|
||||
|
||||
var sql = "SELECT subDomain FROM pro_domains WHERE ID = ?";
|
||||
|
||||
etherpadDB.query(sql, [proID], function(err, results)
|
||||
{
|
||||
if(!err)
|
||||
{
|
||||
subdomain = results[0].subDomain;
|
||||
}
|
||||
|
||||
callback(err);
|
||||
});
|
||||
}
|
||||
], callback);
|
||||
},
|
||||
function(callback)
|
||||
{
|
||||
//saves all values that should be written to the database
|
||||
var values = {};
|
||||
|
||||
//this is a pro pad, let's convert it to a group pad
|
||||
if(padId.indexOf("$") != -1)
|
||||
{
|
||||
var padIdParts = padId.split("$");
|
||||
var proID = padIdParts[0];
|
||||
var padName = padIdParts[1];
|
||||
|
||||
var groupID
|
||||
|
||||
//this proID is not converted so far, do it
|
||||
if(proID2groupID[proID] == null)
|
||||
{
|
||||
groupID = "g." + randomString(16);
|
||||
|
||||
//create the mappers for this new group
|
||||
proID2groupID[proID] = groupID;
|
||||
proID2subdomain[proID] = subdomain;
|
||||
groups[groupID] = {pads: {}};
|
||||
}
|
||||
|
||||
//use the generated groupID;
|
||||
groupID = proID2groupID[proID];
|
||||
|
||||
//rename the pad
|
||||
padId = groupID + "$" + padName;
|
||||
|
||||
//set the value for this pad in the group
|
||||
groups[groupID].pads[padId] = 1;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var newAuthorIDs = {};
|
||||
var oldName2newName = {};
|
||||
|
||||
//replace the authors with generated authors
|
||||
// we need to do that cause where the original etherpad saves pad local authors, the new (lite) etherpad uses them global
|
||||
for(var i in apool.numToAttrib)
|
||||
{
|
||||
var key = apool.numToAttrib[i][0];
|
||||
var value = apool.numToAttrib[i][1];
|
||||
|
||||
//skip non authors and anonymous authors
|
||||
if(key != "author" || value == "")
|
||||
continue;
|
||||
|
||||
//generate new author values
|
||||
var authorID = "a." + randomString(16);
|
||||
var authorColorID = authors[i].colorId || Math.floor(Math.random()*32);
|
||||
var authorName = authors[i].name || null;
|
||||
|
||||
//overwrite the authorID of the attribute pool
|
||||
apool.numToAttrib[i][1] = authorID;
|
||||
|
||||
//write the author to the database
|
||||
values["globalAuthor:" + authorID] = {"colorId" : authorColorID, "name": authorName, "timestamp": timestamp};
|
||||
|
||||
//save in mappers
|
||||
newAuthorIDs[i] = authorID;
|
||||
oldName2newName[value] = authorID;
|
||||
}
|
||||
|
||||
//save all revisions
|
||||
for(var i=0;i<changesets.length;i++)
|
||||
{
|
||||
values["pad:" + padId + ":revs:" + i] = {changeset: changesets[i],
|
||||
meta : {
|
||||
author: newAuthorIDs[changesetsMeta[i].a],
|
||||
timestamp: changesetsMeta[i].t,
|
||||
atext: changesetsMeta[i].atext || undefined
|
||||
}};
|
||||
}
|
||||
|
||||
//save all chat messages
|
||||
for(var i=0;i<chatMessages.length;i++)
|
||||
{
|
||||
values["pad:" + padId + ":chat:" + i] = {"text": chatMessages[i].lineText,
|
||||
"userId": oldName2newName[chatMessages[i].userId],
|
||||
"time": chatMessages[i].time}
|
||||
}
|
||||
|
||||
//generate the latest atext
|
||||
var fullAPool = (new AttributePool()).fromJsonable(apool);
|
||||
var keyRev = Math.floor(padmeta.head / padmeta.keyRevInterval) * padmeta.keyRevInterval;
|
||||
var atext = changesetsMeta[keyRev].atext;
|
||||
var curRev = keyRev;
|
||||
while (curRev < padmeta.head)
|
||||
{
|
||||
curRev++;
|
||||
var changeset = changesets[curRev];
|
||||
atext = Changeset.applyToAText(changeset, atext, fullAPool);
|
||||
}
|
||||
|
||||
values["pad:" + padId] = {atext: atext,
|
||||
pool: apool,
|
||||
head: padmeta.head,
|
||||
chatHead: padmeta.numChatMessages }
|
||||
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
console.error("Error while converting pad " + padId + ", pad skipped");
|
||||
console.error(e.stack ? e.stack : JSON.stringify(e));
|
||||
callback();
|
||||
return;
|
||||
}
|
||||
|
||||
var sql = "";
|
||||
for(var key in values)
|
||||
{
|
||||
sql+="REPLACE INTO store VALUES (" + etherpadDB.escape(key) + ", " + etherpadDB.escape(JSON.stringify(values[key]))+ ");\n";
|
||||
}
|
||||
|
||||
fs.writeSync(sqlOutput, sql, undefined, "utf-8");
|
||||
callback();
|
||||
}
|
||||
], callback);
|
||||
}
|
||||
|
||||
/**
|
||||
* This parses a Page like Etherpad uses them in the databases
|
||||
* The offsets descripes the length of a unit in the page, the data are
|
||||
* all values behind each other
|
||||
*/
|
||||
function parsePage(array, pageStart, offsets, data, json)
|
||||
{
|
||||
var start = 0;
|
||||
var lengths = offsets.split(",");
|
||||
|
||||
for(var i=0;i<lengths.length;i++)
|
||||
{
|
||||
var unitLength = lengths[i];
|
||||
|
||||
//skip empty units
|
||||
if(unitLength == "")
|
||||
continue;
|
||||
|
||||
//parse the number
|
||||
unitLength = Number(unitLength);
|
||||
|
||||
//cut the unit out of data
|
||||
var unit = data.substr(start, unitLength);
|
||||
|
||||
//put it into the array
|
||||
array[pageStart + i] = json ? JSON.parse(unit) : unit;
|
||||
|
||||
//update start
|
||||
start+=unitLength;
|
||||
}
|
||||
}
|
10
sources/bin/convertSettings.json.template
Normal file
10
sources/bin/convertSettings.json.template
Normal file
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"etherpadDB":
|
||||
{
|
||||
"host": "localhost",
|
||||
"port": 3306,
|
||||
"database": "etherpad",
|
||||
"user": "etherpaduser",
|
||||
"password": "yourpassword"
|
||||
}
|
||||
}
|
28
sources/bin/debugRun.sh
Executable file
28
sources/bin/debugRun.sh
Executable file
|
@ -0,0 +1,28 @@
|
|||
#!/bin/sh
|
||||
|
||||
#Move to the folder where ep-lite is installed
|
||||
cd `dirname $0`
|
||||
|
||||
#Was this script started in the bin folder? if yes move out
|
||||
if [ -d "../bin" ]; then
|
||||
cd "../"
|
||||
fi
|
||||
|
||||
#prepare the enviroment
|
||||
bin/installDeps.sh || exit 1
|
||||
|
||||
hash node-inspector > /dev/null 2>&1 || {
|
||||
echo "You need to install node-inspector to run the tests!" >&2
|
||||
echo "You can install it with npm" >&2
|
||||
echo "Run: npm install -g node-inspector" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
node-inspector &
|
||||
|
||||
echo "If you are new to node-inspector, take a look at this video: http://youtu.be/AOnK3NVnxL8"
|
||||
|
||||
node --debug node_modules/ep_etherpad-lite/node/server.js $*
|
||||
|
||||
#kill node-inspector before ending
|
||||
kill $!
|
63
sources/bin/deletePad.js
Normal file
63
sources/bin/deletePad.js
Normal file
|
@ -0,0 +1,63 @@
|
|||
/*
|
||||
A tool for deleting pads from the CLI, because sometimes a brick is required to fix a window.
|
||||
*/
|
||||
|
||||
if(process.argv.length != 3)
|
||||
{
|
||||
console.error("Use: node deletePad.js $PADID");
|
||||
process.exit(1);
|
||||
}
|
||||
//get the padID
|
||||
var padId = process.argv[2];
|
||||
|
||||
var db, padManager, pad, settings;
|
||||
var neededDBValues = ["pad:"+padId];
|
||||
|
||||
var npm = require("../src/node_modules/npm");
|
||||
var async = require("../src/node_modules/async");
|
||||
|
||||
async.series([
|
||||
// load npm
|
||||
function(callback) {
|
||||
npm.load({}, function(er) {
|
||||
if(er)
|
||||
{
|
||||
console.error("Could not load NPM: " + er)
|
||||
process.exit(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
callback();
|
||||
}
|
||||
})
|
||||
},
|
||||
// load modules
|
||||
function(callback) {
|
||||
settings = require('../src/node/utils/Settings');
|
||||
db = require('../src/node/db/DB');
|
||||
callback();
|
||||
},
|
||||
// intallize the database
|
||||
function (callback)
|
||||
{
|
||||
db.init(callback);
|
||||
},
|
||||
// delete the pad and it's links
|
||||
function (callback)
|
||||
{
|
||||
padManager = require('../src/node/db/PadManager');
|
||||
|
||||
padManager.removePad(padId, function(err){
|
||||
callback(err);
|
||||
});
|
||||
callback();
|
||||
}
|
||||
], function (err)
|
||||
{
|
||||
if(err) throw err;
|
||||
else
|
||||
{
|
||||
console.log("Finished deleting padId: "+padId);
|
||||
process.exit();
|
||||
}
|
||||
});
|
109
sources/bin/extractPadData.js
Normal file
109
sources/bin/extractPadData.js
Normal file
|
@ -0,0 +1,109 @@
|
|||
/*
|
||||
This is a debug tool. It helps to extract all datas of a pad and move it from an productive enviroment and to a develop enviroment to reproduce bugs there. It outputs a dirtydb file
|
||||
*/
|
||||
|
||||
if(process.argv.length != 3)
|
||||
{
|
||||
console.error("Use: node extractPadData.js $PADID");
|
||||
process.exit(1);
|
||||
}
|
||||
//get the padID
|
||||
var padId = process.argv[2];
|
||||
|
||||
var db, dirty, padManager, pad, settings;
|
||||
var neededDBValues = ["pad:"+padId];
|
||||
|
||||
var npm = require("../node_modules/ep_etherpad-lite/node_modules/npm");
|
||||
var async = require("../node_modules/ep_etherpad-lite/node_modules/async");
|
||||
|
||||
async.series([
|
||||
// load npm
|
||||
function(callback) {
|
||||
npm.load({}, function(er) {
|
||||
if(er)
|
||||
{
|
||||
console.error("Could not load NPM: " + er)
|
||||
process.exit(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
callback();
|
||||
}
|
||||
})
|
||||
},
|
||||
// load modules
|
||||
function(callback) {
|
||||
settings = require('../node_modules/ep_etherpad-lite/node/utils/Settings');
|
||||
db = require('../node_modules/ep_etherpad-lite/node/db/DB');
|
||||
dirty = require("../node_modules/ep_etherpad-lite/node_modules/ueberDB/node_modules/dirty")(padId + ".db");
|
||||
callback();
|
||||
},
|
||||
//intallize the database
|
||||
function (callback)
|
||||
{
|
||||
db.init(callback);
|
||||
},
|
||||
//get the pad
|
||||
function (callback)
|
||||
{
|
||||
padManager = require('../node_modules/ep_etherpad-lite/node/db/PadManager');
|
||||
|
||||
padManager.getPad(padId, function(err, _pad)
|
||||
{
|
||||
pad = _pad;
|
||||
callback(err);
|
||||
});
|
||||
},
|
||||
function (callback)
|
||||
{
|
||||
//add all authors
|
||||
var authors = pad.getAllAuthors();
|
||||
for(var i=0;i<authors.length;i++)
|
||||
{
|
||||
neededDBValues.push("globalAuthor:" + authors[i]);
|
||||
}
|
||||
|
||||
//add all revisions
|
||||
var revHead = pad.head;
|
||||
for(var i=0;i<=revHead;i++)
|
||||
{
|
||||
neededDBValues.push("pad:"+padId+":revs:" + i);
|
||||
}
|
||||
|
||||
//get all chat values
|
||||
var chatHead = pad.chatHead;
|
||||
for(var i=0;i<=chatHead;i++)
|
||||
{
|
||||
neededDBValues.push("pad:"+padId+":chat:" + i);
|
||||
}
|
||||
|
||||
//get and set all values
|
||||
async.forEach(neededDBValues, function(dbkey, callback)
|
||||
{
|
||||
db.db.db.wrappedDB.get(dbkey, function(err, dbvalue)
|
||||
{
|
||||
if(err) { callback(err); return}
|
||||
|
||||
if(dbvalue && typeof dbvalue != 'object'){
|
||||
dbvalue=JSON.parse(dbvalue); // if its not json then parse it as json
|
||||
}
|
||||
|
||||
dirty.set(dbkey, dbvalue, callback);
|
||||
});
|
||||
}, callback);
|
||||
}
|
||||
], function (err)
|
||||
{
|
||||
if(err) throw err;
|
||||
else
|
||||
{
|
||||
console.log("finished");
|
||||
process.exit();
|
||||
}
|
||||
});
|
||||
|
||||
//get the pad object
|
||||
//get all revisions of this pad
|
||||
//get all authors related to this pad
|
||||
//get the readonly link releated to this pad
|
||||
//get the chat entrys releated to this pad
|
110
sources/bin/importSqlFile.js
Normal file
110
sources/bin/importSqlFile.js
Normal file
|
@ -0,0 +1,110 @@
|
|||
var startTime = new Date().getTime();
|
||||
|
||||
require("ep_etherpad-lite/node_modules/npm").load({}, function(er,npm) {
|
||||
|
||||
var fs = require("fs");
|
||||
|
||||
var ueberDB = require("ep_etherpad-lite/node_modules/ueberDB");
|
||||
var settings = require("ep_etherpad-lite/node/utils/Settings");
|
||||
var log4js = require('ep_etherpad-lite/node_modules/log4js');
|
||||
|
||||
var dbWrapperSettings = {
|
||||
cache: 0,
|
||||
writeInterval: 100,
|
||||
json: false // data is already json encoded
|
||||
};
|
||||
var db = new ueberDB.database(settings.dbType, settings.dbSettings, dbWrapperSettings, log4js.getLogger("ueberDB"));
|
||||
|
||||
var sqlFile = process.argv[2];
|
||||
|
||||
//stop if the settings file is not set
|
||||
if(!sqlFile)
|
||||
{
|
||||
console.error("Use: node importSqlFile.js $SQLFILE");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
log("initializing db");
|
||||
db.init(function(err)
|
||||
{
|
||||
//there was an error while initializing the database, output it and stop
|
||||
if(err)
|
||||
{
|
||||
console.error("ERROR: Problem while initalizing the database");
|
||||
console.error(err.stack ? err.stack : err);
|
||||
process.exit(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
log("done");
|
||||
|
||||
log("open output file...");
|
||||
var lines = fs.readFileSync(sqlFile, 'utf8').split("\n");
|
||||
|
||||
var count = lines.length;
|
||||
var keyNo = 0;
|
||||
|
||||
process.stdout.write("Start importing " + count + " keys...\n");
|
||||
lines.forEach(function(l) {
|
||||
if (l.substr(0, 27) == "REPLACE INTO store VALUES (") {
|
||||
var pos = l.indexOf("', '");
|
||||
var key = l.substr(28, pos - 28);
|
||||
var value = l.substr(pos + 3);
|
||||
value = value.substr(0, value.length - 2);
|
||||
console.log("key: " + key + " val: " + value);
|
||||
console.log("unval: " + unescape(value));
|
||||
db.set(key, unescape(value), null);
|
||||
keyNo++;
|
||||
if (keyNo % 1000 == 0) {
|
||||
process.stdout.write(" " + keyNo + "/" + count + "\n");
|
||||
}
|
||||
}
|
||||
});
|
||||
process.stdout.write("\n");
|
||||
process.stdout.write("done. waiting for db to finish transaction. depended on dbms this may take some time...\n");
|
||||
|
||||
db.doShutdown(function() {
|
||||
log("finished, imported " + keyNo + " keys.");
|
||||
process.exit(0);
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function log(str)
|
||||
{
|
||||
console.log((new Date().getTime() - startTime)/1000 + "\t" + str);
|
||||
}
|
||||
|
||||
unescape = function(val) {
|
||||
// value is a string
|
||||
if (val.substr(0, 1) == "'") {
|
||||
val = val.substr(0, val.length - 1).substr(1);
|
||||
|
||||
return val.replace(/\\[0nrbtZ\\'"]/g, function(s) {
|
||||
switch(s) {
|
||||
case "\\0": return "\0";
|
||||
case "\\n": return "\n";
|
||||
case "\\r": return "\r";
|
||||
case "\\b": return "\b";
|
||||
case "\\t": return "\t";
|
||||
case "\\Z": return "\x1a";
|
||||
default: return s.substr(1);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// value is a boolean or NULL
|
||||
if (val == 'NULL') {
|
||||
return null;
|
||||
}
|
||||
if (val == 'true') {
|
||||
return true;
|
||||
}
|
||||
if (val == 'false') {
|
||||
return false;
|
||||
}
|
||||
|
||||
// value is a number
|
||||
return val;
|
||||
};
|
114
sources/bin/installDeps.sh
Executable file
114
sources/bin/installDeps.sh
Executable file
|
@ -0,0 +1,114 @@
|
|||
#!/bin/sh
|
||||
|
||||
#Move to the folder where ep-lite is installed
|
||||
cd `dirname $0`
|
||||
|
||||
#Was this script started in the bin folder? if yes move out
|
||||
if [ -d "../bin" ]; then
|
||||
cd "../"
|
||||
fi
|
||||
|
||||
#Is gnu-grep (ggrep) installed on SunOS (Solaris)
|
||||
if [ $(uname) = "SunOS" ]; then
|
||||
hash ggrep > /dev/null 2>&1 || {
|
||||
echo "Please install ggrep (pkg install gnu-grep)" >&2
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
|
||||
#Is wget installed?
|
||||
hash curl > /dev/null 2>&1 || {
|
||||
echo "Please install curl" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
#Is node installed?
|
||||
hash node > /dev/null 2>&1 || {
|
||||
echo "Please install node.js ( http://nodejs.org )" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
#Is npm installed?
|
||||
hash npm > /dev/null 2>&1 || {
|
||||
echo "Please install npm ( http://npmjs.org )" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
#check npm version
|
||||
NPM_VERSION=$(npm --version)
|
||||
if [ ! $(echo $NPM_VERSION | cut -d "." -f 1) = "1" ]; then
|
||||
echo "You're running a wrong version of npm, you're using $NPM_VERSION, we need 1.x" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#check node version
|
||||
NODE_VERSION=$(node --version)
|
||||
NODE_V_MINOR=$(echo $NODE_VERSION | cut -d "." -f 1-2)
|
||||
if [ ! $NODE_V_MINOR = "v0.8" ] && [ ! $NODE_V_MINOR = "v0.10" ]; then
|
||||
echo "You're running a wrong version of node, you're using $NODE_VERSION, we need v0.8.x or v0.10.x" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#Get the name of the settings file
|
||||
settings="settings.json"
|
||||
a='';
|
||||
for arg in $*; do
|
||||
if [ "$a" = "--settings" ] || [ "$a" = "-s" ]; then settings=$arg; fi
|
||||
a=$arg
|
||||
done
|
||||
|
||||
#Does a $settings exist? if no copy the template
|
||||
if [ ! -f $settings ]; then
|
||||
echo "Copy the settings template to $settings..."
|
||||
cp settings.json.template $settings || exit 1
|
||||
fi
|
||||
|
||||
echo "Ensure that all dependencies are up to date... If this is the first time you have run Etherpad please be patient."
|
||||
(
|
||||
mkdir -p node_modules
|
||||
cd node_modules
|
||||
[ -e ep_etherpad-lite ] || ln -s ../src ep_etherpad-lite
|
||||
cd ep_etherpad-lite
|
||||
npm install --loglevel warn
|
||||
) || {
|
||||
rm -rf node_modules
|
||||
exit 1
|
||||
}
|
||||
|
||||
echo "Ensure jQuery is downloaded and up to date..."
|
||||
DOWNLOAD_JQUERY="true"
|
||||
NEEDED_VERSION="1.9.1"
|
||||
if [ -f "src/static/js/jquery.js" ]; then
|
||||
if [ $(uname) = "SunOS" ]; then
|
||||
VERSION=$(cat src/static/js/jquery.js | head -n 3 | ggrep -o "v[0-9]\.[0-9]\(\.[0-9]\)\?");
|
||||
else
|
||||
VERSION=$(cat src/static/js/jquery.js | head -n 3 | grep -o "v[0-9]\.[0-9]\(\.[0-9]\)\?");
|
||||
fi
|
||||
|
||||
if [ ${VERSION#v} = $NEEDED_VERSION ]; then
|
||||
DOWNLOAD_JQUERY="false"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ $DOWNLOAD_JQUERY = "true" ]; then
|
||||
curl -lo src/static/js/jquery.js http://code.jquery.com/jquery-$NEEDED_VERSION.js || exit 1
|
||||
fi
|
||||
|
||||
#Remove all minified data to force node creating it new
|
||||
echo "Clear minfified cache..."
|
||||
rm -f var/minified*
|
||||
|
||||
echo "ensure custom css/js files are created..."
|
||||
|
||||
for f in "index" "pad" "timeslider"
|
||||
do
|
||||
if [ ! -f "src/static/custom/$f.js" ]; then
|
||||
cp "src/static/custom/js.template" "src/static/custom/$f.js" || exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f "src/static/custom/$f.css" ]; then
|
||||
cp "src/static/custom/css.template" "src/static/custom/$f.css" || exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
exit 0
|
39
sources/bin/installOnWindows.bat
Normal file
39
sources/bin/installOnWindows.bat
Normal file
|
@ -0,0 +1,39 @@
|
|||
@echo off
|
||||
|
||||
:: change directory to etherpad-lite root
|
||||
cd /D "%~dp0\.."
|
||||
|
||||
:: Is node installed?
|
||||
cmd /C node -e "" || ( echo "Please install node.js ( http://nodejs.org )" && exit /B 1 )
|
||||
|
||||
echo _
|
||||
echo Checking node version...
|
||||
set check_version="if(['8','10'].indexOf(process.version.split('.')[1].toString()) === -1) { console.log('You are running a wrong version of Node. Etherpad requires v0.8.x or v0.10.x'); process.exit(1) }"
|
||||
cmd /C node -e %check_version% || exit /B 1
|
||||
|
||||
echo _
|
||||
echo Ensure that all dependencies are up to date... If this is the first time you have run Etherpad please be patient.
|
||||
cmd /C npm install src/ --loglevel warn || exit /B 1
|
||||
|
||||
echo _
|
||||
echo Copying custom templates...
|
||||
set custom_dir=node_modules\ep_etherpad-lite\static\custom
|
||||
FOR %%f IN (index pad timeslider) DO (
|
||||
if NOT EXIST "%custom_dir%\%%f.js" copy "%custom_dir%\js.template" "%custom_dir%\%%f.js"
|
||||
if NOT EXIST "%custom_dir%\%%f.css" copy "%custom_dir%\css.template" "%custom_dir%\%%f.css"
|
||||
)
|
||||
|
||||
echo _
|
||||
echo Clearing cache...
|
||||
del /S var\minified*
|
||||
|
||||
echo _
|
||||
echo Setting up settings.json...
|
||||
IF NOT EXIST settings.json (
|
||||
echo Can't find settings.json.
|
||||
echo Copying settings.json.template...
|
||||
cmd /C copy settings.json.template settings.json || exit /B 1
|
||||
)
|
||||
|
||||
echo _
|
||||
echo Installed Etherpad! To run Etherpad type start.bat
|
9
sources/bin/jshint.sh
Executable file
9
sources/bin/jshint.sh
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/sh
|
||||
|
||||
if [ -d "../bin" ]; then
|
||||
cd "../"
|
||||
fi
|
||||
|
||||
JSHINT=./node_modules/jshint/bin/hint
|
||||
|
||||
$JSHINT ./node/
|
79
sources/bin/loadTesting/README
Normal file
79
sources/bin/loadTesting/README
Normal file
|
@ -0,0 +1,79 @@
|
|||
This is the new load testing file: https://bitbucket.org/rbraakman/etherpad-stresstest
|
||||
|
||||
BELOW is the original load testing file.
|
||||
|
||||
This load tester is extremely useful for testing how many dormant clients can connect to etherpad.
|
||||
|
||||
TODO:
|
||||
Emulate characters being typed into a pad
|
||||
|
||||
HOW TO USE (from @mjd75) proper formatting at: https://github.com/ether/etherpad-lite/issues/360
|
||||
|
||||
Server 1:
|
||||
Installed Node.js (etc), EtherPad and MySQL
|
||||
|
||||
Server 2:
|
||||
Installed Xvfb and PhantomJS
|
||||
|
||||
I installed Xvfb following (roughly) this guide: http://blog.martin-lyness.com/archives/installing-xvfb-on-ubuntu-9-10-karmic-koala
|
||||
|
||||
#sudo apt-get install xvfb
|
||||
#sudo apt-get install xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic
|
||||
|
||||
Launched two instances of Xvfb directly from the terminal:
|
||||
|
||||
#Xvfb :0 -ac
|
||||
#Xvfb :1 -ac
|
||||
|
||||
I installed PhantomJS following this guide: http://code.google.com/p/phantomjs/wiki/Installation
|
||||
|
||||
#sudo add-apt-repository ppa:jerome-etienne/neoip
|
||||
#sudo apt-get update
|
||||
#sudo apt-get install phantomjs
|
||||
|
||||
I created a small JavaScript file for PhatomJS to use to control the browser instances:
|
||||
|
||||
### BEGIN JAVASCRIPT ###
|
||||
|
||||
var page = new WebPage(),
|
||||
t, address;
|
||||
|
||||
if (phantom.args.length === 0) {
|
||||
console.log('Usage: loader.js <some URL>');
|
||||
phantom.exit();
|
||||
} else {
|
||||
t = Date.now();
|
||||
address = phantom.args[0];
|
||||
|
||||
var page = new WebPage();
|
||||
page.onResourceRequested = function (request) {
|
||||
console.log('Request ' + JSON.stringify(request, undefined, 4));
|
||||
};
|
||||
page.onResourceReceived = function (response) {
|
||||
console.log('Receive ' + JSON.stringify(response, undefined, 4));
|
||||
};
|
||||
page.open(address);
|
||||
|
||||
}
|
||||
|
||||
### END JAVASCRIPT ###
|
||||
|
||||
And finally a launcher script that uses screen to run 400 instances of PhantomJS with the above script:
|
||||
|
||||
### BEGIN SHELL SCRIPT ###
|
||||
|
||||
#!/bin/bash
|
||||
|
||||
# connect 200 instances to display :0
|
||||
for i in {1..200}
|
||||
do
|
||||
DISPLAY=:0 screen -d -m phantomjs loader.js http://ec2-50-17-168-xx.compute-1.amazonaws.com:9001/p/pad2 && sleep 2
|
||||
done
|
||||
|
||||
# connect 200 instances to display :1
|
||||
for i in {1..200}
|
||||
do
|
||||
DISPLAY=:1 screen -d -m phantomjs loader.js http://ec2-50-17-168-xx.compute-1.amazonaws.com:9001/p/pad2 && sleep 2
|
||||
done
|
||||
|
||||
### END SHELL SCRIPT ###
|
16
sources/bin/loadTesting/launcher.sh
Executable file
16
sources/bin/loadTesting/launcher.sh
Executable file
|
@ -0,0 +1,16 @@
|
|||
#!/bin/bash
|
||||
|
||||
# connect 500 instances to display :0
|
||||
for i in {1..500}
|
||||
do
|
||||
echo $i
|
||||
echo "Displaying Some shit"
|
||||
DISPLAY=:0 screen -d -m /home/phantomjs/bin/phantomjs loader.js http://10.0.0.55:9001/p/pad2 && sleep 2
|
||||
done
|
||||
|
||||
# connect 500 instances to display :1
|
||||
for i in {1..500}
|
||||
do
|
||||
echo $i
|
||||
DISPLAY=:1 screen -d -m /home/phantomjs/bin/phantomjs loader.js http://10.0.0.55:9001/p/pad2 && sleep 2
|
||||
done
|
20
sources/bin/loadTesting/loader.js
Normal file
20
sources/bin/loadTesting/loader.js
Normal file
|
@ -0,0 +1,20 @@
|
|||
var page = new WebPage(),
|
||||
t, address;
|
||||
|
||||
if (phantom.args.length === 0) {
|
||||
console.log('Usage: loader.js <some URL>');
|
||||
phantom.exit();
|
||||
} else {
|
||||
t = Date.now();
|
||||
address = phantom.args[0];
|
||||
|
||||
var page = new WebPage();
|
||||
page.onResourceRequested = function (request) {
|
||||
console.log('Request ' + JSON.stringify(request, undefined, 4));
|
||||
};
|
||||
page.onResourceReceived = function (response) {
|
||||
console.log('Receive ' + JSON.stringify(response, undefined, 4));
|
||||
};
|
||||
page.open(address);
|
||||
|
||||
}
|
18
sources/bin/migrateDirtyDBtoMySQL.js
Normal file
18
sources/bin/migrateDirtyDBtoMySQL.js
Normal file
|
@ -0,0 +1,18 @@
|
|||
require("ep_etherpad-lite/node_modules/npm").load({}, function(er,npm) {
|
||||
|
||||
process.chdir(npm.root+'/..')
|
||||
|
||||
var settings = require("ep_etherpad-lite/node/utils/Settings");
|
||||
var dirty = require("ep_etherpad-lite/node_modules/ueberDB/node_modules/dirty")('var/dirty.db');
|
||||
var db = require("ep_etherpad-lite/node/db/DB");
|
||||
|
||||
db.init(function() {
|
||||
db = db.db;
|
||||
dirty.on("load", function() {
|
||||
dirty.forEach(function(key, value) {
|
||||
db.set(key, value);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
});
|
36
sources/bin/run.sh
Executable file
36
sources/bin/run.sh
Executable file
|
@ -0,0 +1,36 @@
|
|||
#!/bin/sh
|
||||
|
||||
#Move to the folder where ep-lite is installed
|
||||
cd `dirname $0`
|
||||
|
||||
#Was this script started in the bin folder? if yes move out
|
||||
if [ -d "../bin" ]; then
|
||||
cd "../"
|
||||
fi
|
||||
|
||||
ignoreRoot=0
|
||||
for ARG in $*
|
||||
do
|
||||
if [ "$ARG" = "--root" ]; then
|
||||
ignoreRoot=1
|
||||
fi
|
||||
done
|
||||
|
||||
#Stop the script if its started as root
|
||||
if [ "$(id -u)" -eq 0 ] && [ $ignoreRoot -eq 0 ]; then
|
||||
echo "You shouldn't start Etherpad as root!"
|
||||
echo "Please type 'Etherpad rocks my socks' or supply the '--root' argument if you still want to start it as root"
|
||||
read rocks
|
||||
if [ ! $rocks = "Etherpad rocks my socks" ]
|
||||
then
|
||||
echo "Your input was incorrect"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
#prepare the enviroment
|
||||
bin/installDeps.sh $* || exit 1
|
||||
|
||||
#Move to the node folder and start
|
||||
echo "start..."
|
||||
node node_modules/ep_etherpad-lite/node/server.js $*
|
68
sources/bin/safeRun.sh
Executable file
68
sources/bin/safeRun.sh
Executable file
|
@ -0,0 +1,68 @@
|
|||
#!/bin/sh
|
||||
|
||||
#This script ensures that ep-lite is automatically restarting after an error happens
|
||||
|
||||
#Handling Errors
|
||||
# 0 silent
|
||||
# 1 email
|
||||
ERROR_HANDLING=0
|
||||
# Your email address which should recieve the error messages
|
||||
EMAIL_ADDRESS="no-reply@example.com"
|
||||
# Sets the minimun amount of time betweens the sending of error emails.
|
||||
# This ensures you not get spamed while a endless reboot loop
|
||||
# It's the time in seconds
|
||||
TIME_BETWEEN_EMAILS=600 # 10 minutes
|
||||
|
||||
# DON'T EDIT AFTER THIS LINE
|
||||
|
||||
LAST_EMAIL_SEND=0
|
||||
LOG="$1"
|
||||
|
||||
#Move to the folder where ep-lite is installed
|
||||
cd `dirname $0`
|
||||
|
||||
#Was this script started in the bin folder? if yes move out
|
||||
if [ -d "../bin" ]; then
|
||||
cd "../"
|
||||
fi
|
||||
|
||||
#check if a logfile parameter is set
|
||||
if [ -z "${LOG}" ]; then
|
||||
echo "Set a logfile as the first parameter"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
shift
|
||||
while [ 1 ]
|
||||
do
|
||||
#try to touch the file if it doesn't exist
|
||||
if [ ! -f ${LOG} ]; then
|
||||
touch ${LOG} || ( echo "Logfile '${LOG}' is not writeable" && exit 1 )
|
||||
fi
|
||||
|
||||
#check if the file is writeable
|
||||
if [ ! -w ${LOG} ]; then
|
||||
echo "Logfile '${LOG}' is not writeable"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#start the application
|
||||
bin/run.sh $@ >>${LOG} 2>>${LOG}
|
||||
|
||||
#Send email
|
||||
if [ $ERROR_HANDLING = 1 ]; then
|
||||
TIME_NOW=$(date +%s)
|
||||
TIME_SINCE_LAST_SEND=$(($TIME_NOW - $LAST_EMAIL_SEND))
|
||||
|
||||
if [ $TIME_SINCE_LAST_SEND -gt $TIME_BETWEEN_EMAILS ]; then
|
||||
printf "Server was restared at: $(date)\nThe last 50 lines of the log before the error happens:\n $(tail -n 50 ${LOG})" | mail -s "Pad Server was restarted" $EMAIL_ADDRESS
|
||||
|
||||
LAST_EMAIL_SEND=$TIME_NOW
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "RESTART!" >>${LOG}
|
||||
|
||||
#Sleep 10 seconds before restart
|
||||
sleep 10
|
||||
done
|
8
sources/doc/api/api.md
Normal file
8
sources/doc/api/api.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
@include embed_parameters
|
||||
@include http_api
|
||||
@include hooks_overview
|
||||
@include hooks_client-side
|
||||
@include hooks_server-side
|
||||
@include editorInfo
|
||||
@include changeset_library
|
||||
@include pluginfw
|
151
sources/doc/api/changeset_library.md
Normal file
151
sources/doc/api/changeset_library.md
Normal file
|
@ -0,0 +1,151 @@
|
|||
# Changeset Library
|
||||
|
||||
```
|
||||
"Z:z>1|2=m=b*0|1+1$\n"
|
||||
```
|
||||
|
||||
This is a Changeset. Its just a string and its very difficult to read in this form. But the Changeset Library gives us some tools to read it.
|
||||
|
||||
A changeset describes the diff between two revisions of the document. The Browser sends changesets to the server and the server sends them to the clients to update them. This Changesets gets also saved into the history of a pad. Which allows us to go back to every revision from the past.
|
||||
|
||||
## Changeset.unpack(changeset)
|
||||
|
||||
* `changeset` {String}
|
||||
|
||||
This functions returns an object representaion of the changeset, similar to this:
|
||||
|
||||
```
|
||||
{ oldLen: 35, newLen: 36, ops: '|2=m=b*0|1+1', charBank: '\n' }
|
||||
```
|
||||
|
||||
* `oldLen` {Number} the original length of the document.
|
||||
* `newLen` {Number} the length of the document after the changeset is applied.
|
||||
* `ops` {String} the actual changes, introduced by this changeset.
|
||||
* `charBank` {String} All characters that are added by this changeset.
|
||||
|
||||
## Changeset.opIterator(ops)
|
||||
|
||||
* `ops` {String} The operators, returned by `Changeset.unpack()`
|
||||
|
||||
Returns an operator iterator. This iterator allows us to iterate over all operators that are in the changeset.
|
||||
|
||||
You can iterate with an opIterator using its `next()` and `hasNext()` methods. Next returns the `next()` operator object and `hasNext()` indicates, whether there are any operators left.
|
||||
|
||||
## The Operator object
|
||||
There are 3 types of operators: `+`,`-` and `=`. These operators describe different changes to the document, beginning with the first character of the document. A `=` operator doesn't change the text, but it may add or remove text attributes. A `-` operator removes text. And a `+` Operator adds text and optionally adds some attributes to it.
|
||||
|
||||
* `opcode` {String} the operator type
|
||||
* `chars` {Number} the length of the text changed by this operator.
|
||||
* `lines` {Number} the number of lines changed by this operator.
|
||||
* `attribs` {attribs} attributes set on this text.
|
||||
|
||||
### Example
|
||||
```
|
||||
{ opcode: '+',
|
||||
chars: 1,
|
||||
lines: 1,
|
||||
attribs: '*0' }
|
||||
```
|
||||
|
||||
## APool
|
||||
|
||||
```
|
||||
> var AttributePoolFactory = require("./utils/AttributePoolFactory");
|
||||
> var apool = AttributePoolFactory.createAttributePool();
|
||||
> console.log(apool)
|
||||
{ numToAttrib: {},
|
||||
attribToNum: {},
|
||||
nextNum: 0,
|
||||
putAttrib: [Function],
|
||||
getAttrib: [Function],
|
||||
getAttribKey: [Function],
|
||||
getAttribValue: [Function],
|
||||
eachAttrib: [Function],
|
||||
toJsonable: [Function],
|
||||
fromJsonable: [Function] }
|
||||
```
|
||||
|
||||
This creates an empty apool. A apool saves which attributes were used during the history of a pad. There is one apool for each pad. It only saves the attributes that were really used, it doesn't save unused attributes. Lets fill this apool with some values
|
||||
|
||||
```
|
||||
> apool.fromJsonable({"numToAttrib":{"0":["author","a.kVnWeomPADAT2pn9"],"1":["bold","true"],"2":["italic","true"]},"nextNum":3});
|
||||
> console.log(apool)
|
||||
{ numToAttrib:
|
||||
{ '0': [ 'author', 'a.kVnWeomPADAT2pn9' ],
|
||||
'1': [ 'bold', 'true' ],
|
||||
'2': [ 'italic', 'true' ] },
|
||||
attribToNum:
|
||||
{ 'author,a.kVnWeomPADAT2pn9': 0,
|
||||
'bold,true': 1,
|
||||
'italic,true': 2 },
|
||||
nextNum: 3,
|
||||
putAttrib: [Function],
|
||||
getAttrib: [Function],
|
||||
getAttribKey: [Function],
|
||||
getAttribValue: [Function],
|
||||
eachAttrib: [Function],
|
||||
toJsonable: [Function],
|
||||
fromJsonable: [Function] }
|
||||
```
|
||||
|
||||
We used the fromJsonable function to fill the empty apool with values. the fromJsonable and toJsonable functions are used to serialize and deserialize an apool. You can see that it stores the relation between numbers and attributes. So for example the attribute 1 is the attribute bold and vise versa. A attribute is always a key value pair. For stuff like bold and italic its just 'italic':'true'. For authors its author:$AUTHORID. So a character can be bold and italic. But it can't belong to multiple authors
|
||||
|
||||
```
|
||||
> apool.getAttrib(1)
|
||||
[ 'bold', 'true' ]
|
||||
```
|
||||
|
||||
Simple example of how to get the key value pair for the attribute 1
|
||||
|
||||
## AText
|
||||
|
||||
```
|
||||
> var atext = {"text":"bold text\nitalic text\nnormal text\n\n","attribs":"*0*1+9*0|1+1*0*1*2+b|1+1*0+b|2+2"};
|
||||
> console.log(atext)
|
||||
{ text: 'bold text\nitalic text\nnormal text\n\n',
|
||||
attribs: '*0*1+9*0|1+1*0*1*2+b|1+1*0+b|2+2' }
|
||||
```
|
||||
|
||||
This is an atext. An atext has two parts: text and attribs. The text is just the text of the pad as a string. We will look closer at the attribs at the next steps
|
||||
|
||||
```
|
||||
> var opiterator = Changeset.opIterator(atext.attribs)
|
||||
> console.log(opiterator)
|
||||
{ next: [Function: next],
|
||||
hasNext: [Function: hasNext],
|
||||
lastIndex: [Function: lastIndex] }
|
||||
> opiterator.next()
|
||||
{ opcode: '+',
|
||||
chars: 9,
|
||||
lines: 0,
|
||||
attribs: '*0*1' }
|
||||
> opiterator.next()
|
||||
{ opcode: '+',
|
||||
chars: 1,
|
||||
lines: 1,
|
||||
attribs: '*0' }
|
||||
> opiterator.next()
|
||||
{ opcode: '+',
|
||||
chars: 11,
|
||||
lines: 0,
|
||||
attribs: '*0*1*2' }
|
||||
> opiterator.next()
|
||||
{ opcode: '+',
|
||||
chars: 1,
|
||||
lines: 1,
|
||||
attribs: '' }
|
||||
> opiterator.next()
|
||||
{ opcode: '+',
|
||||
chars: 11,
|
||||
lines: 0,
|
||||
attribs: '*0' }
|
||||
> opiterator.next()
|
||||
{ opcode: '+',
|
||||
chars: 2,
|
||||
lines: 2,
|
||||
attribs: '' }
|
||||
```
|
||||
|
||||
The attribs are again a bunch of operators like .ops in the changeset was. But these operators are only + operators. They describe which part of the text has which attributes
|
||||
|
||||
For more information see /doc/easysync/easysync-notes.txt in the source.
|
70
sources/doc/api/editorInfo.md
Normal file
70
sources/doc/api/editorInfo.md
Normal file
|
@ -0,0 +1,70 @@
|
|||
# editorInfo
|
||||
|
||||
## editorInfo.ace_replaceRange(start, end, text)
|
||||
This function replaces a range (from `start` to `end`) with `text`.
|
||||
|
||||
## editorInfo.ace_getRep()
|
||||
Returns the `rep` object.
|
||||
|
||||
## editorInfo.ace_getAuthor()
|
||||
## editorInfo.ace_inCallStack()
|
||||
## editorInfo.ace_inCallStackIfNecessary(?)
|
||||
## editorInfo.ace_focus(?)
|
||||
## editorInfo.ace_importText(?)
|
||||
## editorInfo.ace_importAText(?)
|
||||
## editorInfo.ace_exportText(?)
|
||||
## editorInfo.ace_editorChangedSize(?)
|
||||
## editorInfo.ace_setOnKeyPress(?)
|
||||
## editorInfo.ace_setOnKeyDown(?)
|
||||
## editorInfo.ace_setNotifyDirty(?)
|
||||
## editorInfo.ace_dispose(?)
|
||||
## editorInfo.ace_getFormattedCode(?)
|
||||
## editorInfo.ace_setEditable(bool)
|
||||
## editorInfo.ace_execCommand(?)
|
||||
## editorInfo.ace_callWithAce(fn, callStack, normalize)
|
||||
## editorInfo.ace_setProperty(key, value)
|
||||
## editorInfo.ace_setBaseText(txt)
|
||||
## editorInfo.ace_setBaseAttributedText(atxt, apoolJsonObj)
|
||||
## editorInfo.ace_applyChangesToBase(c, optAuthor, apoolJsonObj)
|
||||
## editorInfo.ace_prepareUserChangeset()
|
||||
## editorInfo.ace_applyPreparedChangesetToBase()
|
||||
## editorInfo.ace_setUserChangeNotificationCallback(f)
|
||||
## editorInfo.ace_setAuthorInfo(author, info)
|
||||
## editorInfo.ace_setAuthorSelectionRange(author, start, end)
|
||||
## editorInfo.ace_getUnhandledErrors()
|
||||
## editorInfo.ace_getDebugProperty(prop)
|
||||
## editorInfo.ace_fastIncorp(?)
|
||||
## editorInfo.ace_isCaret(?)
|
||||
## editorInfo.ace_getLineAndCharForPoint(?)
|
||||
## editorInfo.ace_performDocumentApplyAttributesToCharRange(?)
|
||||
## editorInfo.ace_setAttributeOnSelection(?)
|
||||
## editorInfo.ace_toggleAttributeOnSelection(?)
|
||||
## editorInfo.ace_performSelectionChange(?)
|
||||
## editorInfo.ace_doIndentOutdent(?)
|
||||
## editorInfo.ace_doUndoRedo(?)
|
||||
## editorInfo.ace_doInsertUnorderedList(?)
|
||||
## editorInfo.ace_doInsertOrderedList(?)
|
||||
## editorInfo.ace_performDocumentApplyAttributesToRange()
|
||||
|
||||
## editorInfo.ace_getAuthorInfos()
|
||||
Returns an info object about the author. Object key = author_id and info includes author's bg color value.
|
||||
Use to define your own authorship.
|
||||
## editorInfo.ace_performDocumentReplaceRange(start, end, newText)
|
||||
This function replaces a range (from [x1,y1] to [x2,y2]) with `newText`.
|
||||
## editorInfo.ace_performDocumentReplaceCharRange(startChar, endChar, newText)
|
||||
This function replaces a range (from y1 to y2) with `newText`.
|
||||
## editorInfo.ace_renumberList(lineNum)
|
||||
If you delete a line, calling this method will fix the line numbering.
|
||||
## editorInfo.ace_doReturnKey()
|
||||
Forces a return key at the current carret position.
|
||||
## editorInfo.ace_isBlockElement(element)
|
||||
Returns true if your passed elment is registered as a block element
|
||||
## editorInfo.ace_getLineListType(lineNum)
|
||||
Returns the line's html list type.
|
||||
## editorInfo.ace_caretLine()
|
||||
Returns X position of the caret.
|
||||
## editorInfo.ace_caretColumn()
|
||||
Returns Y position of the caret.
|
||||
## editorInfo.ace_caretDocChar()
|
||||
Returns the Y offset starting from [x=0,y=0]
|
||||
## editorInfo.ace_isWordChar(?)
|
68
sources/doc/api/embed_parameters.md
Normal file
68
sources/doc/api/embed_parameters.md
Normal file
|
@ -0,0 +1,68 @@
|
|||
# Embed parameters
|
||||
You can easily embed your etherpad-lite into any webpage by using iframes. You can configure the embedded pad using embed paramters.
|
||||
|
||||
Example:
|
||||
|
||||
Cut and paste the following code into any webpage to embed a pad. The parameters below will hide the chat and the line numbers.
|
||||
|
||||
```
|
||||
<iframe src='http://pad.test.de/p/PAD_NAME?showChat=false&showLineNumbers=false' width=600 height=400></iframe>
|
||||
```
|
||||
|
||||
## showLineNumbers
|
||||
* Boolean
|
||||
|
||||
Default: true
|
||||
|
||||
## showControls
|
||||
* Boolean
|
||||
|
||||
Default: true
|
||||
|
||||
## showChat
|
||||
* Boolean
|
||||
|
||||
Default: true
|
||||
|
||||
## useMonospaceFont
|
||||
* Boolean
|
||||
|
||||
Default: false
|
||||
|
||||
## userName
|
||||
* String
|
||||
|
||||
Default: "unnamed"
|
||||
|
||||
Example: `userName=Etherpad%20User`
|
||||
|
||||
## userColor
|
||||
* String (css hex color value)
|
||||
|
||||
Default: randomly chosen by pad server
|
||||
|
||||
Example: `userColor=%23ff9900`
|
||||
|
||||
## noColors
|
||||
* Boolean
|
||||
|
||||
Default: false
|
||||
|
||||
## alwaysShowChat
|
||||
* Boolean
|
||||
|
||||
Default: false
|
||||
|
||||
## lang
|
||||
* String
|
||||
|
||||
Default: en
|
||||
|
||||
Example: `lang=ar` (translates the interface into Arabic)
|
||||
|
||||
## rtl
|
||||
* Boolean
|
||||
|
||||
Default: true
|
||||
Displays pad text from right to left.
|
||||
|
279
sources/doc/api/hooks_client-side.md
Normal file
279
sources/doc/api/hooks_client-side.md
Normal file
|
@ -0,0 +1,279 @@
|
|||
# Client-side hooks
|
||||
Most of these hooks are called during or in order to set up the formatting process.
|
||||
|
||||
## documentReady
|
||||
Called from: src/templates/pad.html
|
||||
|
||||
Things in context:
|
||||
|
||||
nothing
|
||||
|
||||
This hook proxies the functionality of jQuery's `$(document).ready` event.
|
||||
|
||||
## aceDomLineProcessLineAttributes
|
||||
Called from: src/static/js/domline.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. domline - The current DOM line being processed
|
||||
2. cls - The class of the current block element (useful for styling)
|
||||
|
||||
This hook is called for elements in the DOM that have the "lineMarkerAttribute" set. You can add elements into this category with the aceRegisterBlockElements hook above.
|
||||
|
||||
The return value of this hook should have the following structure:
|
||||
|
||||
`{ preHtml: String, postHtml: String, processedMarker: Boolean }`
|
||||
|
||||
The preHtml and postHtml values will be added to the HTML display of the element, and if processedMarker is true, the engine won't try to process it any more.
|
||||
|
||||
## aceCreateDomLine
|
||||
Called from: src/static/js/domline.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. domline - the current DOM line being processed
|
||||
2. cls - The class of the current element (useful for styling)
|
||||
|
||||
This hook is called for any line being processed by the formatting engine, unless the aceDomLineProcessLineAttributes hook from above returned true, in which case this hook is skipped.
|
||||
|
||||
The return value of this hook should have the following structure:
|
||||
|
||||
`{ extraOpenTags: String, extraCloseTags: String, cls: String }`
|
||||
|
||||
extraOpenTags and extraCloseTags will be added before and after the element in question, and cls will be the new class of the element going forward.
|
||||
|
||||
## acePostWriteDomLineHTML
|
||||
Called from: src/static/js/domline.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. node - the DOM node that just got written to the page
|
||||
|
||||
This hook is for right after a node has been fully formatted and written to the page.
|
||||
|
||||
## aceAttribsToClasses
|
||||
Called from: src/static/js/linestylefilter.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. linestylefilter - the JavaScript object that's currently processing the ace attributes
|
||||
2. key - the current attribute being processed
|
||||
3. value - the value of the attribute being processed
|
||||
|
||||
This hook is called during the attribute processing procedure, and should be used to translate key, value pairs into valid HTML classes that can be inserted into the DOM.
|
||||
|
||||
The return value for this function should be a list of classes, which will then be parsed into a valid class string.
|
||||
|
||||
## aceGetFilterStack
|
||||
Called from: src/static/js/linestylefilter.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. linestylefilter - the JavaScript object that's currently processing the ace attributes
|
||||
2. browser - an object indicating which browser is accessing the page
|
||||
|
||||
This hook is called to apply custom regular expression filters to a set of styles. The one example available is the ep_linkify plugin, which adds internal links. They use it to find the telltale `[[ ]]` syntax that signifies internal links, and finding that syntax, they add in the internalHref attribute to be later used by the aceCreateDomLine hook (documented above).
|
||||
|
||||
## aceEditorCSS
|
||||
Called from: src/static/js/ace.js
|
||||
|
||||
Things in context: None
|
||||
|
||||
This hook is provided to allow custom CSS files to be loaded. The return value should be an array of paths relative to the plugins directory.
|
||||
|
||||
## aceInitInnerdocbodyHead
|
||||
Called from: src/static/js/ace.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. iframeHTML - the HTML of the editor iframe up to this point, in array format
|
||||
|
||||
This hook is called during the creation of the editor HTML. The array should have lines of HTML added to it, giving the plugin author a chance to add in meta, script, link, and other tags that go into the `<head>` element of the editor HTML document.
|
||||
|
||||
## aceEditEvent
|
||||
Called from: src/static/js/ace2_inner.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. callstack - a bunch of information about the current action
|
||||
2. editorInfo - information about the user who is making the change
|
||||
3. rep - information about where the change is being made
|
||||
4. documentAttributeManager - information about attributes in the document (this is a mystery to me)
|
||||
|
||||
This hook is made available to edit the edit events that might occur when changes are made. Currently you can change the editor information, some of the meanings of the edit, and so on. You can also make internal changes (internal to your plugin) that use the information provided by the edit event.
|
||||
|
||||
## aceRegisterBlockElements
|
||||
Called from: src/static/js/ace2_inner.js
|
||||
|
||||
Things in context: None
|
||||
|
||||
The return value of this hook will add elements into the "lineMarkerAttribute" category, making the aceDomLineProcessLineAttributes hook (documented below) call for those elements.
|
||||
|
||||
## aceInitialized
|
||||
Called from: src/static/js/ace2_inner.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. editorInfo - information about the user who will be making changes through the interface, and a way to insert functions into the main ace object (see ep_headings)
|
||||
2. rep - information about where the user's cursor is
|
||||
3. documentAttributeManager - some kind of magic
|
||||
|
||||
This hook is for inserting further information into the ace engine, for later use in formatting hooks.
|
||||
|
||||
## postAceInit
|
||||
Called from: src/static/js/pad.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. ace - the ace object that is applied to this editor.
|
||||
2. pad - the pad object of the current pad.
|
||||
|
||||
There doesn't appear to be any example available of this particular hook being used, but it gets fired after the editor is all set up.
|
||||
|
||||
## postTimesliderInit
|
||||
Called from: src/static/js/timeslider.js
|
||||
|
||||
There doesn't appear to be any example available of this particular hook being used, but it gets fired after the timeslider is all set up.
|
||||
|
||||
## userJoinOrUpdate
|
||||
Called from: src/static/js/pad_userlist.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. info - the user information
|
||||
|
||||
This hook is called on the client side whenever a user joins or changes. This can be used to create notifications or an alternate user list.
|
||||
|
||||
## chatNewMessage
|
||||
Called from: src/static/js/chat.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. authorName - The user that wrote this message
|
||||
2. author - The authorID of the user that wrote the message
|
||||
2. text - the message text
|
||||
3. sticky (boolean) - if you want the gritter notification bubble to fade out on its own or just sit there
|
||||
3. timestamp - the timestamp of the chat message
|
||||
4. timeStr - the timestamp as a formatted string
|
||||
|
||||
This hook is called on the client side whenever a chat message is received from the server. It can be used to create different notifications for chat messages.
|
||||
|
||||
## collectContentPre
|
||||
Called from: src/static/js/contentcollector.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. cc - the contentcollector object
|
||||
2. state - the current state of the change being made
|
||||
3. tname - the tag name of this node currently being processed
|
||||
4. style - the style applied to the node (probably CSS)
|
||||
5. cls - the HTML class string of the node
|
||||
|
||||
This hook is called before the content of a node is collected by the usual methods. The cc object can be used to do a bunch of things that modify the content of the pad. See, for example, the heading1 plugin for etherpad original.
|
||||
|
||||
## collectContentPost
|
||||
Called from: src/static/js/contentcollector.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. cc - the contentcollector object
|
||||
2. state - the current state of the change being made
|
||||
3. tname - the tag name of this node currently being processed
|
||||
4. style - the style applied to the node (probably CSS)
|
||||
5. cls - the HTML class string of the node
|
||||
|
||||
This hook is called after the content of a node is collected by the usual methods. The cc object can be used to do a bunch of things that modify the content of the pad. See, for example, the heading1 plugin for etherpad original.
|
||||
|
||||
## handleClientMessage_`name`
|
||||
Called from: `src/static/js/collab_client.js`
|
||||
|
||||
Things in context:
|
||||
|
||||
1. payload - the data that got sent with the message (use it for custom message content)
|
||||
|
||||
This hook gets called every time the client receives a message of type `name`. This can most notably be used with the new HTTP API call, "sendClientsMessage", which sends a custom message type to all clients connected to a pad. You can also use this to handle existing types.
|
||||
|
||||
`collab_client.js` has a pretty extensive list of message types, if you want to take a look.
|
||||
|
||||
##aceStartLineAndCharForPoint-aceEndLineAndCharForPoint
|
||||
Called from: src/static/js/ace2_inner.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. callstack - a bunch of information about the current action
|
||||
2. editorInfo - information about the user who is making the change
|
||||
3. rep - information about where the change is being made
|
||||
4. root - the span element of the current line
|
||||
5. point - the starting/ending element where the cursor highlights
|
||||
6. documentAttributeManager - information about attributes in the document
|
||||
|
||||
This hook is provided to allow a plugin to turn DOM node selection into [line,char] selection.
|
||||
The return value should be an array of [line,char]
|
||||
|
||||
##aceKeyEvent
|
||||
Called from: src/static/js/ace2_inner.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. callstack - a bunch of information about the current action
|
||||
2. editorInfo - information about the user who is making the change
|
||||
3. rep - information about where the change is being made
|
||||
4. documentAttributeManager - information about attributes in the document
|
||||
5. evt - the fired event
|
||||
|
||||
This hook is provided to allow a plugin to handle key events.
|
||||
The return value should be true if you have handled the event.
|
||||
|
||||
##collectContentLineText
|
||||
Called from: src/static/js/contentcollector.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. cc - the contentcollector object
|
||||
2. state - the current state of the change being made
|
||||
3. tname - the tag name of this node currently being processed
|
||||
4. text - the text for that line
|
||||
|
||||
This hook allows you to validate/manipulate the text before it's sent to the server side.
|
||||
The return value should be the validated/manipulated text.
|
||||
|
||||
##collectContentLineBreak
|
||||
Called from: src/static/js/contentcollector.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. cc - the contentcollector object
|
||||
2. state - the current state of the change being made
|
||||
3. tname - the tag name of this node currently being processed
|
||||
|
||||
This hook is provided to allow whether the br tag should induce a new magic domline or not.
|
||||
The return value should be either true(break the line) or false.
|
||||
|
||||
##disableAuthorColorsForThisLine
|
||||
Called from: src/static/js/linestylefilter.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. linestylefilter - the JavaScript object that's currently processing the ace attributes
|
||||
2. text - the line text
|
||||
3. class - line class
|
||||
|
||||
This hook is provided to allow whether a given line should be deliniated with multiple authors.
|
||||
Multiple authors in one line cause the creation of magic span lines. This might not suit you and
|
||||
now you can disable it and handle your own deliniation.
|
||||
The return value should be either true(disable) or false.
|
||||
|
||||
## aceSetAuthorStyle
|
||||
Called from: src/static/js/ace2_inner.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. dynamicCSS - css manger for inner ace
|
||||
2. outerDynamicCSS - css manager for outer ace
|
||||
3. parentDynamicCSS - css manager for parent document
|
||||
4. info - author style info
|
||||
5. author - author info
|
||||
6. authorSelector - css selector for author span in inner ace
|
||||
|
||||
This hook is provided to allow author highlight style to be modified.
|
||||
Registered hooks should return 1 if the plugin handles highlighting. If no plugin returns 1, the core will use the default background-based highlighting.
|
11
sources/doc/api/hooks_overview.md
Normal file
11
sources/doc/api/hooks_overview.md
Normal file
|
@ -0,0 +1,11 @@
|
|||
# Hooks
|
||||
All hooks are called with two arguments:
|
||||
|
||||
1. name - the name of the hook being called
|
||||
2. context - an object with some relevant information about the context of the call
|
||||
|
||||
## Return values
|
||||
A hook should always return a list or undefined. Returning undefined is equivalent to returning an empty list.
|
||||
All the returned lists are appended to each other, so if the return values where `[1, 2]`, `undefined`, `[3, 4,]`, `undefined` and `[5]`, the value returned by callHook would be `[1, 2, 3, 4, 5]`.
|
||||
|
||||
This is, because it should never matter if you have one plugin or several plugins doing some work - a single plugin should be able to make callHook return the same value a set of plugins are able to return collectively. So, any plugin can return a list of values, of any length, not just one value.
|
210
sources/doc/api/hooks_server-side.md
Normal file
210
sources/doc/api/hooks_server-side.md
Normal file
|
@ -0,0 +1,210 @@
|
|||
# Server-side hooks
|
||||
These hooks are called on server-side.
|
||||
|
||||
## loadSettings
|
||||
Called from: src/node/server.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. settings - the settings object
|
||||
|
||||
Use this hook to receive the global settings in your plugin.
|
||||
|
||||
## pluginUninstall
|
||||
Called from: src/static/js/pluginfw/installer.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. plugin_name - self-explanatory
|
||||
|
||||
If this hook returns an error, the callback to the uninstall function gets an error as well. This mostly seems useful for handling additional features added in based on the installation of other plugins, which is pretty cool!
|
||||
|
||||
## pluginInstall
|
||||
Called from: src/static/js/pluginfw/installer.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. plugin_name - self-explanatory
|
||||
|
||||
If this hook returns an error, the callback to the install function gets an error, too. This seems useful for adding in features when a particular plugin is installed.
|
||||
|
||||
## init_`<plugin name>`
|
||||
Called from: src/static/js/pluginfw/plugins.js
|
||||
|
||||
Things in context: None
|
||||
|
||||
This function is called after a specific plugin is initialized. This would probably be more useful than the previous two functions if you only wanted to add in features to one specific plugin.
|
||||
|
||||
## expressConfigure
|
||||
Called from: src/node/server.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. app - the main application object
|
||||
|
||||
This is a helpful hook for changing the behavior and configuration of the application. It's called right after the application gets configured.
|
||||
|
||||
## expressCreateServer
|
||||
Called from: src/node/server.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. app - the main express application object (helpful for adding new paths and such)
|
||||
2. server - the http server object
|
||||
|
||||
This hook gets called after the application object has been created, but before it starts listening. This is similar to the expressConfigure hook, but it's not guaranteed that the application object will have all relevant configuration variables.
|
||||
|
||||
## eejsBlock_`<name>`
|
||||
Called from: src/node/eejs/index.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. content - the content of the block
|
||||
|
||||
This hook gets called upon the rendering of an ejs template block. For any specific kind of block, you can change how that block gets rendered by modifying the content object passed in.
|
||||
|
||||
Have a look at `src/templates/pad.html` and `src/templates/timeslider.html` to see which blocks are available.
|
||||
|
||||
## padCreate
|
||||
Called from: src/node/db/Pad.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. pad - the pad instance
|
||||
|
||||
This hook gets called when a new pad was created.
|
||||
|
||||
## padLoad
|
||||
Called from: src/node/db/Pad.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. pad - the pad instance
|
||||
|
||||
This hook gets called when an pad was loaded. If a new pad was created and loaded this event will be emitted too.
|
||||
|
||||
## padUpdate
|
||||
Called from: src/node/db/Pad.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. pad - the pad instance
|
||||
|
||||
This hook gets called when an existing pad was updated.
|
||||
|
||||
## padRemove
|
||||
Called from: src/node/db/Pad.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. padID
|
||||
|
||||
This hook gets called when an existing pad was removed/deleted.
|
||||
|
||||
## socketio
|
||||
Called from: src/node/hooks/express/socketio.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. app - the application object
|
||||
2. io - the socketio object
|
||||
3. server - the http server object
|
||||
|
||||
I have no idea what this is useful for, someone else will have to add this description.
|
||||
|
||||
## authorize
|
||||
Called from: src/node/hooks/express/webaccess.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. req - the request object
|
||||
2. res - the response object
|
||||
3. next - ?
|
||||
4. resource - the path being accessed
|
||||
|
||||
This is useful for modifying the way authentication is done, especially for specific paths.
|
||||
|
||||
## authenticate
|
||||
Called from: src/node/hooks/express/webaccess.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. req - the request object
|
||||
2. res - the response object
|
||||
3. next - ?
|
||||
4. username - the username used (optional)
|
||||
5. password - the password used (optional)
|
||||
|
||||
This is useful for modifying the way authentication is done.
|
||||
|
||||
## authFailure
|
||||
Called from: src/node/hooks/express/webaccess.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. req - the request object
|
||||
2. res - the response object
|
||||
3. next - ?
|
||||
|
||||
This is useful for modifying the way authentication is done.
|
||||
|
||||
## handleMessage
|
||||
Called from: src/node/handler/PadMessageHandler.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. message - the message being handled
|
||||
2. client - the client object from socket.io
|
||||
|
||||
This hook will be called once a message arrive. If a plugin calls `callback(null)` the message will be dropped. However it is not possible to modify the message.
|
||||
|
||||
Plugins may also decide to implement custom behavior once a message arrives.
|
||||
|
||||
**WARNING**: handleMessage will be called, even if the client is not authorized to send this message. It's up to the plugin to check permissions.
|
||||
|
||||
Example:
|
||||
|
||||
```
|
||||
function handleMessage ( hook, context, callback ) {
|
||||
if ( context.message.type == 'USERINFO_UPDATE' ) {
|
||||
// If the message type is USERINFO_UPDATE, drop the message
|
||||
callback(null);
|
||||
}else{
|
||||
callback();
|
||||
}
|
||||
};
|
||||
```
|
||||
|
||||
## clientVars
|
||||
Called from: src/node/handler/PadMessageHandler.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. clientVars - the basic `clientVars` built by the core
|
||||
2. pad - the pad this session is about
|
||||
|
||||
This hook will be called once a client connects and the `clientVars` are being sent. Plugins can use this hook to give the client a initial configuriation, like the tracking-id of an external analytics-tool that is used on the client-side. You can also overwrite values from the original `clientVars`.
|
||||
|
||||
Example:
|
||||
|
||||
```
|
||||
exports.clientVars = function(hook, context, callback)
|
||||
{
|
||||
// tell the client which year we are in
|
||||
return callback({ "currentYear": new Date().getFullYear() });
|
||||
};
|
||||
```
|
||||
|
||||
This can be accessed on the client-side using `clientVars.currentYear`.
|
||||
|
||||
## getLineHTMLForExport
|
||||
Called from: src/node/utils/ExportHtml.js
|
||||
|
||||
Things in context:
|
||||
|
||||
1. apool - pool object
|
||||
2. attribLine - line attributes
|
||||
3. text - line text
|
||||
|
||||
This hook will allow a plug-in developer to re-write each line when exporting to HTML.
|
||||
|
461
sources/doc/api/http_api.md
Normal file
461
sources/doc/api/http_api.md
Normal file
|
@ -0,0 +1,461 @@
|
|||
# HTTP API
|
||||
|
||||
## What can I do with this API?
|
||||
The API gives another web application control of the pads. The basic functions are
|
||||
|
||||
* create/delete pads
|
||||
* grant/forbid access to pads
|
||||
* get/set pad content
|
||||
|
||||
The API is designed in a way, so you can reuse your existing user system with their permissions, and map it to Etherpad. Means: Your web application still has to do authentication, but you can tell Etherpad via the api, which visitors should get which permissions. This allows Etherpad to fit into any web application and extend it with real-time functionality. You can embed the pads via an iframe into your website.
|
||||
|
||||
Take a look at [HTTP API client libraries](https://github.com/ether/etherpad-lite/wiki/HTTP-API-client-libraries) to see if a library in your favorite language.
|
||||
|
||||
## Examples
|
||||
|
||||
### Example 1
|
||||
|
||||
A portal (such as WordPress) wants to give a user access to a new pad. Let's assume the user have the internal id 7 and his name is michael.
|
||||
|
||||
Portal maps the internal userid to an etherpad author.
|
||||
|
||||
> Request: `http://pad.domain/api/1/createAuthorIfNotExistsFor?apikey=secret&name=Michael&authorMapper=7`
|
||||
>
|
||||
> Response: `{code: 0, message:"ok", data: {authorID: "a.s8oes9dhwrvt0zif"}}`
|
||||
|
||||
Portal maps the internal userid to an etherpad group:
|
||||
|
||||
> Request: `http://pad.domain/api/1/createGroupIfNotExistsFor?apikey=secret&groupMapper=7`
|
||||
>
|
||||
> Response: `{code: 0, message:"ok", data: {groupID: "g.s8oes9dhwrvt0zif"}}`
|
||||
|
||||
Portal creates a pad in the userGroup
|
||||
|
||||
> Request: `http://pad.domain/api/1/createGroupPad?apikey=secret&groupID=g.s8oes9dhwrvt0zif&padName=samplePad&text=This is the first sentence in the pad`
|
||||
>
|
||||
> Response: `{code: 0, message:"ok", data: null}`
|
||||
|
||||
Portal starts the session for the user on the group:
|
||||
|
||||
> Request: `http://pad.domain/api/1/createSession?apikey=secret&groupID=g.s8oes9dhwrvt0zif&authorID=a.s8oes9dhwrvt0zif&validUntil=1312201246`
|
||||
>
|
||||
> Response: `{"data":{"sessionID": "s.s8oes9dhwrvt0zif"}}`
|
||||
|
||||
Portal places the cookie "sessionID" with the given value on the client and creates an iframe including the pad.
|
||||
|
||||
### Example 2
|
||||
|
||||
A portal (such as WordPress) wants to transform the contents of a pad that multiple admins edited into a blog post.
|
||||
|
||||
Portal retrieves the contents of the pad for entry into the db as a blog post:
|
||||
|
||||
> Request: `http://pad.domain/api/1/getText?apikey=secret&padID=g.s8oes9dhwrvt0zif$123`
|
||||
>
|
||||
> Response: `{code: 0, message:"ok", data: {text:"Welcome Text"}}`
|
||||
|
||||
Portal submits content into new blog post
|
||||
|
||||
> Portal.AddNewBlog(content)
|
||||
>
|
||||
|
||||
## Usage
|
||||
|
||||
### API version
|
||||
The latest version is `1.2.7`
|
||||
|
||||
The current version can be queried via /api.
|
||||
|
||||
### Request Format
|
||||
|
||||
The API is accessible via HTTP. HTTP Requests are in the format /api/$APIVERSION/$FUNCTIONNAME. Parameters are transmitted via HTTP GET. $APIVERSION depends on the endpoints you want to use.
|
||||
|
||||
### Response Format
|
||||
Responses are valid JSON in the following format:
|
||||
|
||||
```js
|
||||
{
|
||||
"code": number,
|
||||
"message": string,
|
||||
"data": obj
|
||||
}
|
||||
```
|
||||
|
||||
* **code** a return code
|
||||
* **0** everything ok
|
||||
* **1** wrong parameters
|
||||
* **2** internal error
|
||||
* **3** no such function
|
||||
* **4** no or wrong API Key
|
||||
* **message** a status message. Its ok if everything is fine, else it contains an error message
|
||||
* **data** the payload
|
||||
|
||||
### Overview
|
||||
|
||||
![API Overview](http://i.imgur.com/d0nWp.png)
|
||||
|
||||
## Data Types
|
||||
|
||||
* **groupID** a string, the unique id of a group. Format is g.16RANDOMCHARS, for example g.s8oes9dhwrvt0zif
|
||||
* **sessionID** a string, the unique id of a session. Format is s.16RANDOMCHARS, for example s.s8oes9dhwrvt0zif
|
||||
* **authorID** a string, the unique id of an author. Format is a.16RANDOMCHARS, for example a.s8oes9dhwrvt0zif
|
||||
* **readOnlyID** a string, the unique id of an readonly relation to a pad. Format is r.16RANDOMCHARS, for example r.s8oes9dhwrvt0zif
|
||||
* **padID** a string, format is GROUPID$PADNAME, for example the pad test of group g.s8oes9dhwrvt0zif has padID g.s8oes9dhwrvt0zif$test
|
||||
|
||||
### Authentication
|
||||
|
||||
Authentication works via a token that is sent with each request as a post parameter. There is a single token per Etherpad deployment. This token will be random string, generated by Etherpad at the first start. It will be saved in APIKEY.txt in the root folder of Etherpad. Only Etherpad and the requesting application knows this key. Token management will not be exposed through this API.
|
||||
|
||||
### Node Interoperability
|
||||
|
||||
All functions will also be available through a node module accessable from other node.js applications.
|
||||
|
||||
### JSONP
|
||||
|
||||
The API provides _JSONP_ support to allow requests from a server in a different domain.
|
||||
Simply add `&jsonp=?` to the API call.
|
||||
|
||||
Example usage: http://api.jquery.com/jQuery.getJSON/
|
||||
|
||||
## API Methods
|
||||
|
||||
### Groups
|
||||
Pads can belong to a group. The padID of grouppads is starting with a groupID like g.asdfasdfasdfasdf$test
|
||||
|
||||
#### createGroup()
|
||||
* API >= 1
|
||||
|
||||
creates a new group
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: {groupID: g.s8oes9dhwrvt0zif}}`
|
||||
|
||||
#### createGroupIfNotExistsFor(groupMapper)
|
||||
* API >= 1
|
||||
|
||||
this functions helps you to map your application group ids to Etherpad group ids
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: {groupID: g.s8oes9dhwrvt0zif}}`
|
||||
|
||||
#### deleteGroup(groupID)
|
||||
* API >= 1
|
||||
|
||||
deletes a group
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: null}`
|
||||
* `{code: 1, message:"groupID does not exist", data: null}`
|
||||
|
||||
#### listPads(groupID)
|
||||
* API >= 1
|
||||
|
||||
returns all pads of this group
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: {padIDs : ["g.s8oes9dhwrvt0zif$test", "g.s8oes9dhwrvt0zif$test2"]}`
|
||||
* `{code: 1, message:"groupID does not exist", data: null}`
|
||||
|
||||
#### createGroupPad(groupID, padName [, text])
|
||||
* API >= 1
|
||||
|
||||
creates a new pad in this group
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: null}`
|
||||
* `{code: 1, message:"pad does already exist", data: null}`
|
||||
* `{code: 1, message:"groupID does not exist", data: null}`
|
||||
|
||||
#### listAllGroups()
|
||||
* API >= 1.1
|
||||
|
||||
lists all existing groups
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: {groupIDs: ["g.mKjkmnAbSMtCt8eL", "g.3ADWx6sbGuAiUmCy"]}}`
|
||||
* `{code: 0, message:"ok", data: {groupIDs: []}}`
|
||||
|
||||
### Author
|
||||
These authors are bound to the attributes the users choose (color and name).
|
||||
|
||||
#### createAuthor([name])
|
||||
* API >= 1
|
||||
|
||||
creates a new author
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: {authorID: "a.s8oes9dhwrvt0zif"}}`
|
||||
|
||||
#### createAuthorIfNotExistsFor(authorMapper [, name])
|
||||
* API >= 1
|
||||
|
||||
this functions helps you to map your application author ids to Etherpad author ids
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: {authorID: "a.s8oes9dhwrvt0zif"}}`
|
||||
|
||||
#### listPadsOfAuthor(authorID)
|
||||
* API >= 1
|
||||
|
||||
returns an array of all pads this author contributed to
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: {padIDs: ["g.s8oes9dhwrvt0zif$test", "g.s8oejklhwrvt0zif$foo"]}}`
|
||||
* `{code: 1, message:"authorID does not exist", data: null}`
|
||||
|
||||
#### getAuthorName(authorID)
|
||||
* API >= 1.1
|
||||
|
||||
Returns the Author Name of the author
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: {authorName: "John McLear"}}`
|
||||
|
||||
-> can't be deleted cause this would involve scanning all the pads where this author was
|
||||
|
||||
### Session
|
||||
Sessions can be created between a group and an author. This allows an author to access more than one group. The sessionID will be set as a cookie to the client and is valid until a certain date. The session cookie can also contain multiple comma-seperated sessionIDs, allowing a user to edit pads in different groups at the same time. Only users with a valid session for this group, can access group pads. You can create a session after you authenticated the user at your web application, to give them access to the pads. You should save the sessionID of this session and delete it after the user logged out.
|
||||
|
||||
#### createSession(groupID, authorID, validUntil)
|
||||
* API >= 1
|
||||
|
||||
creates a new session. validUntil is an unix timestamp in seconds
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: {sessionID: "s.s8oes9dhwrvt0zif"}}`
|
||||
* `{code: 1, message:"groupID doesn't exist", data: null}`
|
||||
* `{code: 1, message:"authorID doesn't exist", data: null}`
|
||||
* `{code: 1, message:"validUntil is in the past", data: null}`
|
||||
|
||||
#### deleteSession(sessionID)
|
||||
* API >= 1
|
||||
|
||||
deletes a session
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 1, message:"ok", data: null}`
|
||||
* `{code: 1, message:"sessionID does not exist", data: null}`
|
||||
|
||||
#### getSessionInfo(sessionID)
|
||||
* API >= 1
|
||||
|
||||
returns informations about a session
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: {authorID: "a.s8oes9dhwrvt0zif", groupID: g.s8oes9dhwrvt0zif, validUntil: 1312201246}}`
|
||||
* `{code: 1, message:"sessionID does not exist", data: null}`
|
||||
|
||||
#### listSessionsOfGroup(groupID)
|
||||
* API >= 1
|
||||
|
||||
returns all sessions of a group
|
||||
|
||||
*Example returns:*
|
||||
* `{"code":0,"message":"ok","data":{"s.oxf2ras6lvhv2132":{"groupID":"g.s8oes9dhwrvt0zif","authorID":"a.akf8finncvomlqva","validUntil":2312905480}}}`
|
||||
* `{code: 1, message:"groupID does not exist", data: null}`
|
||||
|
||||
#### listSessionsOfAuthor(authorID)
|
||||
* API >= 1
|
||||
|
||||
returns all sessions of an author
|
||||
|
||||
*Example returns:*
|
||||
* `{"code":0,"message":"ok","data":{"s.oxf2ras6lvhv2132":{"groupID":"g.s8oes9dhwrvt0zif","authorID":"a.akf8finncvomlqva","validUntil":2312905480}}}`
|
||||
* `{code: 1, message:"authorID does not exist", data: null}`
|
||||
|
||||
### Pad Content
|
||||
|
||||
Pad content can be updated and retrieved through the API
|
||||
|
||||
#### getText(padID, [rev])
|
||||
* API >= 1
|
||||
|
||||
returns the text of a pad
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: {text:"Welcome Text"}}`
|
||||
* `{code: 1, message:"padID does not exist", data: null}`
|
||||
|
||||
#### setText(padID, text)
|
||||
* API >= 1
|
||||
|
||||
sets the text of a pad
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: null}`
|
||||
* `{code: 1, message:"padID does not exist", data: null}`
|
||||
* `{code: 1, message:"text too long", data: null}`
|
||||
|
||||
#### getHTML(padID, [rev])
|
||||
* API >= 1
|
||||
|
||||
returns the text of a pad formatted as HTML
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: {html:"Welcome Text<br>More Text"}}`
|
||||
* `{code: 1, message:"padID does not exist", data: null}`
|
||||
|
||||
### Chat
|
||||
#### getChatHistory(padID, [start, end])
|
||||
* API >= 1.2.7
|
||||
|
||||
returns
|
||||
|
||||
* a part of the chat history, when `start` and `end` are given
|
||||
* the whole chat histroy, when no extra parameters are given
|
||||
|
||||
|
||||
*Example returns:*
|
||||
|
||||
* `{"code":0,"message":"ok","data":{"messages":[{"text":"foo","userId":"a.foo","time":1359199533759,"userName":"test"},{"text":"bar","userId":"a.foo","time":1359199534622,"userName":"test"}]}}`
|
||||
* `{code: 1, message:"start is higher or equal to the current chatHead", data: null}`
|
||||
* `{code: 1, message:"padID does not exist", data: null}`
|
||||
|
||||
#### getChatHead(padID)
|
||||
* API >= 1.2.7
|
||||
|
||||
returns the chatHead (last number of the last chat-message) of the pad
|
||||
|
||||
|
||||
*Example returns:*
|
||||
|
||||
* `{code: 0, message:"ok", data: {chatHead: 42}}`
|
||||
* `{code: 1, message:"padID does not exist", data: null}`
|
||||
|
||||
|
||||
### Pad
|
||||
Group pads are normal pads, but with the name schema GROUPID$PADNAME. A security manager controls access of them and its forbidden for normal pads to include a $ in the name.
|
||||
|
||||
#### createPad(padID [, text])
|
||||
* API >= 1
|
||||
|
||||
creates a new (non-group) pad. Note that if you need to create a group Pad, you should call **createGroupPad**.
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: null}`
|
||||
* `{code: 1, message:"pad does already exist", data: null}`
|
||||
|
||||
#### getRevisionsCount(padID)
|
||||
* API >= 1
|
||||
|
||||
returns the number of revisions of this pad
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: {revisions: 56}}`
|
||||
* `{code: 1, message:"padID does not exist", data: null}`
|
||||
|
||||
#### padUsersCount(padID)
|
||||
* API >= 1
|
||||
|
||||
returns the number of user that are currently editing this pad
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: {padUsersCount: 5}}`
|
||||
|
||||
#### padUsers(padID)
|
||||
* API >= 1.1
|
||||
|
||||
returns the list of users that are currently editing this pad
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: {padUsers: [{colorId:"#c1a9d9","name":"username1","timestamp":1345228793126,"id":"a.n4gEeMLsvg12452n"},{"colorId":"#d9a9cd","name":"Hmmm","timestamp":1345228796042,"id":"a.n4gEeMLsvg12452n"}]}}`
|
||||
* `{code: 0, message:"ok", data: {padUsers: []}}`
|
||||
|
||||
#### deletePad(padID)
|
||||
* API >= 1
|
||||
|
||||
deletes a pad
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: null}`
|
||||
* `{code: 1, message:"padID does not exist", data: null}`
|
||||
|
||||
#### getReadOnlyID(padID)
|
||||
* API >= 1
|
||||
|
||||
returns the read only link of a pad
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: {readOnlyID: "r.s8oes9dhwrvt0zif"}}`
|
||||
* `{code: 1, message:"padID does not exist", data: null}`
|
||||
|
||||
#### setPublicStatus(padID, publicStatus)
|
||||
* API >= 1
|
||||
|
||||
sets a boolean for the public status of a pad
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: null}`
|
||||
* `{code: 1, message:"padID does not exist", data: null}`
|
||||
|
||||
#### getPublicStatus(padID)
|
||||
* API >= 1
|
||||
|
||||
return true of false
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: {publicStatus: true}}`
|
||||
* `{code: 1, message:"padID does not exist", data: null}`
|
||||
|
||||
#### setPassword(padID, password)
|
||||
* API >= 1
|
||||
|
||||
returns ok or a error message
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: null}`
|
||||
* `{code: 1, message:"padID does not exist", data: null}`
|
||||
|
||||
#### isPasswordProtected(padID)
|
||||
* API >= 1
|
||||
|
||||
returns true or false
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: {passwordProtection: true}}`
|
||||
* `{code: 1, message:"padID does not exist", data: null}`
|
||||
|
||||
#### listAuthorsOfPad(padID)
|
||||
* API >= 1
|
||||
|
||||
returns an array of authors who contributed to this pad
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: {authorIDs : ["a.s8oes9dhwrvt0zif", "a.akf8finncvomlqva"]}`
|
||||
* `{code: 1, message:"padID does not exist", data: null}`
|
||||
|
||||
#### getLastEdited(padID)
|
||||
* API >= 1
|
||||
|
||||
returns the timestamp of the last revision of the pad
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: {lastEdited: 1340815946602}}`
|
||||
* `{code: 1, message:"padID does not exist", data: null}`
|
||||
|
||||
#### sendClientsMessage(padID, msg)
|
||||
* API >= 1.1
|
||||
|
||||
sends a custom message of type `msg` to the pad
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: {}}`
|
||||
* `{code: 1, message:"padID does not exist", data: null}`
|
||||
|
||||
#### checkToken()
|
||||
* API >= 1.2
|
||||
|
||||
returns ok when the current api token is valid
|
||||
|
||||
*Example returns:*
|
||||
* `{"code":0,"message":"ok","data":null}`
|
||||
* `{"code":4,"message":"no or wrong API Key","data":null}`
|
||||
|
||||
### Pads
|
||||
|
||||
#### listAllPads()
|
||||
* API >= 1.2.1
|
||||
|
||||
lists all pads on this epl instance
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: {padIDs: ["testPad", "thePadsOfTheOthers"]}}`
|
14
sources/doc/api/pluginfw.md
Normal file
14
sources/doc/api/pluginfw.md
Normal file
|
@ -0,0 +1,14 @@
|
|||
# Plugin Framework
|
||||
`require("ep_etherpad-lite/static/js/plugingfw/plugins")`
|
||||
|
||||
## plugins.update
|
||||
`require("ep_etherpad-lite/static/js/plugingfw/plugins").update()` will use npm to list all installed modules and read their ep.json files, registering the contained hooks.
|
||||
A hook registration is a pairs of a hook name and a function reference (filename for require() plus function name)
|
||||
|
||||
## hooks.callAll
|
||||
`require("ep_etherpad-lite/static/js/plugingfw/hooks").callAll("hook_name", {argname:value})` will call all hook functions registered for `hook_name` with `{argname:value}`.
|
||||
|
||||
## hooks.aCallAll
|
||||
?
|
||||
|
||||
## ...
|
44
sources/doc/assets/style.css
Normal file
44
sources/doc/assets/style.css
Normal file
|
@ -0,0 +1,44 @@
|
|||
body.apidoc {
|
||||
width: 60%;
|
||||
min-width: 10cm;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
#header {
|
||||
background-color: #5a5;
|
||||
padding: 10px;
|
||||
color: #111;
|
||||
}
|
||||
|
||||
a,
|
||||
a:active {
|
||||
color: #272;
|
||||
}
|
||||
a:focus,
|
||||
a:hover {
|
||||
color: #050;
|
||||
}
|
||||
|
||||
#apicontent a.mark,
|
||||
#apicontent a.mark:active {
|
||||
float: right;
|
||||
color: #BBB;
|
||||
font-size: 0.7cm;
|
||||
text-decoration: none;
|
||||
}
|
||||
#apicontent a.mark:focus,
|
||||
#apicontent a.mark:hover {
|
||||
color: #AAA;
|
||||
}
|
||||
|
||||
#apicontent code {
|
||||
padding: 1px;
|
||||
background-color: #EEE;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #DDD;
|
||||
}
|
||||
#apicontent pre>code {
|
||||
display: block;
|
||||
overflow: auto;
|
||||
padding: 5px;
|
||||
}
|
11
sources/doc/custom_static.md
Normal file
11
sources/doc/custom_static.md
Normal file
|
@ -0,0 +1,11 @@
|
|||
# Custom static files
|
||||
Etherpad allows you to include your own static files in the browser, by modifying the files in `static/custom`.
|
||||
|
||||
* `index.js` Javascript that'll be run in `/`
|
||||
* `index.css` Stylesheet affecting `/`
|
||||
* `pad.js` Javascript that'll be run in `/p/:padid`
|
||||
* `pad.css` Stylesheet affecting `/p/:padid`
|
||||
* `timeslider.js` Javascript that'll be run in `/p/:padid/timeslider`
|
||||
* `timeslider.css` Stylesheet affecting `/p/:padid/timeslider`
|
||||
* `favicon.ico` Overrides the default favicon.
|
||||
* `robots.txt` Overrides the default `robots.txt`.
|
67
sources/doc/database.md
Normal file
67
sources/doc/database.md
Normal file
|
@ -0,0 +1,67 @@
|
|||
# Database structure
|
||||
|
||||
## Keys and their values
|
||||
|
||||
### groups
|
||||
A list of all existing groups (a JSON object with groupIDs as keys and `1` as values).
|
||||
|
||||
### pad:$PADID
|
||||
Saves all informations about pads
|
||||
|
||||
* **atext** - the latest attributed text
|
||||
* **pool** - the attribute pool
|
||||
* **head** - the number of the latest revision
|
||||
* **chatHead** - the number of the latest chat entry
|
||||
* **public** - flag that disables security for this pad
|
||||
* **passwordHash** - string that contains a bcrypt hashed password for this pad
|
||||
|
||||
### pad:$PADID:revs:$REVNUM
|
||||
Saves a revision $REVNUM of pad $PADID
|
||||
|
||||
* **meta**
|
||||
* **author** - the autorID of this revision
|
||||
* **timestamp** - the timestamp of when this revision was created
|
||||
* **changeset** - the changeset of this revision
|
||||
|
||||
### pad:$PADID:chat:$CHATNUM
|
||||
Saves a chatentry with num $CHATNUM of pad $PADID
|
||||
|
||||
* **text** - the text of this chat entry
|
||||
* **userId** - the autorID of this chat entry
|
||||
* **time** - the timestamp of this chat entry
|
||||
|
||||
### pad2readonly:$PADID
|
||||
Translates a padID to a readonlyID
|
||||
### readonly2pad:$READONLYID
|
||||
Translates a readonlyID to a padID
|
||||
### token2author:$TOKENID
|
||||
Translates a token to an authorID
|
||||
### globalAuthor:$AUTHORID
|
||||
Information about an author
|
||||
|
||||
* **name** - the name of this author as shown in the pad
|
||||
* **colorID** - the colorID of this author as shown in the pad
|
||||
|
||||
### mapper2group:$MAPPER
|
||||
Maps an external application identifier to an internal group
|
||||
### mapper2author:$MAPPER
|
||||
Maps an external application identifier to an internal author
|
||||
### group:$GROUPID
|
||||
a group of pads
|
||||
|
||||
* **pads** - object with pad names in it, values are 1
|
||||
### session:$SESSIONID
|
||||
a session between an author and a group
|
||||
|
||||
* **groupID** - the groupID the session belongs too
|
||||
* **authorID** - the authorID the session belongs too
|
||||
* **validUntil** - the timestamp until this session is valid
|
||||
|
||||
### author2sessions:$AUTHORID
|
||||
saves the sessions of an author
|
||||
|
||||
* **sessionsIDs** - object with sessionIDs in it, values are 1
|
||||
|
||||
### group2sessions:$GROUPID
|
||||
|
||||
* **sessionsIDs** - object with sessionIDs in it, values are 1
|
15
sources/doc/documentation.md
Normal file
15
sources/doc/documentation.md
Normal file
|
@ -0,0 +1,15 @@
|
|||
# About this Documentation
|
||||
|
||||
<!-- type=misc -->
|
||||
|
||||
The goal of this documentation is to comprehensively explain Etherpad,
|
||||
both from a reference as well as a conceptual point of view.
|
||||
|
||||
Where appropriate, property types, method arguments, and the arguments
|
||||
provided to event handlers are detailed in a list underneath the topic
|
||||
heading.
|
||||
|
||||
Every `.html` file is generated based on the corresponding
|
||||
`.markdown` file in the `doc/api/` folder in the source tree. The
|
||||
documentation is generated using the `tools/doc/generate.js` program.
|
||||
The HTML template is located at `doc/template.html`.
|
2
sources/doc/easysync/README.md
Normal file
2
sources/doc/easysync/README.md
Normal file
|
@ -0,0 +1,2 @@
|
|||
# About this folder
|
||||
We put all documentations we found about the original Etherpad together in this folder. Most of this is still valid for the current (node.js based) Etherpad.
|
BIN
sources/doc/easysync/easysync-full-description.pdf
Normal file
BIN
sources/doc/easysync/easysync-full-description.pdf
Normal file
Binary file not shown.
372
sources/doc/easysync/easysync-full-description.tex
Normal file
372
sources/doc/easysync/easysync-full-description.tex
Normal file
|
@ -0,0 +1,372 @@
|
|||
\documentclass{article}
|
||||
\usepackage{hyperref}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\title{Etherpad and EasySync Technical Manual}
|
||||
\author{AppJet, Inc., with modifications by the Etherpad Foundation}
|
||||
\date{\today}
|
||||
|
||||
\maketitle
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\tableofcontents
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\section{Documents}
|
||||
\begin{itemize}
|
||||
\item A document is a list of characters, or a string.
|
||||
\item A document can also be represented as a list of \emph{changesets}.
|
||||
\end{itemize}
|
||||
|
||||
\section{Changesets}
|
||||
|
||||
\begin{itemize}
|
||||
\item A changeset represents a change to a document.
|
||||
\item A changeset can be applied to a document to produce a new document.
|
||||
\item When a document is represented as a list of changesets, it is assumed that the first changeset applies to the empty document, [].
|
||||
\end{itemize}
|
||||
|
||||
|
||||
\section{Changeset representation} \label{representation}
|
||||
|
||||
$$(\ell \rightarrow \ell')[c_1,c_2,c_3,...]$$
|
||||
|
||||
where
|
||||
|
||||
\begin{itemize}
|
||||
\item[] $\ell$ is the length of the document before the change,
|
||||
\item[] $\ell'$ is the length of the document after the change,
|
||||
\item[] $[c_1,c_2,c_3,...]$ is an array of $\ell'$ characters that described the document after the change.
|
||||
\end{itemize}
|
||||
|
||||
Note that $\forall c_i : 0 \leq i \leq \ell'$ is either an integer or a character.
|
||||
|
||||
\begin{itemize}
|
||||
\item Integers represent retained characters in the original document.
|
||||
\item Characters represent insertions.
|
||||
\end{itemize}
|
||||
|
||||
\section{Constraints on Changesets}
|
||||
|
||||
\begin{itemize}
|
||||
\item Changesets are canonical and therefor comparable. When represented in computer memory, we always use the same representation for the same changeset. If the memory representation of two changesets differ, they must be different changesets.
|
||||
\item Changesets are compact. Thus, if there are two ways to represent a changeset in computer memory, then we always use the representation that takes up the fewest bytes.
|
||||
\end{itemize}
|
||||
|
||||
Later we will discuss optimizations to changeset
|
||||
representation (using ``strips'' and other such
|
||||
techniques). The two constraints must apply to any
|
||||
representation of changesets.
|
||||
|
||||
\section{Notation}
|
||||
|
||||
\begin{itemize}
|
||||
\item We use the algebraic multiplication notation to represent changeset application.
|
||||
\item While changesets are defined as operations on documents, documents themselves are represented as a list of changesets, initially applying to the empty document.
|
||||
\end{itemize}
|
||||
|
||||
\paragraph{Example}
|
||||
$A=(0\rightarrow 5)[``hello"]$
|
||||
$B=(5\rightarrow 11)[0-4, ``\ world"]$
|
||||
|
||||
We can write the document ``hello world'' as $A\cdot B$ or
|
||||
just $AB$. Note that the ``initial document'' can be made
|
||||
into the changeset $(0\rightarrow
|
||||
N)[``<\mathit{the\ document\ text}>"]$.
|
||||
|
||||
When $A$ and $B$ are changesets, we can also refer to $(AB)$ as ``the composition'' of $A$ and $B$. Changesets are closed under composition.
|
||||
|
||||
\section{Composition of Changesets}
|
||||
|
||||
For any two changesets $A$, $B$ such that
|
||||
|
||||
\begin{itemize}
|
||||
\item[] $A=(n_1\rightarrow n_2)[\cdots]$
|
||||
\item[] $A=(n_2\rightarrow n_3)[\cdots]$
|
||||
\end{itemize}
|
||||
it is clear that there is a third changeset $C=(n_1\rightarrow n_3)[\cdots]$ such that applying $C$ to a document $X$ yeilds the same resulting document as does applying $A$ and then $B$. In this case, we write $AB=C$.
|
||||
|
||||
Given the representation from Section \ref{representation}, it is straightforward to compute the composition of two changesets.
|
||||
|
||||
\section{Changeset Merging}
|
||||
|
||||
Now we come to realtime document editing. Suppose two different users make two different changes to the same document at the same time. It is impossible to compose these changes. For example, if we have the document $X$ of length $n$, we may have $A=(n\rightarrow n_a)[\ldots n_a \mathrm{characters}]$, $B=(n\rightarrow n_b)[\ldots n_b \mathrm{characters}]$ where $n\neq n_a\neq n_b$.
|
||||
|
||||
It is impossible to compute $(XA)B$ because $B$ can only be applied to a document of length $n$, and $(XA)$ has length $n_a$. Similarly, $A$ cannot be appliet to $(XB)$ because $(XB)$ has length $n_b$.
|
||||
|
||||
This is where \emph{merging} comes in. Merging takes two changesets that apply to the same initial document (and that cannot be composed), and computes a single new changeset that presevers the intent of both changes. The merge of $A$ and $B$ is written as $m(A,B)$. For the Etherpad system to work, we require that $m(A,B)=m(B,A)$.
|
||||
|
||||
Aside from what we have said so far about merging, there aremany different implementations that will lead to a workable system. We have created one implementation for text that has the following constraints.
|
||||
|
||||
\section{Follows} \label{follows}
|
||||
|
||||
When users $A$ and $B$ have the same document $X$ on their screen, and they proceed to make respective changesets $A$ and $B$, it is no use to compute $m(A,B)$, because $m(A,B)$ applies to document $X$, but the users are already looking at document $XA$ and $XB$. What we really want is to compute $B'$ and $A'$ such that
|
||||
$$XAB' = XBA' = Xm(A,B)$$
|
||||
|
||||
``Following'' computes these $B'$ and $A'$ changesets. The definition of the ``follow'' function $f$ is such that $Af(A,B)=Bf(B,A)=m(A,B)=m(B,A)$. When we computer $f(A,B)$.
|
||||
\begin{itemize}
|
||||
\item Insertions in $A$ become retained characters in $f(A,B)$
|
||||
\item Insertions in $B$ become insertions in $f(A,B)$
|
||||
\item Retain whatever characters are retained in \emph{both} $A$ and $B$
|
||||
\end{itemize}
|
||||
|
||||
\paragraph{Example}
|
||||
|
||||
Suppose we have the initial document $X=(0\rightarrow 8)[``\mathit{baseball}"]$ and user $A$ changes it to ``basil'' with changeset $A$, and user $B$ changes it to ``below'' with changeset $B$.
|
||||
|
||||
We have
|
||||
$X=(0\rightarrow 8)[``\mathit{baseball}"]$ \\
|
||||
$A=(8\rightarrow 5)[0-1, ``\mathit{si}", 7]$ \\
|
||||
$B=(8\rightarrow 5)[0, ``\mathit{e}", 6, ``\mathit{ow}"]$ \\
|
||||
|
||||
First we compute the merge $m(A,B)=m(B,A)$ according to the constraints
|
||||
|
||||
$$m(A,B)=(8\rightarrow 6)[0, "e", "si", "ow"] = (8\rightarrow 6)[0, ``\mathit{esiow}"]$$
|
||||
|
||||
Then we need to compute the follows $B'=f(A,B)$ and $A'=f(B,A)$.
|
||||
|
||||
$$B'=f(A,B)=(5\rightarrow 6)[0,``\mathit{e}",2,3,``\mathit{ow}"]$$
|
||||
|
||||
Note that the numbers $0$, $2$, and $3$ are indices into $A=(8\rightarrow 5)[0,1,``\mathit{si}",7]$
|
||||
|
||||
\begin{tabular}{ccccc}
|
||||
0 & 1 & 2 & 3 & 4 \\
|
||||
0 & 1 & s & i & 7
|
||||
\end{tabular}
|
||||
|
||||
$A'=f(B,A)=(5\rightarrow 6)[0,1,"si",3,4]$
|
||||
|
||||
We can now double check that $AB'=BA'=m(A,B)=(8\rightarrow 6)[0,``\mathit{esiow}"]$.
|
||||
|
||||
Now that we have made the mathematical meaning of the
|
||||
preceding pages complete, we can build a client/server
|
||||
system to support realtime editing by multiple users.
|
||||
|
||||
\section{System Overview}
|
||||
|
||||
There is a server that holds the current state of a
|
||||
document. Clients (users) can connect to the server from
|
||||
their web browsers. The clients and server maintain state
|
||||
and can send messages to one another in real-time, but
|
||||
because we are in a web browser scenario, clients cannot
|
||||
send each other messages directly, and must go through the
|
||||
server always. (This may distinguish from prior art?)
|
||||
|
||||
The other critical design feature of the system is that
|
||||
\emph{A client must always be able to edit their local
|
||||
copy of the document, so the user is never blocked from
|
||||
typing because of waiting to to send or receive data.}
|
||||
|
||||
\section{Client State}
|
||||
|
||||
At any moment in time, a client maintains its state in the
|
||||
form of 3 changesets. The client document looks like
|
||||
$A\cdot X \cdot Y$, where
|
||||
|
||||
$A$ is the latest server version, the composition of all
|
||||
changesets committed to the server, from this client or
|
||||
from others, that the server has informed this client
|
||||
about. Initially $A=(0\rightarrow N)[<\mathit{initial\ document\ text}>]$.
|
||||
|
||||
$X$ is the composition of all changesets this client has
|
||||
submitted to the server but has not heard back about yet.
|
||||
Initially $X=(N\rightarrow N)[0,1,2,\ldots, N-1]$, in
|
||||
other words, the identity, henceforth denoted $I_N$.
|
||||
|
||||
$Y$ is the composition of all changesets this client has
|
||||
made but has not yet submitted to the server yet.
|
||||
Initially $Y=(N\rightarrow N)[0,1,2,\ldots, N-1]$.
|
||||
|
||||
\section{Client Operations}
|
||||
|
||||
A client can do 5 things.
|
||||
|
||||
\begin{enumerate}
|
||||
\item Incorporate new typing into local state
|
||||
\item Submit a changeset to the server
|
||||
\item Hear back acknowledgement of a submitted changeset
|
||||
\item Hear from the server about other clients' changesets
|
||||
\item Connect to the server and request the initial document
|
||||
\end{enumerate}
|
||||
|
||||
As these 5 events happen, the client updates its
|
||||
representation $A\cdot X \cdot Y$ according to the
|
||||
relations that follow. Changes ``move left'' as time goes
|
||||
by: into $Y$ when the user types, into $X$ when change
|
||||
sets are submitted to the server, and into $A$ when the
|
||||
server acknowledges changesets.
|
||||
|
||||
\subsection{New local typing}
|
||||
|
||||
When a user makes an edit $E$ to the document, the client
|
||||
computes the composition $(Y\cdot E)$ and updates its local
|
||||
state, i.e. $Y \leftarrow Y\cdot E$. I.e., if $Y$ is the
|
||||
variable holding local unsubmitted changes, it will be
|
||||
assigned the new value $(Y\cdot E)$.
|
||||
|
||||
\subsection{Submitting changesets to server}
|
||||
|
||||
When a client submit its local changes to the server, it
|
||||
transmits a copy of $Y$ and then assigns $Y$ to $X$, and
|
||||
assigns the identity to $Y$. I.e.,
|
||||
|
||||
\begin{enumerate}
|
||||
\item Send $Y$ to server,
|
||||
\item $X \leftarrow Y$
|
||||
\item $Y \leftarrow I_N$
|
||||
(the identity).
|
||||
\end{enumerate}
|
||||
|
||||
This happens every 500ms as long as it receives an
|
||||
acknowledgement. Must receive ACK before submitting
|
||||
again. Note that $X$ is always equal to the identity
|
||||
before the second step occurs, so no information is lost.
|
||||
|
||||
\subsection{Hear ACK from server}
|
||||
|
||||
When the client hears ACK from server,
|
||||
|
||||
$A \leftarrow A\cdot X$ \\
|
||||
$X \leftarrow I_N$
|
||||
|
||||
\subsection{Hear about another client's changeset}
|
||||
|
||||
When a client hears about another client's changeset $B$,
|
||||
it computes a new $A$, $X$, and $Y$, which we will call
|
||||
$A'$, $X'$, and $Y'$ respectively. It also computes a
|
||||
changeset $D$ which is applied to the current text view on
|
||||
the client, $V$. Because $AXY$ must always equal the
|
||||
current view, $AXY=V$ before the client hears about $B$,
|
||||
and $A'X'Y'=VD$ after the computation is performed.
|
||||
|
||||
The steps are:
|
||||
|
||||
\begin{enumerate}
|
||||
\item Compute $A' = AB$
|
||||
\item Compute $X' = f(B,X)$
|
||||
\item Compute $Y' = f(f(X,B), Y)$
|
||||
\item Compute $D=f(Y,f(X,B))$
|
||||
\item Assign $A \leftarrow A'$, $X \leftarrow X'$, $Y \leftarrow Y'$.
|
||||
\item Apply $D$ to the current view of the document
|
||||
displayed on the user's screen.
|
||||
\end{enumerate}
|
||||
|
||||
In steps 2,3, and 4, $f$ is the follow operation described
|
||||
in Section \ref{follows}.
|
||||
|
||||
\paragraph{Proof that $\mathbf{AXY=V \Rightarrow A'X'Y'=VD}$.}
|
||||
Substituting $A'X'Y'=(AB)(f(B,X))(f(f(X,B),Y))$, we
|
||||
recall that merges are commutative. So for any two
|
||||
changesets $P$ and $Q$,
|
||||
$$m(P,Q)=m(Q,P)=Qf(Q,P)=Pf(P,Q)$$
|
||||
|
||||
Applying this to the relation above, we see
|
||||
\begin{eqnarray*}
|
||||
A'X'Y'&=& AB f(B,X) f(f(X,B),Y) \\
|
||||
&=&AX f(X,B) f(f(X,B),Y) \\
|
||||
&=&A X Y f(Y, f(X,B)) \\
|
||||
&=&A X Y D \\
|
||||
&=&V D
|
||||
\end{eqnarray*}
|
||||
As claimed.
|
||||
|
||||
\subsection{Connect to server}
|
||||
|
||||
When a client connects to the server for the first time,
|
||||
it first generates a random unique ID and sends this to
|
||||
the server. The client remembers this ID and sends it
|
||||
with each changeset to the server.
|
||||
|
||||
The client receives the latest version of the document
|
||||
from the server, called HEADTEXT. The client then sets
|
||||
|
||||
\begin{itemize}
|
||||
\item[] $A \leftarrow \mathrm{HEADTEXT}$
|
||||
\item[] $X \leftarrow I_N$
|
||||
\item[] $Y \leftarrow I_N$
|
||||
\end{itemize}
|
||||
|
||||
And finally, the client displays HEADTEXT on the screen.
|
||||
|
||||
\section{Server Overview}
|
||||
|
||||
Like the client(s), the server has state and performs
|
||||
operations. Operations are only performed in response to
|
||||
messages from clients.
|
||||
|
||||
\section{Server State}
|
||||
|
||||
The server maintains a document as an ordered list of
|
||||
\emph{revision records}. A revision record is a data
|
||||
structure that contains a changeset and authorship
|
||||
information.
|
||||
|
||||
\begin{verbatim}
|
||||
RevisionRecord = {
|
||||
ChangeSet,
|
||||
Source (unique ID),
|
||||
Revision Number (consecutive order, starting at 0)
|
||||
}
|
||||
\end{verbatim}
|
||||
|
||||
For efficiency, the server may also store a variable
|
||||
called HEADTEXT, which is the composition of all
|
||||
changesets in the list of revision records. This is an
|
||||
optimization, because clearly this can be computed from
|
||||
the set of revision records.
|
||||
|
||||
\section{Server Operations Overview}
|
||||
|
||||
The server does two things in addition to maintaining
|
||||
state representing the set of connected clients and
|
||||
remembering what revision number each client is up to date
|
||||
with:
|
||||
|
||||
\begin{enumerate}
|
||||
\item Respond to a client's connection requesting the initial document.
|
||||
\item Respond to a client's submission of a new changeset.
|
||||
\end{enumerate}
|
||||
|
||||
\subsection{Respond to client connect}
|
||||
When a server recieves a connection request from a client,
|
||||
it receives the client's unique ID and stores that in the
|
||||
server's set of connected clients. It then sends the
|
||||
client the contents of HEADTEXT, and the corresponding
|
||||
revision number. Finally the server notes that this
|
||||
client is up to date with that revision number.
|
||||
|
||||
\subsection{Respond to client changeset}
|
||||
|
||||
When the server receives information from a client about
|
||||
the client's changeset $C$, it does five things:
|
||||
|
||||
\begin{enumerate}
|
||||
\item Notes that this change applies to revision number
|
||||
$r_c$ (the client's latest revision).
|
||||
\item Creates a new changeset $C'$ that is relative to the
|
||||
server's most recent revision number, which we call
|
||||
$r_H$ ($H$ for HEAD). $C'$ can be computed using
|
||||
follows (Section \ref{follows}). Remember that the server has a series of
|
||||
changesets,
|
||||
$$S_0\rightarrow S_1\rightarrow \ldots S_{r_c}\rightarrow S_{r_c+1} \rightarrow \ldots \rightarrow S_{r_H} $$
|
||||
$C$ is relative to $S_{r_c}$, but we need to compute $C'$ relative to $S_{r_H}$.
|
||||
We can compute a new $C$ relative to $S_{r_c+1}$ by computing $f(S_{r_c+1},C)$. Similarly we can repeat for
|
||||
$S_{r_c+2}$ and so forth until we have $C'$ represented relative to $S_{r_H}$.
|
||||
\item Send $C'$ to all other clients
|
||||
\item Send ACK back to original client
|
||||
\item Add $C'$ to the server's list of revision records by creating a new revision record out of this and the client's ID.
|
||||
|
||||
\appendix
|
||||
|
||||
\section*{Additional topics}
|
||||
\begin{enumerate}
|
||||
\item Optimizations (strips, more caching, etc.)
|
||||
\item Pseudocode for composition, merge, and follow
|
||||
\item How authorship information is used to color-code the document based on who typed what
|
||||
\item How persistent connections are maintained between client and server
|
||||
\end{enumerate}
|
||||
\end{enumerate}
|
||||
|
||||
|
||||
\end{document}
|
BIN
sources/doc/easysync/easysync-notes.pdf
Normal file
BIN
sources/doc/easysync/easysync-notes.pdf
Normal file
Binary file not shown.
200
sources/doc/easysync/easysync-notes.tex
Normal file
200
sources/doc/easysync/easysync-notes.tex
Normal file
|
@ -0,0 +1,200 @@
|
|||
\documentclass[12pt]{article}
|
||||
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage[USenglish]{babel}
|
||||
|
||||
|
||||
\begin{document}
|
||||
|
||||
\title{Easysync Protocol}
|
||||
\author{AppJet, Inc., with modifications by the Etherpad Foundation}
|
||||
\date{\today}
|
||||
|
||||
\maketitle
|
||||
|
||||
\section{Attributes}
|
||||
|
||||
An ``attribute'' is a (key,value) pair such as
|
||||
\verb|(author,abc123)| or \verb|(bold,true)|.
|
||||
Sometimes an attribute is treated as an instruction to add
|
||||
that attribute, in which case an empty value means to
|
||||
remove it. So \verb|(bold,)| removes the ``bold''
|
||||
attribute. Attributes are interned and given numeric IDs,
|
||||
so the number ``\verb|6|'' could represent
|
||||
``\verb|(bold,true)|'', for example. This mapping is
|
||||
stored in an attribute pool which may be shared by
|
||||
multiple changesets.
|
||||
|
||||
Entries in the pool must be unique, so that attributes can
|
||||
be compared by their IDs. Attribute names cannot contain
|
||||
commas.
|
||||
|
||||
A changeset looks something like the following:
|
||||
|
||||
\begin{verbatim}
|
||||
Z:5g>1|5=2p=v*4*5+1$x
|
||||
\end{verbatim}
|
||||
|
||||
With the corresponding pool containing these entries (among others):
|
||||
|
||||
\begin{itemize}
|
||||
\item[] \verb|4| $\rightarrow$ \verb|(author,1059348573)|
|
||||
\item[] \verb|5| $\rightarrow$ \verb|(bold,true)|
|
||||
\end{itemize}
|
||||
|
||||
This changeset, together with the attribute pool,
|
||||
represents inserting a bold letter ``x'' into the middle
|
||||
of a line.
|
||||
|
||||
The string consists of:
|
||||
|
||||
\begin{itemize}
|
||||
\item a letter \verb|Z| (the ``magic character'' and
|
||||
format version identifier)
|
||||
\item a series punctuation marks (operation codes or
|
||||
``opcodes'' for short), together with alphanumerics
|
||||
(numeric values in base 36).
|
||||
\item a dollar sign (\verb|$|)
|
||||
\item a string of characters used for insertion operations
|
||||
(the ``char bank'')
|
||||
\end{itemize}
|
||||
|
||||
In the example above, if we separate out the operations
|
||||
and convert the numbers to base 10, then we get:
|
||||
\begin{verbatim}
|
||||
Z :196 >1 |5=97 =31 *4 *5 +1 $x
|
||||
\end{verbatim}
|
||||
Here are descriptions of the operations, where capital
|
||||
letters are variables:
|
||||
|
||||
\begin{description}
|
||||
\item{{\bf :N}} \quad \\
|
||||
Source text has length $N$ (must be first op)
|
||||
\item{{\bf >N}} \quad \\
|
||||
Final text is $N$ (positive) characters longer than source
|
||||
text (must be second op)
|
||||
\item{{\bf <N }} \quad \\
|
||||
Final text is $N$ (positive) characters shorter than
|
||||
source text (must be second op)
|
||||
\item{{\bf >0 }} \quad \\
|
||||
Final text is same length as source text
|
||||
\item{{\bf +N }} \quad \\
|
||||
Insert $N$ characters from the bank, none of them newlines
|
||||
\item{{\bf -N}} \quad \\
|
||||
Skip over (delete) $N$ characters from the source text,
|
||||
none of them newlines
|
||||
\item{{\bf =N}} \quad \\
|
||||
Keep $N$ characters from the source text, none of them newlines
|
||||
\item{{\bf |L+N}} \quad \\
|
||||
Insert $N$ characters from the source text, containing $L$
|
||||
newlines. The last character inserted MUST be a newline,
|
||||
but not the (new) document's final newline.
|
||||
\item{{\bf |L-N}} \quad \\
|
||||
Delete $N$ characters from the source text, containing $L$
|
||||
newlines. The last character inserted MUST be a newline,
|
||||
but not the (old) document's final newline.
|
||||
\item{{\bf |L=N}} \quad \\
|
||||
Keep $N$ characters from the source text, containing L
|
||||
newlines. The last character kept MUST be a newline, and
|
||||
the final newline of the document is allowed.
|
||||
\item{{\bf *I}} \quad \\
|
||||
Apply attribute $I$ from the pool to the following
|
||||
\verb|+|, \verb|=|, \verb_|+_, or \verb_|=_ command. In
|
||||
other words, any number of \verb|*| ops can come before a
|
||||
\verb_+_, \verb_=_, or \verb_|_ but not between a \verb_|_
|
||||
and the corresponding \verb_+_ or \verb_=_. If \verb_+_,
|
||||
text is inserted having this attribute. If \verb_=_, text
|
||||
is kept but with the attribute applied as an attribute
|
||||
addition or removal. Consecutive attributes must be sorted
|
||||
lexically by (key,value) with key and value taken as
|
||||
strings. It's illegal to have duplicate keys for
|
||||
(key,value) pairs that apply to the same text. It's
|
||||
illegal to have an empty value for a key in the case of an
|
||||
insertion (\verb_+_), the pair should just be omitted.
|
||||
\end{description}
|
||||
|
||||
Characters from the source text that aren't accounted for
|
||||
are assumed to be kept with the same attributes.
|
||||
|
||||
\paragraph{Additional Constraints}
|
||||
|
||||
\begin{itemize}
|
||||
\item Consecutive \verb_+_, \verb_-_, and \verb_=_ ops of
|
||||
the same type that could be combined are not allowed.
|
||||
Whether combination is possible depends on the
|
||||
attributes of the ops and whether each is multiline or
|
||||
not. For example, two multiline deletions can never be
|
||||
consecutive, nor can any insertion come after a
|
||||
non-multiline insertion with the same attributes.
|
||||
\item ``No-op'' ops are not allowed, such as deleting 0
|
||||
characters. However, attribute applications that don't
|
||||
have any effect are allowed.
|
||||
\item Characters at the end of the source text cannot be
|
||||
explicitly kept with no changes; if the change doesn't
|
||||
affect the last $N$ characters, those ``keep'' ops must
|
||||
be left off.
|
||||
\item In any consecutive sequence of insertions (\verb_+_)
|
||||
and deletions (\verb_-_) with no keeps (\verb_=_), the
|
||||
deletions must come before the insertions.
|
||||
\item The document text before and after will always end
|
||||
with a newline. This policy avoids a lot of
|
||||
special-casing of the end of the document. If a final
|
||||
newline is always added when importing text and removed
|
||||
when exporting text, then the changeset representation
|
||||
can be used to process text files that may or may not
|
||||
have a final newline.
|
||||
\end{itemize}
|
||||
|
||||
\paragraph{Attribution string}
|
||||
|
||||
An \emph{attribution string} is a series of inserts with
|
||||
no deletions or keeps. For example, ``\verb_*3+8|1+5_''
|
||||
describes the attributes of a string of length 13, where
|
||||
the first 8 chars have attribute 3 and the next 5 chars
|
||||
have no attributes, with the last of these 5 chars being a
|
||||
newline. Constraints apply similar to those affecting
|
||||
changesets, but the restriction about the final newline of
|
||||
the new document being added doesn't apply.
|
||||
|
||||
Attributes in an attribution string cannot be empty, like
|
||||
``\verb|(bold,)|'', they should instead be absent.
|
||||
|
||||
|
||||
\section{Further Considerations}
|
||||
|
||||
\begin{itemize}
|
||||
\item composing changesets/attributions with different
|
||||
pools.
|
||||
\item generalizing ``applyToAttribution'' to make
|
||||
``mutateAttributionLines'' and ``compose''
|
||||
\end{itemize}
|
||||
|
||||
\section{Using Unicode?}
|
||||
|
||||
\begin{itemize}
|
||||
\item no unicode (for efficient escaping, sightliness)
|
||||
\item efficient operations for ACE and collab (attributed text, etc.)
|
||||
\item good for time-slider
|
||||
\item good for API
|
||||
\item line-ending aware
|
||||
X more coherent (deleting or styling text merging with insertion)
|
||||
\item server-side syntax highlighting?
|
||||
\item unify author map with attribute pool
|
||||
\item unify attributed text with changeset rep
|
||||
\item not: reversible
|
||||
\item force final newline of document to be preserved
|
||||
\end{itemize}
|
||||
|
||||
\paragraph{Unicode bad!}
|
||||
|
||||
\begin{itemize}
|
||||
\item ugly (hard to read)
|
||||
\item more complex to parse
|
||||
\item harder to store and transmit correctly
|
||||
\item doesn't save all that much space anyway
|
||||
\item blows up in size when string-escaped
|
||||
\item embarrassing for API
|
||||
\end{itemize}
|
||||
|
||||
|
||||
\end{document}
|
133
sources/doc/easysync/easysync-notes.txt
Normal file
133
sources/doc/easysync/easysync-notes.txt
Normal file
|
@ -0,0 +1,133 @@
|
|||
|
||||
|
||||
Copied from the old Etherpad. Found in /infrastructure/ace/
|
||||
|
||||
Goals:
|
||||
|
||||
- no unicode (for efficient escaping, sightliness)
|
||||
- efficient operations for ACE and collab (attributed text, etc.)
|
||||
- good for time-slider
|
||||
- good for API
|
||||
- line-ending aware
|
||||
X more coherent (deleting or styling text merging with insertion)
|
||||
- server-side syntax highlighting?
|
||||
- unify author map with attribute pool
|
||||
- unify attributed text with changeset rep
|
||||
- not: reversible
|
||||
- force final newline of document to be preserved
|
||||
|
||||
- Unicode bad:
|
||||
- ugly (hard to read)
|
||||
- more complex to parse
|
||||
- harder to store and transmit correctly
|
||||
- doesn't save all that much space anyway
|
||||
- blows up in size when string-escaped
|
||||
- embarrassing for API
|
||||
|
||||
|
||||
# Attributes:
|
||||
|
||||
An "attribute" is a (key,value) pair such as (author,abc123456) or
|
||||
(bold,true). Sometimes an attribute is treated as an instruction to
|
||||
add that attribute, in which case an empty value means to remove it.
|
||||
So (bold,) removes the "bold" attribute. Attributes are interned and
|
||||
given numeric IDs, so the number "6" could represent "(bold,true)",
|
||||
for example. This mapping is stored in an attribute "pool" which may
|
||||
be shared by multiple changesets.
|
||||
|
||||
Entries in the pool must be unique, so that attributes can be compared
|
||||
by their IDs. Attribute names cannot contain commas.
|
||||
|
||||
A changeset looks something like the following:
|
||||
|
||||
Z:5g>1|5=2p=v*4*5+1$x
|
||||
|
||||
With the corresponding pool containing these entries:
|
||||
|
||||
...
|
||||
4 -> (author,1059348573)
|
||||
5 -> (bold,true)
|
||||
...
|
||||
|
||||
This changeset, together with the pool, represents inserting
|
||||
a bold letter "x" into the middle of a line. The string consists of:
|
||||
|
||||
- a letter Z (the "magic character" and format version identifier)
|
||||
- a series of opcodes (punctuation) and numeric values in base 36 (the
|
||||
alphanumerics)
|
||||
- a dollar sign ($)
|
||||
- a string of characters used by insertion operations (the "char bank")
|
||||
|
||||
If we separate out the operations and convert the numbers to base 10, we get:
|
||||
|
||||
Z :196 >1 |5=97 =31 *4 *5 +1 $"x"
|
||||
|
||||
Here are descriptions of the operations, where capital letters are variables:
|
||||
|
||||
":N" : Source text has length N (must be first op)
|
||||
">N" : Final text is N (positive) characters longer than source text (must be second op)
|
||||
"<N" : Final text is N (positive) characters shorter than source text (must be second op)
|
||||
">0" : Final text is same length as source text
|
||||
"+N" : Insert N characters from the bank, none of them newlines
|
||||
"-N" : Skip over (delete) N characters from the source text, none of them newlines
|
||||
"=N" : Keep N characters from the source text, none of them newlines
|
||||
"|L+N" : Insert N characters from the source text, containing L newlines. The last
|
||||
character inserted MUST be a newline, but not the (new) document's final newline.
|
||||
"|L-N" : Delete N characters from the source text, containing L newlines. The last
|
||||
character inserted MUST be a newline, but not the (old) document's final newline.
|
||||
"|L=N" : Keep N characters from the source text, containing L newlines. The last character
|
||||
kept MUST be a newline, and the final newline of the document is allowed.
|
||||
"*I" : Apply attribute I from the pool to the following +, =, |+, or |= command.
|
||||
In other words, any number of * ops can come before a +, =, or | but not
|
||||
between a | and the corresponding + or =.
|
||||
If +, text is inserted having this attribute. If =, text is kept but with
|
||||
the attribute applied as an attribute addition or removal.
|
||||
Consecutive attributes must be sorted lexically by (key,value) with key
|
||||
and value taken as strings. It's illegal to have duplicate keys
|
||||
for (key,value) pairs that apply to the same text. It's illegal to
|
||||
have an empty value for a key in the case of an insertion (+), the
|
||||
pair should just be omitted.
|
||||
|
||||
Characters from the source text that aren't accounted for are assumed to be kept
|
||||
with the same attributes.
|
||||
|
||||
Additional Constraints:
|
||||
|
||||
- Consecutive +, -, and = ops of the same type that could be combined are not allowed.
|
||||
Whether combination is possible depends on the attributes of the ops and whether
|
||||
each is multiline or not. For example, two multiline deletions can never be
|
||||
consecutive, nor can any insertion come after a non-multiline insertion with the
|
||||
same attributes.
|
||||
- "No-op" ops are not allowed, such as deleting 0 characters. However, attribute
|
||||
applications that don't have any effect are allowed.
|
||||
- Characters at the end of the source text cannot be explicitly kept with no changes;
|
||||
if the change doesn't affect the last N characters, those "keep" ops must be left off.
|
||||
- In any consecutive sequence of insertions (+) and deletions (-) with no keeps (=),
|
||||
the deletions must come before the insertions.
|
||||
- The document text before and after will always end with a newline. This policy avoids
|
||||
a lot of special-casing of the end of the document. If a final newline is
|
||||
always added when importing text and removed when exporting text, then the
|
||||
changeset representation can be used to process text files that may or may not
|
||||
have a final newline.
|
||||
|
||||
Attribution string:
|
||||
|
||||
An "attribution string" is a series of inserts with no deletions or keeps.
|
||||
For example, "*3+8|1+5" describes the attributes of a string of length 13,
|
||||
where the first 8 chars have attribute 3 and the next 5 chars have no
|
||||
attributes, with the last of these 5 chars being a newline. Constraints
|
||||
apply similar to those affecting changesets, but the restriction about
|
||||
the final newline of the new document being added doesn't apply.
|
||||
|
||||
Attributes in an attribution string cannot be empty, like "(bold,)", they should
|
||||
instead be absent.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-------
|
||||
Considerations:
|
||||
|
||||
- composing changesets/attributions with different pools
|
||||
- generalizing "applyToAttribution" to make "mutateAttributionLines" and "compose"
|
6
sources/doc/index.md
Normal file
6
sources/doc/index.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
@include documentation
|
||||
@include localization
|
||||
@include custom_static
|
||||
@include api/api
|
||||
@include plugins
|
||||
@include database
|
94
sources/doc/localization.md
Normal file
94
sources/doc/localization.md
Normal file
|
@ -0,0 +1,94 @@
|
|||
# Localization
|
||||
Etherpad provides a multi-language user interface, that's apart from your users' content, so users from different countries can collaborate on a single document, while still having the user interface displayed in their mother tongue.
|
||||
|
||||
|
||||
## Translating
|
||||
We rely on http://translatewiki.net to handle the translation process for us, so if you'd like to help...
|
||||
|
||||
1. sign up at http://translatewiki.net
|
||||
2. Visit our [TWN project page](https://translatewiki.net/wiki/Translating:Etherpad_lite)
|
||||
3. Click on `Translate Etherpad lite interface`
|
||||
4. Choose a target language, you'd like to translate our interface to, and hit `Fetch`
|
||||
5. Start translating!
|
||||
|
||||
Translations will be send back to us regularly and will eventually appear in the next release.
|
||||
|
||||
## Implementation
|
||||
|
||||
### Server-side
|
||||
`/src/locales` contains files for all supported languages which contain the translated strings. Translation files are simple `*.json` files and look like this:
|
||||
|
||||
```json
|
||||
{ "pad.modals.connected": "Connecté."
|
||||
, "pad.modals.uderdup": "Ouvrir dans une nouvelle fenêtre."
|
||||
, "pad.toolbar.unindent.title": "Dèsindenter"
|
||||
, "pad.toolbar.undo.title": "Annuler (Ctrl-Z)"
|
||||
, "timeslider.pageTitle": "{{appTitle}} Curseur temporel"
|
||||
, ...
|
||||
}
|
||||
```
|
||||
|
||||
Each translation consists of a key (the id of the string that is to be translated) and the translated string. Terms in curly braces must not be touched but left as they are, since they represent a dynamically changing part of the string like a variable. Imagine a message welcoming a user: `Welcome, {{userName}}!` would be translated as `Ahoy, {{userName}}!` in pirate.
|
||||
|
||||
### Client-side
|
||||
We use a `language` cookie to save your language settings if you change them. If you don't, we autodetect your locale using information from your browser. Now, that we know your preferred language this information is feeded into a very nice library called [html10n.js](https://github.com/marcelklehr/html10n.js), which loads the appropriate translations and applies them to our templates, providing translation params, pluralization, include rules and even a nice javascript API along the way.
|
||||
|
||||
|
||||
|
||||
## Localizing plugins
|
||||
|
||||
### 1. Mark the strings to translate
|
||||
|
||||
In the template files of your plugin, change all hardcoded messages/strings...
|
||||
|
||||
from:
|
||||
```html
|
||||
<option value="0">Heading 1</option>
|
||||
```
|
||||
to:
|
||||
```html
|
||||
<option data-l10n-id="ep_heading.h1" value="0"></option>
|
||||
```
|
||||
|
||||
In the javascript files of your plugin, change all hardcoded messages/strings...
|
||||
|
||||
from:
|
||||
```js
|
||||
alert ('Chat');
|
||||
```
|
||||
to:
|
||||
```js
|
||||
alert(window._('pad.chat'));
|
||||
```
|
||||
### 2. Create translate files in the locales directory of your plugin
|
||||
|
||||
* The name of the file must be the language code of the language it contains translations for (see [supported lang codes](http://joker-x.github.com/languages4translatewiki/test/); e.g. en ? English, es ? Spanish...)
|
||||
* The extension of the file must be `.json`
|
||||
* The default language is English, so your plugin should always provide `en.json`
|
||||
* In order to avoid naming conflicts, your message keys should start with the name of your plugin followed by a dot (see below)
|
||||
|
||||
*ep_your-plugin/locales/en.json*
|
||||
```
|
||||
{ "ep_your-plugin.h1": "Heading 1"
|
||||
}
|
||||
```
|
||||
|
||||
*ep_your-plugin/locales/es.json*
|
||||
```
|
||||
{ "ep_your-plugin.h1": "Título 1"
|
||||
}
|
||||
```
|
||||
|
||||
Everytime the http server is started, it will auto-detect your messages and merge them automatically with the core messages.
|
||||
|
||||
### Overwrite core messages
|
||||
|
||||
You can overwrite Etherpad's core messages in your plugin's locale files.
|
||||
For example, if you want to replace `Chat` with `Notes`, simply add...
|
||||
|
||||
*ep_your-plugin/locales/en.json*
|
||||
```
|
||||
{ "ep_your-plugin.h1": "Heading 1"
|
||||
, "pad.chat": "Notes"
|
||||
}
|
||||
```
|
119
sources/doc/plugins.md
Normal file
119
sources/doc/plugins.md
Normal file
|
@ -0,0 +1,119 @@
|
|||
# Plugins
|
||||
Etherpad allows you to extend its functionality with plugins. A plugin registers hooks (functions) for certain events (thus certain features) in Etherpad-lite to execute its own functionality based on these events.
|
||||
|
||||
Publicly available plugins can be found in the npm registry (see <http://npmjs.org>). Etherpad-lite's naming convention for plugins is to prefix your plugins with `ep_`. So, e.g. it's `ep_flubberworms`. Thus you can install plugins from npm, using `npm install ep_flubberworm` in etherpad-lite's root directory.
|
||||
|
||||
You can also browse to `http://yourEtherpadInstan.ce/admin/plugins`, which will list all installed plugins and those available on npm. It even provides functionality to search through all available plugins.
|
||||
|
||||
## Folder structure
|
||||
A basic plugin usually has the following folder structure:
|
||||
```
|
||||
ep_<plugin>/
|
||||
| static/
|
||||
| templates/
|
||||
| locales/
|
||||
+ ep.json
|
||||
+ package.json
|
||||
```
|
||||
If your plugin includes client-side hooks, put them in `static/js/`. If you're adding in CSS or image files, you should put those files in `static/css/ `and `static/image/`, respectively, and templates go into `templates/`. Translations go into `locales/`
|
||||
|
||||
A Standard directory structure like this makes it easier to navigate through your code. That said, do note, that this is not actually *required* to make your plugin run. If you want to make use of our i18n system, you need to put your translations into `locales/`, though, in order to have them intergated. (See "Localization" for more info on how to localize your plugin)
|
||||
|
||||
## Plugin definition
|
||||
Your plugin definition goes into `ep.json`. In this file you register your hooks, indicate the parts of your plugin and the order of execution. (A documentation of all available events to hook into can be found in chapter [hooks](#all_hooks).)
|
||||
|
||||
A hook registration is a pairs of a hook name and a function reference (filename to require() + exported function name)
|
||||
|
||||
```json
|
||||
{
|
||||
"parts": [
|
||||
{
|
||||
"name": "nameThisPartHoweverYouWant",
|
||||
"hooks": {
|
||||
"authenticate" : "ep_<plugin>/<file>:FUNCTIONNAME1",
|
||||
"expressCreateServer": "ep_<plugin>/<file>:FUNCTIONNAME2"
|
||||
},
|
||||
"client_hooks": {
|
||||
"acePopulateDOMLine": "ep_plugin/<file>:FUNCTIONNAME3"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Etherpad-lite will expect the part of the hook definition before the colon to be a javascript file and will try to require it. The part after the colon is expected to be a valid function identifier of that module. So, you have to export your hooks, using [`module.exports`](http://nodejs.org/docs/latest/api/modules.html#modules_modules) and register it in `ep.json` as `ep_<plugin>/path/to/<file>:FUNCTIONNAME`.
|
||||
You can omit the `FUNCTIONNAME` part, if the exported function has got the same name as the hook. So `"authorize" : "ep_flubberworm/foo"` will call the function `exports.authorize` in `ep_flubberworm/foo.js`
|
||||
|
||||
### Client hooks and server hooks
|
||||
There are server hooks, which will be executed on the server (e.g. `expressCreateServer`), and there are client hooks, which are executed on the client (e.g. `acePopulateDomLine`). Be sure to not make assumptions about the environment your code is running in, e.g. don't try to access `process`, if you know your code will be run on the client, and likewise, don't try to access `window` on the server...
|
||||
|
||||
### Parts
|
||||
As your plugins become more and more complex, you will find yourself in the need to manage dependencies between plugins. E.g. you want the hooks of a certain plugin to be executed before (or after) yours. You can also manage these dependencies in your plugin definition file `ep.json`:
|
||||
|
||||
```javascript
|
||||
{
|
||||
"parts": [
|
||||
{
|
||||
"name": "onepart",
|
||||
"pre": [],
|
||||
"post": ["ep_onemoreplugin/partone"]
|
||||
"hooks": {
|
||||
"storeBar": "ep_monospace/plugin:storeBar",
|
||||
"getFoo": "ep_monospace/plugin:getFoo",
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "otherpart",
|
||||
"pre": ["ep_my_example/somepart", "ep_otherplugin/main"],
|
||||
"post": [],
|
||||
"hooks": {
|
||||
"someEvent": "ep_my_example/otherpart:someEvent",
|
||||
"another": "ep_my_example/otherpart:another"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Usually a plugin will add only one functionality at a time, so it will probably only use one `part` definition to register its hooks. However, sometimes you have to put different (unrelated) functionalities into one plugin. For this you will want use parts, so other plugins can depend on them.
|
||||
|
||||
#### pre/post
|
||||
The `"pre"` and `"post"` definitions, affect the order in which parts of a plugin are executed. This ensures that plugins and their hooks are executed in the correct order.
|
||||
|
||||
`"pre"` lists parts that must be executed *before* the defining part. `"post"` lists parts that must be executed *after* the defining part.
|
||||
|
||||
You can, on a basic level, think of this as double-ended dependency listing. If you have a dependency on another plugin, you can make sure it loads before yours by putting it in `"pre"`. If you are setting up things that might need to be used by a plugin later, you can ensure proper order by putting it in `"post"`.
|
||||
|
||||
Note that it would be far more sane to use `"pre"` in almost any case, but if you want to change config variables for another plugin, or maybe modify its environment, `"post"` could definitely be useful.
|
||||
|
||||
Also, note that dependencies should *also* be listed in your package.json, so they can be `npm install`'d automagically when your plugin gets installed.
|
||||
|
||||
## Package definition
|
||||
Your plugin must also contain a [package definition file](http://npmjs.org/doc/json.html), called package.json, in the project root - this file contains various metadata relevant to your plugin, such as the name and version number, author, project hompage, contributors, a short description, etc. If you publish your plugin on npm, these metadata are used for package search etc., but it's necessary for Etherpad-lite plugins, even if you don't publish your plugin.
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "ep_PLUGINNAME",
|
||||
"version": "0.0.1",
|
||||
"description": "DESCRIPTION",
|
||||
"author": "USERNAME (REAL NAME) <MAIL@EXAMPLE.COM>",
|
||||
"contributors": [],
|
||||
"dependencies": {"MODULE": "0.3.20"},
|
||||
"engines": { "node": ">= 0.6.0"}
|
||||
}
|
||||
```
|
||||
|
||||
## Templates
|
||||
If your plugin adds or modifies the front end HTML (e.g. adding buttons or changing their functions), you should put the necessary HTML code for such operations in `templates/`, in files of type ".ejs", since Etherpad uses EJS for HTML templating. See the following link for more information about EJS: <https://github.com/visionmedia/ejs>.
|
||||
|
||||
## Writing and running front-end tests for your plugin
|
||||
|
||||
Etherpad allows you to easily create front-end tests for plugins.
|
||||
|
||||
1. Create a new folder
|
||||
```
|
||||
%your_plugin%/static/tests/frontend/specs
|
||||
```
|
||||
2. Put your spec file in here (Example spec files are visible in %etherpad_root_folder%/frontend/tests/specs)
|
||||
|
||||
3. Visit http://yourserver.com/frontend/tests your front-end tests will run.
|
23
sources/doc/template.html
Normal file
23
sources/doc/template.html
Normal file
|
@ -0,0 +1,23 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>__SECTION__ - Etherpad v__VERSION__ Manual & Documentation</title>
|
||||
<link rel="stylesheet" href="assets/style.css">
|
||||
</head>
|
||||
<body class="apidoc" id="api-section-__FILENAME__">
|
||||
<header id="header">
|
||||
<h1>Etherpad v__VERSION__ Manual & Documentation</h1>
|
||||
</header>
|
||||
|
||||
<div id="toc">
|
||||
<h2>Table of Contents</h2>
|
||||
__TOC__
|
||||
</div>
|
||||
|
||||
<div id="apicontent">
|
||||
__CONTENT__
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
149
sources/settings.json.template
Normal file
149
sources/settings.json.template
Normal file
|
@ -0,0 +1,149 @@
|
|||
/*
|
||||
This file must be valid JSON. But comments are allowed
|
||||
|
||||
Please edit settings.json, not settings.json.template
|
||||
*/
|
||||
{
|
||||
// Name your instance!
|
||||
"title": "Etherpad",
|
||||
|
||||
// favicon default name
|
||||
// alternatively, set up a fully specified Url to your own favicon
|
||||
"favicon": "favicon.ico",
|
||||
|
||||
//IP and port which etherpad should bind at
|
||||
"ip": "0.0.0.0",
|
||||
"port" : 9001,
|
||||
|
||||
// Session Key, used for reconnecting user sessions
|
||||
// Set this to a secure string at least 10 characters long. Do not share this value.
|
||||
"sessionKey" : "",
|
||||
|
||||
/*
|
||||
// Node native SSL support
|
||||
// this is disabled by default
|
||||
//
|
||||
// make sure to have the minimum and correct file access permissions set
|
||||
// so that the Etherpad server can access them
|
||||
|
||||
"ssl" : {
|
||||
"key" : "/path-to-your/epl-server.key",
|
||||
"cert" : "/path-to-your/epl-server.crt"
|
||||
},
|
||||
|
||||
*/
|
||||
|
||||
//The Type of the database. You can choose between dirty, postgres, sqlite and mysql
|
||||
//You shouldn't use "dirty" for for anything else than testing or development
|
||||
"dbType" : "dirty",
|
||||
//the database specific settings
|
||||
"dbSettings" : {
|
||||
"filename" : "var/dirty.db"
|
||||
},
|
||||
|
||||
/* An Example of MySQL Configuration
|
||||
"dbType" : "mysql",
|
||||
"dbSettings" : {
|
||||
"user" : "root",
|
||||
"host" : "localhost",
|
||||
"password": "",
|
||||
"database": "store"
|
||||
},
|
||||
*/
|
||||
|
||||
//the default text of a pad
|
||||
"defaultPadText" : "Welcome to Etherpad!\n\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!\n\nGet involved with Etherpad at http:\/\/etherpad.org\n",
|
||||
|
||||
/* Users must have a session to access pads. This effectively allows only group pads to be accessed. */
|
||||
"requireSession" : false,
|
||||
|
||||
/* Users may edit pads but not create new ones. Pad creation is only via the API. This applies both to group pads and regular pads. */
|
||||
"editOnly" : false,
|
||||
|
||||
/* if true, all css & js will be minified before sending to the client. This will improve the loading performance massivly,
|
||||
but makes it impossible to debug the javascript/css */
|
||||
"minify" : true,
|
||||
|
||||
/* How long may clients use served javascript code (in seconds)? Without versioning this
|
||||
may cause problems during deployment. Set to 0 to disable caching */
|
||||
"maxAge" : 21600, // 60 * 60 * 6 = 6 hours
|
||||
|
||||
/* This is the path to the Abiword executable. Setting it to null, disables abiword.
|
||||
Abiword is needed to advanced import/export features of pads*/
|
||||
"abiword" : null,
|
||||
|
||||
/* This setting is used if you require authentication of all users.
|
||||
Note: /admin always requires authentication. */
|
||||
"requireAuthentication": false,
|
||||
|
||||
/* Require authorization by a module, or a user with is_admin set, see below. */
|
||||
"requireAuthorization": false,
|
||||
|
||||
/*when you use NginX or another proxy/ load-balancer set this to true*/
|
||||
"trustProxy": false,
|
||||
|
||||
/* Privacy: disable IP logging */
|
||||
"disableIPlogging": false,
|
||||
|
||||
/* Users for basic authentication. is_admin = true gives access to /admin.
|
||||
If you do not uncomment this, /admin will not be available! */
|
||||
/*
|
||||
"users": {
|
||||
"admin": {
|
||||
"password": "changeme1",
|
||||
"is_admin": true
|
||||
},
|
||||
"user": {
|
||||
"password": "changeme1",
|
||||
"is_admin": false
|
||||
}
|
||||
},
|
||||
*/
|
||||
|
||||
// restrict socket.io transport methods
|
||||
"socketTransportProtocols" : ["xhr-polling", "jsonp-polling", "htmlfile"],
|
||||
|
||||
/* The log level we are using, can be: DEBUG, INFO, WARN, ERROR */
|
||||
"loglevel": "INFO",
|
||||
|
||||
//Logging configuration. See log4js documentation for further information
|
||||
// https://github.com/nomiddlename/log4js-node
|
||||
// You can add as many appenders as you want here:
|
||||
"logconfig" :
|
||||
{ "appenders": [
|
||||
{ "type": "console"
|
||||
//, "category": "access"// only logs pad access
|
||||
}
|
||||
/*
|
||||
, { "type": "file"
|
||||
, "filename": "your-log-file-here.log"
|
||||
, "maxLogSize": 1024
|
||||
, "backups": 3 // how many log files there're gonna be at max
|
||||
//, "category": "test" // only log a specific category
|
||||
}*/
|
||||
/*
|
||||
, { "type": "logLevelFilter"
|
||||
, "level": "warn" // filters out all log messages that have a lower level than "error"
|
||||
, "appender":
|
||||
{ Use whatever appender you want here }
|
||||
}*/
|
||||
/*
|
||||
, { "type": "logLevelFilter"
|
||||
, "level": "error" // filters out all log messages that have a lower level than "error"
|
||||
, "appender":
|
||||
{ "type": "smtp"
|
||||
, "subject": "An error occured in your EPL instance!"
|
||||
, "recipients": "bar@blurdybloop.com, baz@blurdybloop.com"
|
||||
, "sendInterval": 60*5 // in secs -- will buffer log messages; set to 0 to send a mail for every message
|
||||
, "transport": "SMTP", "SMTP": { // see https://github.com/andris9/Nodemailer#possible-transport-methods
|
||||
"host": "smtp.example.com", "port": 465,
|
||||
"secureConnection": true,
|
||||
"auth": {
|
||||
"user": "foo@example.com",
|
||||
"pass": "bar_foo"
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
] }
|
||||
}
|
1
sources/src/README.md
Normal file
1
sources/src/README.md
Normal file
|
@ -0,0 +1 @@
|
|||
Ignore this file and see the file in the base installation folder
|
29
sources/src/ep.json
Normal file
29
sources/src/ep.json
Normal file
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
"parts": [
|
||||
{ "name": "express", "hooks": {
|
||||
"createServer": "ep_etherpad-lite/node/hooks/express:createServer",
|
||||
"restartServer": "ep_etherpad-lite/node/hooks/express:restartServer"
|
||||
} },
|
||||
{ "name": "static", "hooks": { "expressCreateServer": "ep_etherpad-lite/node/hooks/express/static:expressCreateServer" } },
|
||||
{ "name": "i18n", "hooks": { "expressCreateServer": "ep_etherpad-lite/node/hooks/i18n:expressCreateServer" } },
|
||||
{ "name": "specialpages", "hooks": { "expressCreateServer": "ep_etherpad-lite/node/hooks/express/specialpages:expressCreateServer" } },
|
||||
{ "name": "padurlsanitize", "hooks": { "expressCreateServer": "ep_etherpad-lite/node/hooks/express/padurlsanitize:expressCreateServer" } },
|
||||
{ "name": "padreadonly", "hooks": { "expressCreateServer": "ep_etherpad-lite/node/hooks/express/padreadonly:expressCreateServer" } },
|
||||
{ "name": "webaccess", "hooks": { "expressConfigure": "ep_etherpad-lite/node/hooks/express/webaccess:expressConfigure" } },
|
||||
{ "name": "apicalls", "hooks": { "expressCreateServer": "ep_etherpad-lite/node/hooks/express/apicalls:expressCreateServer" } },
|
||||
{ "name": "importexport", "hooks": { "expressCreateServer": "ep_etherpad-lite/node/hooks/express/importexport:expressCreateServer" } },
|
||||
{ "name": "errorhandling", "hooks": { "expressCreateServer": "ep_etherpad-lite/node/hooks/express/errorhandling:expressCreateServer" } },
|
||||
{ "name": "socketio", "hooks": { "expressCreateServer": "ep_etherpad-lite/node/hooks/express/socketio:expressCreateServer" } },
|
||||
{ "name": "tests", "hooks": { "expressCreateServer": "ep_etherpad-lite/node/hooks/express/tests:expressCreateServer" } },
|
||||
{ "name": "admin", "hooks": { "expressCreateServer": "ep_etherpad-lite/node/hooks/express/admin:expressCreateServer" } },
|
||||
{ "name": "adminplugins", "hooks": {
|
||||
"expressCreateServer": "ep_etherpad-lite/node/hooks/express/adminplugins:expressCreateServer",
|
||||
"socketio": "ep_etherpad-lite/node/hooks/express/adminplugins:socketio" }
|
||||
},
|
||||
{ "name": "adminsettings", "hooks": {
|
||||
"expressCreateServer": "ep_etherpad-lite/node/hooks/express/adminsettings:expressCreateServer",
|
||||
"socketio": "ep_etherpad-lite/node/hooks/express/adminsettings:socketio" }
|
||||
},
|
||||
{ "name": "swagger", "hooks": { "expressCreateServer": "ep_etherpad-lite/node/hooks/express/swagger:expressCreateServer" } }
|
||||
]
|
||||
}
|
65
sources/src/locales/af.json
Normal file
65
sources/src/locales/af.json
Normal file
|
@ -0,0 +1,65 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Naudefj"
|
||||
]
|
||||
},
|
||||
"index.newPad": "Nuwe pad",
|
||||
"index.createOpenPad": "of skep/open 'n pad met die naam:",
|
||||
"pad.toolbar.bold.title": "Vet (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "Kursief (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "Onderstreep (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "Deurgehaal",
|
||||
"pad.toolbar.ol.title": "Geordende lys",
|
||||
"pad.toolbar.ul.title": "Ongeordende lys",
|
||||
"pad.toolbar.indent.title": "Indenteer",
|
||||
"pad.toolbar.unindent.title": "Verklein indentering",
|
||||
"pad.toolbar.undo.title": "Ongedaan maak (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "Herdoen (Ctrl-Y)",
|
||||
"pad.toolbar.settings.title": "Voorkeure",
|
||||
"pad.colorpicker.save": "Stoor",
|
||||
"pad.colorpicker.cancel": "Kanselleer",
|
||||
"pad.loading": "Laai...",
|
||||
"pad.settings.myView": "My oorsig",
|
||||
"pad.settings.fontType.normal": "Normaal",
|
||||
"pad.settings.fontType.monospaced": "Monospasie",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.modals.userdup.advice": "Maak weer 'n verbinding as u die venster wil gebruik.",
|
||||
"pad.modals.unauth": "Nie toegestaan",
|
||||
"pad.modals.deleted": "Geskrap.",
|
||||
"pad.share": "Deel die pad",
|
||||
"pad.share.readonly": "Lees-alleen",
|
||||
"pad.share.link": "Skakel",
|
||||
"pad.share.emebdcode": "Inbed URL",
|
||||
"pad.chat": "Klets",
|
||||
"pad.chat.title": "Maak kletsblad vir die pad oop",
|
||||
"timeslider.toolbar.returnbutton": "Terug na pad",
|
||||
"timeslider.toolbar.authors": "Outeurs:",
|
||||
"timeslider.toolbar.authorsList": "Geen outeurs",
|
||||
"timeslider.exportCurrent": "Huidige weergawe eksporteer as:",
|
||||
"timeslider.version": "Weergawe {{version}}",
|
||||
"timeslider.saved": "Gestoor op {{day}} {{month}} {{year}}",
|
||||
"timeslider.dateformat": "{{year}}-{{month}}-{{day}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "Januarie",
|
||||
"timeslider.month.february": "Februarie",
|
||||
"timeslider.month.march": "Maart",
|
||||
"timeslider.month.april": "April",
|
||||
"timeslider.month.may": "Mei",
|
||||
"timeslider.month.june": "Junie",
|
||||
"timeslider.month.july": "Julie",
|
||||
"timeslider.month.august": "Augustus",
|
||||
"timeslider.month.september": "September",
|
||||
"timeslider.month.october": "Oktober",
|
||||
"timeslider.month.november": "November",
|
||||
"timeslider.month.december": "Desember",
|
||||
"pad.userlist.entername": "Verskaf u naam",
|
||||
"pad.userlist.unnamed": "sonder naam",
|
||||
"pad.userlist.guest": "Gas",
|
||||
"pad.userlist.deny": "Keur af",
|
||||
"pad.userlist.approve": "Keur goed",
|
||||
"pad.impexp.importbutton": "Voer nou in",
|
||||
"pad.impexp.importing": "Besig met invoer...",
|
||||
"pad.impexp.importfailed": "Invoer het gefaal"
|
||||
}
|
105
sources/src/locales/ar.json
Normal file
105
sources/src/locales/ar.json
Normal file
|
@ -0,0 +1,105 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Ali1",
|
||||
"Tux-tn"
|
||||
]
|
||||
},
|
||||
"index.newPad": "\u0628\u0627\u062f \u062c\u062f\u064a\u062f",
|
||||
"index.createOpenPad": "\u0623\u0648 \u0635\u0646\u0639/\u0641\u062a\u062d \u0628\u0627\u062f \u0628\u0648\u0636\u0639 \u0625\u0633\u0645\u0647:",
|
||||
"pad.toolbar.bold.title": "\u0633\u0645\u064a\u0643 (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "\u0645\u0627\u0626\u0644 (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "\u062a\u0633\u0637\u064a\u0631 (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "\u0634\u0637\u0628",
|
||||
"pad.toolbar.ol.title": "\u0642\u0627\u0626\u0645\u0629 \u0645\u0631\u062a\u0628\u0629",
|
||||
"pad.toolbar.ul.title": "\u0642\u0627\u0626\u0645\u0629 \u063a\u064a\u0631 \u0645\u0631\u062a\u0628\u0629",
|
||||
"pad.toolbar.indent.title": "\u0625\u0632\u0627\u062d\u0629",
|
||||
"pad.toolbar.unindent.title": "\u062d\u0630\u0641 \u0627\u0644\u0625\u0632\u0627\u062d\u0629",
|
||||
"pad.toolbar.undo.title": "\u0641\u0643 (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "\u062a\u0643\u0631\u0627\u0631 (Ctrl-Y)",
|
||||
"pad.toolbar.import_export.title": "\u0627\u0633\u062a\u064a\u0631\u0627\u062f/\u062a\u0635\u062f\u064a\u0631 \u0645\u0646/\u0625\u0644\u0649 \u062a\u0646\u0633\u064a\u0642\u0627\u062a \u0645\u0644\u0641\u0627\u062a \u0645\u062e\u062a\u0644\u0641\u0629",
|
||||
"pad.toolbar.timeslider.title": "\u0645\u062a\u0635\u0641\u062d \u0627\u0644\u062a\u0627\u0631\u064a\u062e",
|
||||
"pad.toolbar.savedRevision.title": "\u062d\u0641\u0638 \u0627\u0644\u0645\u0631\u0627\u062c\u0639\u0629",
|
||||
"pad.toolbar.settings.title": "\u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a",
|
||||
"pad.toolbar.embed.title": "\u062a\u0628\u0627\u062f\u0644 \u0648 \u062a\u0636\u0645\u064a\u0646 \u0647\u0630\u0627 \u0627\u0644\u0628\u0627\u062f",
|
||||
"pad.toolbar.showusers.title": "\u0639\u0631\u0636 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u064a\u0646 \u0639\u0644\u0649 \u0647\u0630\u0627 \u0627\u0644\u0628\u0627\u062f",
|
||||
"pad.colorpicker.save": "\u062a\u0633\u062c\u064a\u0644",
|
||||
"pad.colorpicker.cancel": "\u0625\u0644\u063a\u0627\u0621",
|
||||
"pad.loading": "\u062c\u0627\u0631\u064a \u0627\u0644\u062a\u062d\u0645\u064a\u0644...",
|
||||
"pad.passwordRequired": "\u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u0643\u0644\u0645\u0629 \u0645\u0631\u0648\u0631 \u0644\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0647\u0630\u0627 \u0627\u0644\u0628\u0627\u062f",
|
||||
"pad.permissionDenied": "\u0644\u064a\u0633 \u0644\u062f\u064a\u0643 \u0625\u0630\u0646 \u0644\u062f\u062e\u0648\u0644 \u0647\u0630\u0627 \u0627\u0644\u0628\u0627\u062f",
|
||||
"pad.wrongPassword": "\u0643\u0627\u0646\u062a \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u062e\u0627\u0637\u0626\u0629",
|
||||
"pad.settings.padSettings": "\u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0627\u0644\u0628\u0627\u062f",
|
||||
"pad.settings.myView": "\u0631\u0624\u064a\u062a\u064a",
|
||||
"pad.settings.stickychat": "\u0627\u0644\u062f\u0631\u062f\u0634\u0629 \u062f\u0627\u0626\u0645\u0627 \u0639\u0644\u0649 \u0627\u0644\u0634\u0627\u0634\u0629",
|
||||
"pad.settings.colorcheck": "\u0623\u0644\u0648\u0627\u0646 \u0627\u0644\u062a\u0623\u0644\u064a\u0641",
|
||||
"pad.settings.linenocheck": "\u0623\u0631\u0642\u0627\u0645 \u0627\u0644\u0623\u0633\u0637\u0631",
|
||||
"pad.settings.rtlcheck": "\u0642\u0631\u0627\u0621\u0629 \u0627\u0644\u0645\u062d\u062a\u0648\u064a\u0627\u062a \u0645\u0646 \u0627\u0644\u064a\u0645\u064a\u0646 \u0625\u0644\u0649 \u0627\u0644\u064a\u0633\u0627\u0631\u061f",
|
||||
"pad.settings.fontType": "\u0646\u0648\u0639 \u0627\u0644\u062e\u0637:",
|
||||
"pad.settings.fontType.normal": "\u0639\u0627\u062f\u064a",
|
||||
"pad.settings.fontType.monospaced": "\u062b\u0627\u0628\u062a \u0627\u0644\u0639\u0631\u0636",
|
||||
"pad.settings.globalView": "\u0627\u0644\u0631\u0624\u064a\u0629 \u0627\u0644\u0634\u0627\u0645\u0644\u0629",
|
||||
"pad.settings.language": "\u0627\u0644\u0644\u063a\u0629:",
|
||||
"pad.importExport.import_export": "\u0627\u0633\u062a\u064a\u0631\u0627\u062f/\u062a\u0635\u062f\u064a\u0631",
|
||||
"pad.importExport.import": "\u062a\u062d\u0645\u064a\u0644 \u0623\u064a \u0645\u0644\u0641 \u0646\u0635\u064a \u0623\u0648 \u0648\u062b\u064a\u0642\u0629",
|
||||
"pad.importExport.importSuccessful": "\u0646\u0627\u062c\u062d!",
|
||||
"pad.importExport.export": "\u062a\u0635\u062f\u064a\u0631 \u0627\u0644\u0628\u0627\u062f \u0627\u0644\u062d\u0627\u0644\u064a \u0628\u0635\u0641\u0629:",
|
||||
"pad.importExport.exporthtml": "\u0625\u062a\u0634 \u062a\u064a \u0625\u0645 \u0625\u0644",
|
||||
"pad.importExport.exportplain": "\u0646\u0635 \u0639\u0627\u062f\u064a",
|
||||
"pad.importExport.exportword": "\u0645\u0627\u064a\u0643\u0631\u0648\u0633\u0648\u0641\u062a \u0648\u0648\u0631\u062f",
|
||||
"pad.importExport.exportpdf": "\u0635\u064a\u063a\u0629 \u0627\u0644\u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0627\u0644\u0645\u062d\u0645\u0648\u0644\u0629",
|
||||
"pad.importExport.exportopen": "ODF (\u0646\u0633\u0642 \u0627\u0644\u0645\u0633\u062a\u0646\u062f \u0627\u0644\u0645\u0641\u062a\u0648\u062d)",
|
||||
"pad.importExport.exportdokuwiki": "\u062f\u0648\u06a9\u0648\u0648\u064a\u0643\u064a",
|
||||
"pad.modals.connected": "\u0645\u062a\u0635\u0644.",
|
||||
"pad.modals.reconnecting": "\u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0627\u062a\u0635\u0627\u0644 \u0628\u0628\u0627\u062f\u0643",
|
||||
"pad.modals.forcereconnect": "\u0641\u0631\u0636 \u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0627\u062a\u0635\u0627\u0644",
|
||||
"pad.modals.userdup": "\u0645\u0641\u062a\u0648\u062d \u0641\u064a \u0646\u0627\u0641\u0630\u0629 \u0623\u062e\u0631\u0649",
|
||||
"pad.modals.userdup.explanation": "\u064a\u0628\u062f\u0648 \u0623\u0646 \u0647\u0630\u0627 \u0627\u0644\u0628\u0627\u062f \u062a\u0645 \u0641\u062a\u062d\u0647 \u0641\u064a \u0623\u0643\u062b\u0631 \u0645\u0646 \u0646\u0627\u0641\u0630\u0629 \u0645\u062a\u0635\u0641\u062d \u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u062d\u0627\u0633\u0648\u0628.",
|
||||
"pad.modals.userdup.advice": "\u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0627\u062a\u0635\u0627\u0644 \u0644\u0625\u0633\u062a\u0639\u0645\u0627\u0644 \u0647\u0630\u0647 \u0627\u0644\u0646\u0627\u0641\u0630\u0629 \u0628\u062f\u0644\u0627\u064b \u0645\u0646 \u0627\u0644\u0627\u062e\u0631\u0649.",
|
||||
"pad.modals.unauth": "\u063a\u064a\u0631 \u0645\u062e\u0648\u0644",
|
||||
"pad.modals.initsocketfail": "\u0644\u0627 \u064a\u0645\u0643\u0646 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0627\u0644\u062e\u0627\u062f\u0645",
|
||||
"pad.modals.initsocketfail.explanation": "\u062a\u0639\u0630\u0631 \u0627\u0644\u0627\u062a\u0635\u0627\u0644 \u0628\u062e\u0627\u062f\u0645 \u0627\u0644\u0645\u0632\u0627\u0645\u0646\u0629.",
|
||||
"pad.modals.slowcommit.explanation": "\u0627\u0644\u062e\u0627\u062f\u0645 \u0644\u0627 \u064a\u0633\u062a\u062c\u064a\u0628.",
|
||||
"pad.modals.slowcommit.cause": "\u064a\u0645\u0643\u0646 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0647\u0630\u0627 \u0628\u0633\u0628\u0628 \u0645\u0634\u0627\u0643\u0644 \u0641\u064a \u0627\u0644\u0627\u062a\u0635\u0627\u0644 \u0628\u0627\u0644\u0634\u0628\u0643\u0629.",
|
||||
"pad.modals.deleted": "\u0645\u062d\u0630\u0648\u0641.",
|
||||
"pad.modals.deleted.explanation": "\u062a\u0645\u062a \u0625\u0632\u0627\u0644\u0629 \u0647\u0630\u0627 \u0627\u0644\u0628\u0627\u062f",
|
||||
"pad.modals.disconnected": "\u0644\u0645 \u062a\u0639\u062f \u0645\u062a\u0651\u0635\u0644.",
|
||||
"pad.modals.disconnected.explanation": "\u062a\u0645 \u0641\u0642\u062f\u0627\u0646 \u0627\u0644\u0625\u062a\u0635\u0627\u0644 \u0628\u0627\u0644\u062e\u0627\u062f\u0645",
|
||||
"pad.modals.disconnected.cause": "\u0642\u062f \u064a\u0643\u0648\u0646 \u0627\u0644\u062e\u0627\u062f\u0645 \u063a\u064a\u0631 \u0645\u062a\u0648\u0641\u0631. \u0627\u0644\u0631\u062c\u0627\u0621 \u0625\u0639\u0644\u0627\u0645\u0646\u0627 \u0625\u0630\u0627 \u062a\u0643\u0631\u0631 \u0647\u0630\u0627.",
|
||||
"pad.share.readonly": "\u0644\u0644\u0642\u0631\u0627\u0621\u0629 \u0641\u0642\u0637",
|
||||
"pad.share.link": "\u0631\u0627\u0628\u0637",
|
||||
"pad.share.emebdcode": "URL \u0644\u0644\u062a\u0636\u0645\u064a\u0646",
|
||||
"pad.chat": "\u062f\u0631\u062f\u0634\u0629",
|
||||
"pad.chat.title": "\u0641\u062a\u062d \u0627\u0644\u062f\u0631\u062f\u0634\u0629 \u0644\u0647\u0630\u0627 \u0627\u0644\u0628\u0627\u062f",
|
||||
"pad.chat.loadmessages": "\u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0645\u0632\u064a\u062f \u0645\u0646 \u0627\u0644\u0631\u0633\u0627\u0626\u0644",
|
||||
"timeslider.toolbar.returnbutton": "\u0627\u0644\u0639\u0648\u062f\u0629 \u0625\u0644\u0649 \u0627\u0644\u0628\u0627\u062f",
|
||||
"timeslider.toolbar.authors": "\u0627\u0644\u0645\u0624\u0644\u0641\u0648\u0646:",
|
||||
"timeslider.toolbar.authorsList": "\u0628\u062f\u0648\u0646 \u0645\u0624\u0644\u0641\u064a\u0646",
|
||||
"timeslider.toolbar.exportlink.title": "\u062a\u0635\u062f\u064a\u0631",
|
||||
"timeslider.exportCurrent": "\u062a\u0635\u062f\u064a\u0631 \u0627\u0644\u0646\u0633\u062e\u0629 \u0627\u0644\u062d\u0627\u0644\u064a\u0629 \u0643:",
|
||||
"timeslider.version": "\u0625\u0635\u062f\u0627\u0631 {{version}}",
|
||||
"timeslider.saved": "\u0645\u062d\u0641\u0648\u0638 {{month}} {{day}}, {{year}}",
|
||||
"timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "\u064a\u0646\u0627\u064a\u0631",
|
||||
"timeslider.month.february": "\u0641\u0628\u0631\u0627\u064a\u0631",
|
||||
"timeslider.month.march": "\u0645\u0627\u0631\u0633",
|
||||
"timeslider.month.april": "\u0623\u0628\u0631\u064a\u0644",
|
||||
"timeslider.month.may": "\u0645\u0627\u064a\u0648",
|
||||
"timeslider.month.june": "\u064a\u0648\u0646\u064a\u0648",
|
||||
"timeslider.month.july": "\u064a\u0648\u0644\u064a\u0648",
|
||||
"timeslider.month.august": "\u0623\u063a\u0633\u0637\u0633",
|
||||
"timeslider.month.september": "\u0633\u0628\u062a\u0645\u0628\u0631",
|
||||
"timeslider.month.october": "\u0623\u0643\u062a\u0648\u0628\u0631",
|
||||
"timeslider.month.november": "\u0646\u0648\u0641\u0645\u0628\u0631",
|
||||
"timeslider.month.december": "\u062f\u064a\u0633\u0645\u0628\u0631",
|
||||
"pad.userlist.entername": "\u0625\u062f\u062e\u0644 \u0627\u0633\u0645\u0643",
|
||||
"pad.userlist.unnamed": "\u063a\u064a\u0631 \u0645\u0633\u0645\u0649",
|
||||
"pad.userlist.guest": "\u0636\u064a\u0641",
|
||||
"pad.userlist.deny": "\u0631\u0641\u0636",
|
||||
"pad.userlist.approve": "\u0645\u0648\u0627\u0641\u0642\u0629",
|
||||
"pad.impexp.importbutton": "\u0627\u0644\u0627\u0633\u062a\u064a\u0631\u0627\u062f \u0627\u0644\u0622\u0646",
|
||||
"pad.impexp.importing": "\u0627\u0644\u0627\u0633\u062a\u064a\u0631\u0627\u062f...",
|
||||
"pad.impexp.uploadFailed": "\u0641\u0634\u0644 \u0627\u0644\u062a\u062d\u0645\u064a\u0644\u060c \u0627\u0644\u0631\u062c\u0627\u0621 \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629 \u0645\u0631\u0629 \u0623\u062e\u0631\u0649",
|
||||
"pad.impexp.importfailed": "\u0641\u0634\u0644 \u0627\u0644\u0627\u0633\u062a\u064a\u0631\u0627\u062f",
|
||||
"pad.impexp.copypaste": "\u0627\u0644\u0631\u062c\u0627\u0621 \u0646\u0633\u062e/\u0644\u0635\u0642"
|
||||
}
|
122
sources/src/locales/ast.json
Normal file
122
sources/src/locales/ast.json
Normal file
|
@ -0,0 +1,122 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": {
|
||||
"1": "Xuacu"
|
||||
}
|
||||
},
|
||||
"index.newPad": "Nuevu bloc",
|
||||
"index.createOpenPad": "o crear/abrir un bloc col nome:",
|
||||
"pad.toolbar.bold.title": "Negrina (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "Cursiva (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "Sorray\u00e1u (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "Tach\u00e1u",
|
||||
"pad.toolbar.ol.title": "Llista ordenada",
|
||||
"pad.toolbar.ul.title": "Llista ensin ordenar",
|
||||
"pad.toolbar.indent.title": "Sangr\u00eda",
|
||||
"pad.toolbar.unindent.title": "Sangr\u00eda inversa",
|
||||
"pad.toolbar.undo.title": "Desfacer (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "Refacer (Ctrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "Llimpiar los colores d'autor\u00eda",
|
||||
"pad.toolbar.import_export.title": "Importar/Esportar ente distintos formatos de ficheru",
|
||||
"pad.toolbar.timeslider.title": "Eslizador de tiempu",
|
||||
"pad.toolbar.savedRevision.title": "Guardar revisi\u00f3n",
|
||||
"pad.toolbar.settings.title": "Configuraci\u00f3n",
|
||||
"pad.toolbar.embed.title": "Compartir ya incrustar esti bloc",
|
||||
"pad.toolbar.showusers.title": "Amosar los usuarios d'esti bloc",
|
||||
"pad.colorpicker.save": "Guardar",
|
||||
"pad.colorpicker.cancel": "Encaboxar",
|
||||
"pad.loading": "Cargando...",
|
||||
"pad.passwordRequired": "Necesites una contrase\u00f1a pa entrar a esti bloc",
|
||||
"pad.permissionDenied": "Nun tienes permisu pa entrar a esti bloc",
|
||||
"pad.wrongPassword": "La contrase\u00f1a era incorreuta",
|
||||
"pad.settings.padSettings": "Configuraci\u00f3n del bloc",
|
||||
"pad.settings.myView": "la mio vista",
|
||||
"pad.settings.stickychat": "Alderique en pantalla siempres",
|
||||
"pad.settings.colorcheck": "Colores d'autor\u00eda",
|
||||
"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.normal": "Normal",
|
||||
"pad.settings.fontType.monospaced": "Monoespaciada",
|
||||
"pad.settings.globalView": "Vista global",
|
||||
"pad.settings.language": "Llingua:",
|
||||
"pad.importExport.import_export": "Importar/Esportar",
|
||||
"pad.importExport.import": "Xubir cualquier ficheru o documentu de testu",
|
||||
"pad.importExport.importSuccessful": "\u00a1Correuto!",
|
||||
"pad.importExport.export": "Esportar el bloc actual como:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Testu simple",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "S\u00f3lo se pue importar dende los formatos de testu planu o html. Pa carauter\u00edstiques d'importaci\u00f3n m\u00e1s avanzaes \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003Einstala abiword\u003C/a\u003E.",
|
||||
"pad.modals.connected": "Coneut\u00e1u.",
|
||||
"pad.modals.reconnecting": "Reconeutando col to bloc...",
|
||||
"pad.modals.forcereconnect": "Forzar la reconex\u00f3n",
|
||||
"pad.modals.userdup": "Abiertu n'otra ventana",
|
||||
"pad.modals.userdup.explanation": "Esti bloc paez que ta abiertu en m\u00e1s d'una ventana del navegador d'esti ordenador.",
|
||||
"pad.modals.userdup.advice": "Reconeutar pa usar esta ventana.",
|
||||
"pad.modals.unauth": "Non autoriz\u00e1u",
|
||||
"pad.modals.unauth.explanation": "Los tos permisos camudaron mientres vies esta p\u00e1xina. Intenta volver a coneutar.",
|
||||
"pad.modals.looping.explanation": "Hai problemes de comunicaci\u00f3n col sirvidor de sincronizaci\u00f3n.",
|
||||
"pad.modals.looping.cause": "Pues tar coneut\u00e1u per un torgafueos o un proxy incompatibles.",
|
||||
"pad.modals.initsocketfail": "Sirvidor incalcanzable.",
|
||||
"pad.modals.initsocketfail.explanation": "Nun se pudo coneutar col sirvidor de sincronizaci\u00f3n.",
|
||||
"pad.modals.initsocketfail.cause": "Probablemente ye por aciu d'un problema col navegador o cola to conex\u00f3n a internet.",
|
||||
"pad.modals.slowcommit.explanation": "El sirvidor nun respuende.",
|
||||
"pad.modals.slowcommit.cause": "Pue ser por problemes de coneutivid\u00e1 de la rede.",
|
||||
"pad.modals.badChangeset.explanation": "El sirvidor de sincronizaci\u00f3n clasific\u00f3 como illegal una edici\u00f3n que fizo.",
|
||||
"pad.modals.badChangeset.cause": "Esto podr\u00eda dase por una mala configuraci\u00f3n del sirvidor o por alg\u00fan otru comportamientu inesper\u00e1u. Comun\u00edquese col alministrador del serviciu si cree qu'esto ye un error. Intente volver a coneutar pa siguir editando.",
|
||||
"pad.modals.corruptPad.explanation": "El bloc al qu'intenta entrar ta corromp\u00edu.",
|
||||
"pad.modals.corruptPad.cause": "Esto pue ser por una mala configuraci\u00f3n del sirvidor o por alg\u00fan otru comportamientu inesper\u00e1u. Comun\u00edquese col alministrador del serviciu.",
|
||||
"pad.modals.deleted": "Desanici\u00e1u",
|
||||
"pad.modals.deleted.explanation": "Esti bloc se desanici\u00f3.",
|
||||
"pad.modals.disconnected": "Te desconeutasti.",
|
||||
"pad.modals.disconnected.explanation": "Perdi\u00f3se la conex\u00f3n col sirvidor",
|
||||
"pad.modals.disconnected.cause": "El sirvidor podr\u00eda nun tar disponible. Por favor, avise al alministrador del serviciu si sigue pasando esto.",
|
||||
"pad.share": "Compartir esti bloc",
|
||||
"pad.share.readonly": "S\u00f3lo llectura",
|
||||
"pad.share.link": "Enllaz",
|
||||
"pad.share.emebdcode": "Incrustar URL",
|
||||
"pad.chat": "Chat",
|
||||
"pad.chat.title": "Abrir el chat d'esti bloc.",
|
||||
"pad.chat.loadmessages": "Cargar m\u00e1s mensaxes",
|
||||
"timeslider.pageTitle": "Eslizador de tiempu de {{appTitle}}",
|
||||
"timeslider.toolbar.returnbutton": "Tornar al bloc",
|
||||
"timeslider.toolbar.authors": "Autores:",
|
||||
"timeslider.toolbar.authorsList": "Nun hai autores",
|
||||
"timeslider.toolbar.exportlink.title": "Esportar",
|
||||
"timeslider.exportCurrent": "Esportar la versi\u00f3n actual como:",
|
||||
"timeslider.version": "Versi\u00f3n {{version}}",
|
||||
"timeslider.saved": "Guard\u00e1u el {{day}} de {{month}} de {{year}}",
|
||||
"timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "de xineru",
|
||||
"timeslider.month.february": "de febreru",
|
||||
"timeslider.month.march": "de marzu",
|
||||
"timeslider.month.april": "d'abril",
|
||||
"timeslider.month.may": "de mayu",
|
||||
"timeslider.month.june": "de xunu",
|
||||
"timeslider.month.july": "de xunetu",
|
||||
"timeslider.month.august": "d'agostu",
|
||||
"timeslider.month.september": "de setiembre",
|
||||
"timeslider.month.october": "d'ochobre",
|
||||
"timeslider.month.november": "de payares",
|
||||
"timeslider.month.december": "d'avientu",
|
||||
"timeslider.unnamedauthors": "{{num}} {[plural(num) one: autor an\u00f3nimu, other: autores an\u00f3nimos]}",
|
||||
"pad.savedrevs.marked": "Esta revisi\u00f3n marcose como revisi\u00f3n guardada",
|
||||
"pad.userlist.entername": "Escribi'l to nome",
|
||||
"pad.userlist.unnamed": "ensin nome",
|
||||
"pad.userlist.guest": "Invit\u00e1u",
|
||||
"pad.userlist.deny": "Refugar",
|
||||
"pad.userlist.approve": "Aprobar",
|
||||
"pad.editbar.clearcolors": "\u00bfLlimpiar los colores d'autor\u00eda nel documentu ensembre?",
|
||||
"pad.impexp.importbutton": "Importar agora",
|
||||
"pad.impexp.importing": "Importando...",
|
||||
"pad.impexp.confirmimport": "La importaci\u00f3n d'un ficheru sustituir\u00e1'l testu actual del bloc. \u00bfSeguro que quies siguir?",
|
||||
"pad.impexp.convertFailed": "Nun pudimos importar esti ficheru. Por favor,usa otru formatu de ficheru diferente o copia y pega manualmente.",
|
||||
"pad.impexp.uploadFailed": "Fall\u00f3 la carga del ficheru, intentalo otra vuelta",
|
||||
"pad.impexp.importfailed": "Fall\u00f3 la importaci\u00f3n",
|
||||
"pad.impexp.copypaste": "Por favor, copia y apega",
|
||||
"pad.impexp.exportdisabled": "La esportaci\u00f3n en formatu {{type}} ta desactivada. Por favor, comunica col alministrador del sistema pa m\u00e1s detalles."
|
||||
}
|
118
sources/src/locales/az.json
Normal file
118
sources/src/locales/az.json
Normal file
|
@ -0,0 +1,118 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"AZISS",
|
||||
"Khan27"
|
||||
]
|
||||
},
|
||||
"index.newPad": "Yeni Pad",
|
||||
"index.createOpenPad": "v\u0259 ya Pad-\u0131 ad\u0131 il\u0259 yarat/a\u00e7:",
|
||||
"pad.toolbar.bold.title": "Qal\u0131n (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "Kursiv (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "Alt\u0131ndan x\u0259tt \u00e7\u0259km\u0259 (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "Pozulma",
|
||||
"pad.toolbar.ol.title": "Qaydaya sal\u0131nm\u0131\u015f siyah\u0131",
|
||||
"pad.toolbar.ul.title": "Qaydaya sal\u0131nmam\u0131\u015f siyah\u0131",
|
||||
"pad.toolbar.indent.title": "Abzas",
|
||||
"pad.toolbar.unindent.title": "\u00c7\u0131x\u0131nt\u0131",
|
||||
"pad.toolbar.undo.title": "Geri Al (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "Qaytarmaq (Ctrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "M\u00fc\u0259lliflik R\u0259ngl\u0259rini T\u0259mizl\u0259",
|
||||
"pad.toolbar.import_export.title": "M\u00fcxt\u0259lif fayl formatlar\u0131n(a/dan) idxal/ixrac",
|
||||
"pad.toolbar.timeslider.title": "Vaxt c\u0259dv\u0259li",
|
||||
"pad.toolbar.savedRevision.title": "Saxlan\u0131lan D\u00fcz\u0259li\u015fl\u0259r",
|
||||
"pad.toolbar.settings.title": "T\u0259nziml\u0259m\u0259l\u0259r",
|
||||
"pad.toolbar.embed.title": "Bu pad-\u0131 yay\u0131mla",
|
||||
"pad.toolbar.showusers.title": "Pad-da istifad\u0259\u00e7il\u0259ri g\u00f6st\u0259r",
|
||||
"pad.colorpicker.save": "Saxla",
|
||||
"pad.colorpicker.cancel": "\u0130mtina",
|
||||
"pad.loading": "Y\u00fckl\u0259nir...",
|
||||
"pad.passwordRequired": "Bu pad-a daxil olmaq \u00fc\u00e7\u00fcn parol laz\u0131md\u0131r",
|
||||
"pad.permissionDenied": "Bu pad-a daxil olmaq \u00fc\u00e7\u00fcn icaz\u0259niz yoxdur",
|
||||
"pad.wrongPassword": "Sizin parolunuz s\u0259hvdir",
|
||||
"pad.settings.padSettings": "Pad T\u0259nziml\u0259m\u0259l\u0259ri",
|
||||
"pad.settings.myView": "M\u0259nim G\u00f6r\u00fcnt\u00fcm",
|
||||
"pad.settings.stickychat": "S\u00f6hb\u0259t h\u0259mi\u015f\u0259 ekranda",
|
||||
"pad.settings.colorcheck": "M\u00fc\u0259lliflik r\u0259ngl\u0259ri",
|
||||
"pad.settings.linenocheck": "S\u0259tir n\u00f6mr\u0259l\u0259ri",
|
||||
"pad.settings.fontType": "\u015eriftin tipi:",
|
||||
"pad.settings.fontType.normal": "Normal",
|
||||
"pad.settings.fontType.monospaced": "Monobo\u015fluq",
|
||||
"pad.settings.globalView": "\u00dcmumi g\u00f6r\u00fcn\u00fc\u015f",
|
||||
"pad.settings.language": "Dil:",
|
||||
"pad.importExport.import_export": "\u0130dxal/\u0130xrac",
|
||||
"pad.importExport.import": "H\u0259r hans\u0131 bir m\u0259tn fayl\u0131 v\u0259 ya s\u0259n\u0259d y\u00fckl\u0259",
|
||||
"pad.importExport.importSuccessful": "U\u011furlu!",
|
||||
"pad.importExport.export": "Haz\u0131rki pad-\u0131 ixrac etm\u0259k kimi:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Adi m\u0259tn",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (A\u00e7\u0131q S\u0259n\u0259d Format\u0131)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "Siz yaln\u0131z adi m\u0259tnd\u0259n v\u0259 ya HTML-d\u0259n idxal ed\u0259 bil\u0259rsiniz. \u0130dxal\u0131n daha m\u00fcr\u0259kk\u0259b funksiyalar\u0131 \u00fc\u00e7\u00fcn, z\u0259hm\u0259t olmasa, \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003E AbiWord-i qura\u015fd\u0131r\u0131n\u003C/a\u003E.",
|
||||
"pad.modals.connected": "Ba\u011fland\u0131.",
|
||||
"pad.modals.reconnecting": "Sizin pad yenid\u0259n qo\u015fulur..",
|
||||
"pad.modals.forcereconnect": "M\u0259cbur t\u0259krar\u0259n ba\u011flan",
|
||||
"pad.modals.userdup": "Ba\u015fqa p\u0259nc\u0259r\u0259d\u0259 art\u0131q a\u00e7\u0131qd\u0131r",
|
||||
"pad.modals.userdup.explanation": "S\u0259n\u0259d, ola bilsin ki, bu kompyuterd\u0259, brauzerin bir ne\u00e7\u0259 p\u0259nc\u0259r\u0259sind\u0259 a\u00e7\u0131lm\u0131\u015fd\u0131r.",
|
||||
"pad.modals.userdup.advice": "Bu p\u0259nc\u0259r\u0259d\u0259n istifad\u0259yl\u0259 yenid\u0259n qo\u015fulun.",
|
||||
"pad.modals.unauth": "\u0130caz\u0259li deyil",
|
||||
"pad.modals.unauth.explanation": "Bu s\u0259hif\u0259y\u0259 baxd\u0131\u011f\u0131n\u0131z vaxt sizin icaz\u0259niz d\u0259yi\u015filib. B\u0259rpa etm\u0259k \u00fc\u015f\u00fcn yenid\u0259n c\u0259hd edin.",
|
||||
"pad.modals.looping.explanation": "Sinxronla\u015fd\u0131rma serveri il\u0259 kommunikasiya x\u0259tas\u0131 var.",
|
||||
"pad.modals.looping.cause": "Ola bilsin ki, siz uy\u011fun olmayan fayrvol v\u0259 ya proksi vasit\u0259si il\u0259 qo\u015fulma\u011fa c\u0259hd g\u00f6st\u0259rirsiniz.",
|
||||
"pad.modals.initsocketfail": "Server \u0259l\u00e7atmazd\u0131r.",
|
||||
"pad.modals.initsocketfail.explanation": "Sinxronla\u015fd\u0131rma serverin\u0259 qo\u015fulma m\u00fcmk\u00fcns\u00fczd\u00fcr.",
|
||||
"pad.modals.initsocketfail.cause": "Ehtimal ki, bu problem sizin brauzerinizl\u0259 v\u0259 ya internet-birl\u0259\u015fm\u0259nizl\u0259 \u0259laq\u0259d\u0259rdir.",
|
||||
"pad.modals.slowcommit.explanation": "Server cavab vermir.",
|
||||
"pad.modals.slowcommit.cause": "Bu \u015f\u0259b\u0259k\u0259 ba\u011flant\u0131s\u0131nda probleml\u0259r yarana bil\u0259r.",
|
||||
"pad.modals.deleted": "Silindi.",
|
||||
"pad.modals.deleted.explanation": "Bu pad silindi.",
|
||||
"pad.modals.disconnected": "\u018flaq\u0259 k\u0259silib.",
|
||||
"pad.modals.disconnected.explanation": "Server\u0259 qo\u015fulma itirilib",
|
||||
"pad.modals.disconnected.cause": "Server istifad\u0259 olunmur. \u018fg\u0259r problem t\u0259krarlanacaqsa, biz\u0259 bildirin.",
|
||||
"pad.share": "Bu pad-\u0131 yay\u0131mla",
|
||||
"pad.share.readonly": "Yaln\u0131z oxuyun",
|
||||
"pad.share.link": "Ke\u00e7id",
|
||||
"pad.share.emebdcode": "URL-ni yay\u0131mla",
|
||||
"pad.chat": "S\u00f6hb\u0259t",
|
||||
"pad.chat.title": "Bu pad \u00fc\u00e7\u00fcn chat a\u00e7\u0131n.",
|
||||
"pad.chat.loadmessages": "Daha \u00e7ox mesaj y\u00fckl\u0259",
|
||||
"timeslider.pageTitle": "{{appTitle}} Vaxt c\u0259dv\u0259li",
|
||||
"timeslider.toolbar.returnbutton": "Pad-a qay\u0131t",
|
||||
"timeslider.toolbar.authors": "M\u00fc\u0259llifl\u0259r:",
|
||||
"timeslider.toolbar.authorsList": "M\u00fc\u0259llif yoxdur",
|
||||
"timeslider.toolbar.exportlink.title": "\u0130xrac",
|
||||
"timeslider.exportCurrent": "Cari versiyan\u0131 ixrac etm\u0259k kimi:",
|
||||
"timeslider.version": "Versiya {{version}}",
|
||||
"timeslider.saved": "Saxlan\u0131ld\u0131 {{day}} {{month}}, {{year}}",
|
||||
"timeslider.dateformat": "{{day}} {{month}}, {{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "Yanvar",
|
||||
"timeslider.month.february": "Fevral",
|
||||
"timeslider.month.march": "Mart",
|
||||
"timeslider.month.april": "Aprel",
|
||||
"timeslider.month.may": "May",
|
||||
"timeslider.month.june": "\u0130yun",
|
||||
"timeslider.month.july": "\u0130yul",
|
||||
"timeslider.month.august": "Avqust",
|
||||
"timeslider.month.september": "Sentyabr",
|
||||
"timeslider.month.october": "Oktyabr",
|
||||
"timeslider.month.november": "Noyabr",
|
||||
"timeslider.month.december": "Dekabr",
|
||||
"timeslider.unnamedauthors": "{{num}} ads\u0131z m\u00fc\u0259llifl\u0259r",
|
||||
"pad.savedrevs.marked": "Bu versiya indi yadda\u015fa saxlanm\u0131\u015f kimi ni\u015fanland\u0131",
|
||||
"pad.userlist.entername": "Ad\u0131n\u0131z\u0131 daxil et",
|
||||
"pad.userlist.unnamed": "ads\u0131z",
|
||||
"pad.userlist.guest": "Qonaq",
|
||||
"pad.userlist.deny": "\u0130nkar etm\u0259k",
|
||||
"pad.userlist.approve": "T\u0259sdiql\u0259m\u0259k",
|
||||
"pad.editbar.clearcolors": "B\u00fct\u00fcn s\u0259n\u0259dl\u0259rd\u0259 m\u00fc\u0259lliflik r\u0259ngl\u0259rini t\u0259mizl\u0259?",
|
||||
"pad.impexp.importbutton": "\u0130ndi idxal edin",
|
||||
"pad.impexp.importing": "\u0130dxal...",
|
||||
"pad.impexp.confirmimport": "Fayl\u0131n idxal\u0131 cari m\u0259tni yenil\u0259y\u0259c\u0259k. Siz \u0259minsinizmi ki, davam etm\u0259k ist\u0259yirsiniz?",
|
||||
"pad.impexp.convertFailed": "Biz bu fayl idxal etm\u0259k m\u00fcmk\u00fcn deyil idi. Xahi\u015f olunur m\u00fcxt\u0259lif s\u0259n\u0259dd\u0259n istifad\u0259 edin v\u0259 ya kopyalay\u0131b yap\u0131\u015fd\u0131rmaq yolundan istifad\u0259 edin",
|
||||
"pad.impexp.uploadFailed": "Y\u00fckl\u0259m\u0259d\u0259 s\u0259hv, xahi\u015f olunur yen\u0259 c\u0259hd edin",
|
||||
"pad.impexp.importfailed": "\u0130dxal zaman\u0131 s\u0259hv",
|
||||
"pad.impexp.copypaste": "Xahi\u015f edirik kopyalay\u0131b yap\u0131\u015fd\u0131r\u0131n",
|
||||
"pad.impexp.exportdisabled": "{{ type}} format\u0131nda ixrac s\u00f6nd\u00fcr\u00fclm\u00fc\u015fd\u00fcr. \u018ftrafl\u0131 informasiya \u00fc\u00e7\u00fcn sistem administratoruna m\u00fcraci\u0259t ediniz."
|
||||
}
|
72
sources/src/locales/azb.json
Normal file
72
sources/src/locales/azb.json
Normal file
|
@ -0,0 +1,72 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Amir a57",
|
||||
"Mousa"
|
||||
]
|
||||
},
|
||||
"index.newPad": "\u06cc\u0626\u0646\u06cc \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0641\u062a\u0631\u0686\u0647 \u0633\u06cc",
|
||||
"index.createOpenPad": "\u06cc\u0627 \u062f\u0627 \u0627\u06cc\u062c\u0627\u062f /\u0628\u06cc\u0631 \u067e\u062f \u0622\u062f\u0644\u0627 \u0628\u0631\u0627\u0628\u0631 \u0622\u0686\u0645\u0627\u0642:",
|
||||
"pad.toolbar.bold.title": "\u0628\u0648\u06cc\u0648\u062a",
|
||||
"pad.toolbar.italic.title": "\u0645\u0648\u0631\u0628",
|
||||
"pad.toolbar.underline.title": "\u062e\u0637\u062f\u06cc\u0646 \u0622\u0644\u062a\u06cc",
|
||||
"pad.toolbar.strikethrough.title": "\u062e\u0637 \u06cc\u0626\u0645\u06cc\u0634",
|
||||
"pad.toolbar.ol.title": "\u062c\u0648\u062a\u062f\u0646\u0645\u06cc\u0634 \u0641\u0647\u0631\u0633\u062a",
|
||||
"pad.toolbar.ul.title": "\u062c\u0648\u062a\u062f\u0646\u0645\u0645\u06cc\u0634 \u0641\u0647\u0631\u0633\u062a",
|
||||
"pad.toolbar.indent.title": "\u0627\u06cc\u0686\u0631\u06cc \u0628\u0627\u062a\u062f\u06cc\u06af\u06cc",
|
||||
"pad.toolbar.unindent.title": "\u0627\u0626\u0634\u06cc\u06af\u0647 \u0686\u06cc\u062e\u062f\u06cc\u06af\u06cc",
|
||||
"pad.toolbar.undo.title": "\u0628\u0627\u0637\u0644 \u0627\u0626\u062a\u0645\u06a9",
|
||||
"pad.toolbar.redo.title": "\u06cc\u0626\u0646\u06cc \u062f\u0646",
|
||||
"pad.toolbar.clearAuthorship.title": "\u06cc\u0627\u0632\u06cc\u0686\u06cc \u0631\u0646\u06af \u0644\u0631\u06cc \u067e\u0648\u0632\u0645\u0627\u0642",
|
||||
"pad.toolbar.import_export.title": "\u0622\u06cc\u0631\u06cc \u0642\u0627\u0644\u06cc\u0628 \u0644\u0631\u062f\u0646 /\u0627\u06cc\u0686\u0631\u06cc \u062a\u0648\u06a9\u0645\u0647 / \u0627\u0626\u0634\u06cc\u06af\u0647 \u062a\u0648\u06a9\u0645\u0647",
|
||||
"pad.toolbar.timeslider.title": "\u0632\u0645\u0627\u0646 \u0627\u0633\u0644\u0627\u06cc\u062f\u06cc",
|
||||
"pad.toolbar.savedRevision.title": "\u0633\u0627\u062e\u0644\u0627\u0646\u0645\u06cc\u0634 \u0646\u0633\u062e\u0647 \u0644\u0631",
|
||||
"pad.toolbar.settings.title": "\u062a\u0646\u0638\u06cc\u0645\u0644\u0631",
|
||||
"pad.toolbar.embed.title": "\u0628\u0648 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0641\u062a\u0631\u0686\u0647 \u0633\u06cc\u0646 \u06cc\u0626\u0631\u0644\u062a\u0645\u06a9",
|
||||
"pad.toolbar.showusers.title": "\u0628\u0648 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0627 \u0627\u0648\u0644\u0627\u0646 \u06a9\u0627\u0631\u0628\u0631\u0644\u0631\u06cc \u06af\u0648\u0633\u062a\u0631",
|
||||
"pad.colorpicker.save": "\u0642\u0626\u06cc\u062f \u0627\u0626\u062a",
|
||||
"pad.colorpicker.cancel": "\u0644\u063a\u0648 \u0627\u0626\u062a",
|
||||
"pad.loading": "\u06cc\u0648\u06a9\u0644\u0646\u06cc\u0631...",
|
||||
"pad.settings.padSettings": "\u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0641\u062a\u0631\u0686\u0647 \u0633\u06cc\u0646\u06cc\u0646 \u062a\u0646\u0638\u06cc\u0645\u0644\u0631",
|
||||
"pad.settings.myView": "\u0645\u0646\u06cc\u0645 \u06af\u0648\u0631\u0646\u062a\u0648\u0645",
|
||||
"pad.settings.stickychat": "\u0646\u0645\u0627\u06cc\u0634 \u0635\u0641\u062d\u0647 \u0633\u06cc\u0646\u062f\u0647 \u0647\u0645\u06cc\u0634\u0647 \u0686\u062a \u0627\u0648\u0644\u0633\u0648\u0646",
|
||||
"pad.settings.colorcheck": "\u06cc\u0627\u0632\u06cc\u0686\u06cc \u0631\u0646\u06af \u0644\u0631\u06cc",
|
||||
"pad.settings.linenocheck": "\u062e\u0637\u0648\u0637 \u0634\u0645\u0627\u0631\u0647 \u0633\u06cc",
|
||||
"pad.settings.fontType": "\u0642\u0644\u0645 \u0646\u0648\u0639\u06cc",
|
||||
"pad.settings.fontType.normal": "\u0646\u0648\u0631\u0645\u0627\u0644",
|
||||
"pad.settings.fontType.monospaced": "\u0645\u0648\u0646\u0648 \u0627\u0633\u067e\u0626\u06cc\u0633",
|
||||
"pad.settings.globalView": "\u0633\u0631\u0627\u0633\u0631 \u06af\u0648\u0631\u0648\u0646\u062a\u0648",
|
||||
"pad.settings.language": "\u062f\u06cc\u0644:",
|
||||
"pad.importExport.import_export": "\u0627\u06cc\u0686\u0631\u06cc \u062a\u0648\u06a9\u0645\u0647 /\u0627\u0626\u0634\u06cc\u06af\u0647 \u062a\u0648\u06a9\u0645\u0647",
|
||||
"pad.importExport.import": "\u0633\u0646\u062f \u06cc\u0627 \u062f\u0627 \u0645\u062a\u0646\u06cc \u067e\u0631\u0648\u0646\u062f\u0647 \u06cc\u0648\u06a9\u0644\u0647",
|
||||
"pad.importExport.export": "\u0628\u0648 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0641\u062a\u0631\u0686\u0647 \u0633\u06cc \u0639\u0646\u0648\u0627\u0646\u0627 \u0627\u06cc\u0686\u0631\u06cc \u062a\u0648\u06a9\u0645\u0647",
|
||||
"pad.importExport.exporthtml": "\u0627\u0686 \u062a\u06cc \u0627\u0645 \u0627\u0644",
|
||||
"pad.importExport.exportplain": "\u0633\u0627\u062f\u0647 \u0645\u062a\u0646",
|
||||
"pad.importExport.exportword": "\u0645\u0627\u06cc\u06a9\u0631\u0648\u0633\u0627\u0641\u062a \u0648\u0648\u0631\u062f",
|
||||
"pad.importExport.exportpdf": "\u067e\u06cc \u062f\u06cc \u0627\u0641",
|
||||
"pad.importExport.exportopen": "\u0627\u0648 \u062f\u06cc \u0627\u0641",
|
||||
"pad.importExport.exportdokuwiki": "\u062f\u0648\u06a9\u0648 \u0648\u06cc\u06a9\u06cc",
|
||||
"pad.modals.connected": "\u0645\u062a\u0635\u0644 \u0627\u0648\u0644\u062f\u06cc",
|
||||
"pad.modals.reconnecting": "\u0633\u06cc\u0632\u06cc\u0646 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0641\u062a\u0631\u0686\u0647 \u0633\u06cc\u0646\u0647 \u06cc\u0626\u0646\u06cc \u062f\u0646 \u0645\u062a\u0635\u06cc\u0644 \u0627\u0648\u0644\u062f\u06cc",
|
||||
"pad.modals.forcereconnect": "\u06cc\u0626\u0646\u06cc \u0627\u062a\u0635\u0627\u0644 \u0627\u0648\u0686\u0648\u0646 \u0632\u0648\u0631\u0644\u0627\u0645\u0627",
|
||||
"pad.modals.userdup.advice": "\u0628\u0648 \u067e\u0626\u0646\u062c\u0631\u0647 \u062f\u0646 \u0627\u06cc\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0626\u062a\u0645\u06a9 \u0627\u0648\u0686\u0648\u0646 \u06cc\u0626\u0646\u06cc \u062f\u0646 \u0645\u062a\u0635\u06cc\u0644 \u0627\u0648\u0644",
|
||||
"pad.modals.unauth": "\u0627\u0648\u0644\u0645\u0627\u0632",
|
||||
"pad.modals.unauth.explanation": "\u0633\u06cc\u0632\u06cc\u0646 \u0627\u0644 \u0686\u062a\u0645\u0627 \u0645\u0633\u0626\u0644\u0647 \u0633\u06cc \u0628\u0648 \u0635\u0641\u062d\u0647 \u0646\u06cc\u0646 \u06af\u0648\u0631\u0648\u0646\u0648\u0634 \u0632\u0645\u0627\u0646\u06cc\u0646\u062f\u0627 \u062f\u06cc\u06cc\u0634\u06cc\u0644\u06cc\u0628 \u062f\u06cc\u0631 .\n\u0633\u0639\u06cc \u0627\u0626\u062f\u06cc\u0646 \u06cc\u0626\u0646\u06cc \u062f\u0646 \u0645\u062a\u0635\u06cc\u0644 \u0627\u0648\u0644\u0627\u0633\u06cc\u0646\u06cc\u0632",
|
||||
"pad.modals.looping.explanation": "\u0627\u0631\u062a\u06cc\u0628\u0627\u0637\u06cc \u0645\u0648\u0634\u06a9\u06cc\u0644 \u0628\u06cc\u0631 \u0627\u0626\u062a\u0645\u0647 \u0633\u0631\u0648\u0631 \u062f\u0647 \u0648\u0627\u0631 \u062f\u06cc\u0631",
|
||||
"pad.modals.looping.cause": "\u0628\u0644\u06a9\u0647 \u0633\u06cc\u0632 \u062f\u0648\u0632 \u062f\u0626\u0645\u06cc\u06cc\u0646 \u0628\u06cc\u0631 \u0641\u0627\u06cc\u0631\u0648\u0627\u0644 \u06cc\u0627\u062f\u0627 \u067e\u0631\u0648\u06a9\u0633\u06cc \u0637\u0631\u06cc\u0642\u06cc \u0627\u06cc\u0644\u0647 \u0645\u062a\u0635\u06cc\u0644 \u0627\u0648\u0644\u0648\u0628 \u0633\u06cc\u0646\u06cc\u0632",
|
||||
"pad.modals.initsocketfail": "\u062f\u0633\u062a\u0631\u0633\u06cc \u0627\u0648\u0644\u0645\u0648\u06cc\u0627\u0646 \u0633\u0631\u0648\u0631 \u062f\u06cc\u0631",
|
||||
"pad.modals.initsocketfail.explanation": "\u0628\u06cc\u0631\u0644\u0634\u062f\u06cc\u0631\u06cc\u0644\u0645\u0647 \u0633\u0631\u0648\u0631 \u0644\u0631\u06cc\u0646\u0647 \u0645\u062a\u0635\u06cc\u0644 \u0627\u0648\u0644\u0627 \u0628\u06cc\u0644\u0645\u0647 \u062f\u06cc",
|
||||
"pad.modals.deleted": "\u0633\u06cc\u0644\u06cc\u0646\u062f\u06cc.",
|
||||
"pad.modals.deleted.explanation": "\u0628\u0648 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0641\u062a\u0631\u0686\u0647 \u0633\u06cc \u0633\u06cc\u0644\u06cc\u0646\u06cc\u0628 \u062f\u06cc\u0631.",
|
||||
"pad.modals.disconnected": "\u0633\u06cc\u0632\u06cc\u0646 \u0627\u062a\u0635\u0627\u0644\u06cc\u0646\u06cc\u0632 \u0642\u0637\u0639 \u0627\u0648\u0644\u0648\u0628 \u062f\u0648\u0631.",
|
||||
"pad.modals.disconnected.explanation": "\u0633\u0631\u0648\u0631\u0647 \u0627\u062a\u0635\u0627\u0644 \u0642\u0637\u0639 \u0627\u0648\u0644\u0648\u0628 \u062f\u0648\u0631.",
|
||||
"pad.share.readonly": "\u0627\u0648\u062e\u0648\u0645\u0627\u0644\u06cc \u0641\u0642\u0637",
|
||||
"pad.share.link": "\u0628\u0627\u063a\u0644\u0627\u0646\u062a\u06cc",
|
||||
"pad.share.emebdcode": "\u0646\u0634\u0627\u0646\u06cc \u0646\u06cc \u06cc\u0626\u0631\u0644\u062a\u0645\u06a9",
|
||||
"pad.chat": "\u0686\u062a",
|
||||
"pad.chat.title": "\u0628\u0648 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0641\u062a\u0631\u0686\u0647 \u0646\u06cc \u0686\u062a \u0627\u0648\u0686\u0648\u0646 \u0622\u0686",
|
||||
"timeslider.pageTitle": "{{appTitle}}\u0632\u0645\u0627\u0646 \u0627\u0633\u0644\u0627\u06cc\u062f\u0631\u06cc",
|
||||
"timeslider.toolbar.returnbutton": "\u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0641\u062a\u0631\u0686\u0647 \u0633\u06cc\u0646\u0647 \u0642\u0627\u06cc\u06cc\u062a",
|
||||
"timeslider.toolbar.authors": "\u06cc\u0627\u0632\u06cc\u0686\u06cc\u0644\u0627\u0631",
|
||||
"timeslider.toolbar.authorsList": "\u06cc\u0627\u0632\u06cc\u0686\u06cc \u0633\u06cc\u0632"
|
||||
}
|
61
sources/src/locales/be-tarask.json
Normal file
61
sources/src/locales/be-tarask.json
Normal file
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Jim-by",
|
||||
"Wizardist"
|
||||
]
|
||||
},
|
||||
"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"
|
||||
}
|
89
sources/src/locales/bn.json
Normal file
89
sources/src/locales/bn.json
Normal file
|
@ -0,0 +1,89 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Bellayet",
|
||||
"Nasir8891",
|
||||
"Sankarshan"
|
||||
]
|
||||
},
|
||||
"index.newPad": "\u09a8\u09a4\u09c1\u09a8 \u09aa\u09cd\u09af\u09be\u09a1",
|
||||
"index.createOpenPad": "\u0985\u09a5\u09ac\u09be \u09a8\u09be\u09ae \u09b2\u09bf\u0996\u09c7 \u09aa\u09cd\u09af\u09be\u09a1 \u0996\u09c1\u09b2\u09c1\u09a8/\u09a4\u09c8\u09b0\u09c0 \u0995\u09b0\u09c1\u09a8:",
|
||||
"pad.toolbar.bold.title": "\u0997\u09be\u09a1\u09bc \u0995\u09b0\u09be (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "\u09ac\u09be\u0981\u0995\u09be \u0995\u09b0\u09be (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "\u0986\u09a8\u09cd\u09a1\u09be\u09b0\u09b2\u09be\u0987\u09a8 (Ctrl-U)",
|
||||
"pad.toolbar.ol.title": "\u09b8\u09be\u09b0\u09bf\u09ac\u09a6\u09cd\u09a7 \u09a4\u09be\u09b2\u09bf\u0995\u09be",
|
||||
"pad.toolbar.indent.title": "\u09aa\u09cd\u09b0\u09be\u09a8\u09cd\u09a4\u09bf\u0995\u0995\u09b0\u09a3",
|
||||
"pad.toolbar.unindent.title": "\u0986\u0989\u099f\u09a1\u09c7\u09a8\u09cd\u099f",
|
||||
"pad.toolbar.undo.title": "\u09ac\u09be\u09a4\u09bf\u09b2 \u0995\u09b0\u09c1\u09a8 (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "\u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u0995\u09b0\u09c1\u09a8 (Ctrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "\u0995\u09c3\u09a4\u09bf \u09b0\u0982 \u09aa\u09b0\u09bf\u09b7\u09cd\u0995\u09be\u09b0 \u0995\u09b0\u09c1\u09a8",
|
||||
"pad.toolbar.timeslider.title": "\u099f\u09be\u0987\u09ae\u09b8\u09cd\u09b2\u09be\u0987\u09a1\u09be\u09b0",
|
||||
"pad.toolbar.savedRevision.title": "\u09b8\u0982\u09b8\u09cd\u0995\u09b0\u09a3 \u09b8\u0982\u09b0\u0995\u09cd\u09b7\u09a3 \u0995\u09b0\u09c1\u09a8",
|
||||
"pad.toolbar.settings.title": "\u09b8\u09c7\u099f\u09bf\u0982",
|
||||
"pad.toolbar.embed.title": "\u098f\u0987 \u09aa\u09cd\u09af\u09be\u09a1-\u099f\u09bf \u098f\u09ae\u09cd\u09ac\u09c7\u09a1 \u0995\u09b0\u09c1\u09a8",
|
||||
"pad.toolbar.showusers.title": "\u098f\u0987 \u09aa\u09cd\u09af\u09be\u09a1\u09c7\u09b0 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0\u0995\u09be\u09b0\u09c0\u09a6\u09c7\u09b0 \u09a6\u09c7\u0996\u09be\u09a8",
|
||||
"pad.colorpicker.save": "\u09b8\u0982\u09b0\u0995\u09cd\u09b7\u09a3",
|
||||
"pad.colorpicker.cancel": "\u09ac\u09be\u09a4\u09bf\u09b2",
|
||||
"pad.loading": "\u09b2\u09cb\u09a1\u09bf\u0982...",
|
||||
"pad.passwordRequired": "\u098f\u0987 \u09aa\u09cd\u09af\u09be\u09a1-\u099f\u09bf \u09a6\u09c7\u0996\u09be\u09b0 \u099c\u09a8\u09cd\u09af \u0986\u09aa\u09a8\u09be\u0995\u09c7 \u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09a4\u09c7 \u09b9\u09ac\u09c7",
|
||||
"pad.permissionDenied": "\u09a6\u09c1\u0983\u0996\u09bf\u09a4, \u098f \u09aa\u09cd\u09af\u09be\u09a1-\u099f\u09bf \u09a6\u09c7\u0996\u09be\u09b0 \u0985\u09a7\u09bf\u0995\u09be\u09b0 \u0986\u09aa\u09a8\u09be\u09b0 \u09a8\u09c7\u0987",
|
||||
"pad.wrongPassword": "\u0986\u09aa\u09a8\u09be\u09b0 \u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1 \u09b8\u09a0\u09bf\u0995 \u09a8\u09af\u09bc",
|
||||
"pad.settings.padSettings": "\u09aa\u09cd\u09af\u09be\u09a1\u09c7\u09b0 \u09b8\u09cd\u09a5\u09be\u09aa\u09a8",
|
||||
"pad.settings.myView": "\u0986\u09ae\u09be\u09b0 \u09a6\u09c3\u09b6\u09cd\u09af",
|
||||
"pad.settings.stickychat": "\u099a\u09cd\u09af\u09be\u099f \u09b8\u0995\u09cd\u09b0\u09c0\u09a8\u09c7 \u09aa\u09cd\u09b0\u09a6\u09b0\u09cd\u09b6\u09a8 \u0995\u09b0\u09be \u09b9\u09ac\u09c7",
|
||||
"pad.settings.colorcheck": "\u09b2\u09c7\u0996\u0995\u09a6\u09c7\u09b0 \u09a8\u09bf\u099c\u09b8\u09cd\u09ac \u09a8\u09bf\u09b0\u09cd\u09ac\u09be\u099a\u09bf\u09a4 \u09b0\u0982",
|
||||
"pad.settings.linenocheck": "\u09b2\u09be\u0987\u09a8 \u09a8\u09ae\u09cd\u09ac\u09b0",
|
||||
"pad.settings.fontType": "\u09ab\u09a8\u09cd\u099f-\u098f\u09b0 \u09aa\u09cd\u09b0\u0995\u09be\u09b0:",
|
||||
"pad.settings.fontType.normal": "\u09b8\u09be\u09a7\u09be\u09b0\u09a3",
|
||||
"pad.settings.fontType.monospaced": "Monospace",
|
||||
"pad.settings.globalView": "\u09b8\u09b0\u09cd\u09ac\u09ac\u09cd\u09af\u09be\u09aa\u09c0 \u09a6\u09c3\u09b6\u09cd\u09af",
|
||||
"pad.settings.language": "\u09ad\u09be\u09b7\u09be:",
|
||||
"pad.importExport.import_export": "\u0987\u09ae\u09cd\u09aa\u09cb\u09b0\u099f/\u098f\u0995\u09cd\u09b8\u09aa\u09cb\u09b0\u09cd\u099f",
|
||||
"pad.importExport.import": "\u0995\u09cb\u09a8 \u099f\u09c7\u0995\u09cd\u09b8\u099f \u09ab\u09be\u0987\u09b2 \u09ac\u09be \u09a1\u0995\u09c1\u09ae\u09c7\u09a8\u09cd\u099f \u0986\u09aa\u09b2\u09cb\u09a1 \u0995\u09b0\u09c1\u09a8",
|
||||
"pad.importExport.importSuccessful": "\u09b8\u09ab\u09b2!",
|
||||
"pad.importExport.export": "\u098f\u0987 \u09aa\u09cd\u09af\u09be\u09a1\u099f\u09bf \u098f\u0995\u09cd\u09b8\u09aa\u09cb\u09b0\u09cd\u099f \u0995\u09b0\u09c1\u09a8",
|
||||
"pad.importExport.exporthtml": "\u098f\u0987\u099a\u099f\u09bf\u098f\u09ae\u098f\u09b2",
|
||||
"pad.importExport.exportplain": "\u09b8\u09be\u09a7\u09be\u09b0\u09a3 \u09b2\u09c7\u0996\u09be",
|
||||
"pad.importExport.exportword": "\u09ae\u09be\u0987\u0995\u09cd\u09b0\u09cb\u09b8\u09ab\u099f \u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1",
|
||||
"pad.importExport.exportpdf": "\u09aa\u09bf\u09a1\u09bf\u098f\u09ab",
|
||||
"pad.importExport.exportopen": "\u0993\u09a1\u09bf\u098f\u09ab (\u0993\u09aa\u09c7\u09a8 \u09a1\u0995\u09c1\u09ae\u09c7\u09a8\u09cd\u099f \u09ab\u09b0\u09ae\u09cd\u09af\u09be\u099f)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.modals.connected": "\u09af\u09cb\u0997\u09be\u09af\u09cb\u0997 \u09b8\u09ab\u09b2",
|
||||
"pad.modals.reconnecting": "\u0986\u09aa\u09a8\u09be\u09b0 \u09aa\u09cd\u09af\u09be\u09a1\u09c7\u09b0 \u09b8\u09be\u09a5\u09c7 \u09b8\u0982\u09af\u09cb\u0997\u09b8\u09cd\u09a5\u09be\u09aa\u09a8 \u0995\u09b0\u09be \u09b9\u099a\u09cd\u099b\u09c7..",
|
||||
"pad.modals.forcereconnect": "\u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09b8\u0982\u09af\u09cb\u0997\u09b8\u09cd\u09a5\u09be\u09aa\u09a8\u09c7\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be",
|
||||
"pad.modals.userdup": "\u0985\u09a8\u09cd\u09af \u0989\u0987\u09a8\u09cd\u09a1\u09cb-\u09a4\u09c7 \u0996\u09cb\u09b2\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7",
|
||||
"pad.modals.unauth": "\u0986\u09aa\u09a8\u09be\u09b0 \u0985\u09a7\u09bf\u0995\u09be\u09b0 \u09a8\u09c7\u0987",
|
||||
"pad.modals.initsocketfail": "\u09b8\u09be\u09b0\u09cd\u09ad\u09be\u09b0-\u098f\u09b0 \u09b8\u09be\u09a5\u09c7 \u09af\u09cb\u0997\u09be\u09af\u09cb\u0997 \u0995\u09b0\u09a4\u09c7 \u0985\u09b8\u0995\u09cd\u09b7\u09ae\u0964",
|
||||
"pad.modals.deleted": "\u0985\u09aa\u09b8\u09be\u09b0\u09bf\u09a4\u0964",
|
||||
"pad.modals.deleted.explanation": "\u098f\u0987 \u09aa\u09cd\u09af\u09be\u09a1\u099f\u09bf \u0985\u09aa\u09b8\u09be\u09b0\u09a3 \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7\u0964",
|
||||
"pad.modals.disconnected.explanation": "\u09b8\u09be\u09b0\u09cd\u09ad\u09be\u09b0\u09c7\u09b0 \u09b8\u09be\u09a5\u09c7 \u09af\u09cb\u0997\u09be\u09af\u09cb\u0997 \u0995\u09b0\u09be \u09af\u09be\u099a\u09cd\u099b\u09c7 \u09a8\u09be",
|
||||
"pad.share": "\u09b6\u09c7\u09af\u09bc\u09be\u09b0 \u0995\u09b0\u09c1\u09a8",
|
||||
"pad.share.link": "\u09b2\u09bf\u0982\u0995",
|
||||
"pad.share.emebdcode": "\u0987\u0989\u0986\u09b0\u098f\u09b2 \u09b8\u0982\u09af\u09cb\u099c\u09a8",
|
||||
"pad.chat": "\u099a\u09cd\u09af\u09be\u099f",
|
||||
"pad.chat.title": "\u098f\u0987 \u09aa\u09cd\u09af\u09be\u09a1\u09c7\u09b0 \u099c\u09a8\u09cd\u09af \u099a\u09cd\u09af\u09be\u099f \u099a\u09be\u09b2\u09c1 \u0995\u09b0\u09c1\u09a8\u0964",
|
||||
"timeslider.toolbar.returnbutton": "\u09aa\u09cd\u09af\u09be\u09a1\u09c7 \u09ab\u09bf\u09b0\u09c7 \u09af\u09be\u0993",
|
||||
"timeslider.toolbar.authors": "\u09b2\u09c7\u0996\u0995\u0997\u09a3:",
|
||||
"timeslider.toolbar.authorsList": "\u0995\u09cb\u09a8\u09cb \u09b2\u09c7\u0996\u0995 \u09a8\u09c7\u0987",
|
||||
"timeslider.exportCurrent": "\u09ac\u09b0\u09cd\u09a4\u09ae\u09be\u09a8 \u09b8\u0982\u09b8\u09cd\u0995\u09b0\u09a3\u099f\u09bf \u098f\u0995\u09cd\u09b8\u09aa\u09cb\u09b0\u09cd\u099f \u0995\u09b0\u09c1\u09a8:",
|
||||
"timeslider.dateformat": "{{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "\u099c\u09be\u09a8\u09c1\u09af\u09bc\u09be\u09b0\u09bf",
|
||||
"timeslider.month.february": "\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09af\u09bc\u09be\u09b0\u09bf",
|
||||
"timeslider.month.march": "\u09ae\u09be\u09b0\u09cd\u099a",
|
||||
"timeslider.month.april": "\u098f\u09aa\u09cd\u09b0\u09bf\u09b2",
|
||||
"timeslider.month.may": "\u09ae\u09c7",
|
||||
"timeslider.month.june": "\u099c\u09c1\u09a8",
|
||||
"timeslider.month.july": "\u099c\u09c1\u09b2\u09be\u0987",
|
||||
"timeslider.month.august": "\u0986\u0997\u09b8\u09cd\u099f",
|
||||
"timeslider.month.september": "\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0",
|
||||
"timeslider.month.october": "\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0",
|
||||
"timeslider.month.november": "\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0",
|
||||
"timeslider.month.december": "\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0",
|
||||
"pad.userlist.entername": "\u0986\u09aa\u09a8\u09be\u09b0 \u09a8\u09be\u09ae",
|
||||
"pad.userlist.unnamed": "\u0995\u09cb\u09a8 \u09a8\u09be\u09ae \u09a8\u09bf\u09b0\u09cd\u09ac\u09be\u099a\u09a8 \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09a8\u09bf",
|
||||
"pad.userlist.guest": "\u0985\u09a4\u09bf\u09a5\u09bf",
|
||||
"pad.userlist.approve": "\u0985\u09a8\u09c1\u09ae\u09cb\u09a6\u09bf\u09a4",
|
||||
"pad.impexp.importbutton": "\u098f\u0996\u09a8 \u0987\u09ae\u09cd\u09aa\u09cb\u09b0\u09cd\u099f \u0995\u09b0\u09c1\u09a8",
|
||||
"pad.impexp.importing": "\u0987\u09ae\u09cd\u09aa\u09cb\u09b0\u09cd\u099f \u099a\u09b2\u099b\u09c7...",
|
||||
"pad.impexp.importfailed": "\u0987\u09ae\u09cd\u09aa\u09cb\u09b0\u09cd\u099f \u0985\u09b8\u0995\u09cd\u09b7\u09ae"
|
||||
}
|
121
sources/src/locales/br.json
Normal file
121
sources/src/locales/br.json
Normal file
|
@ -0,0 +1,121 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Fohanno",
|
||||
"Fulup",
|
||||
"Gwenn-Ael",
|
||||
"Y-M D"
|
||||
]
|
||||
},
|
||||
"index.newPad": "Pad nevez",
|
||||
"index.createOpenPad": "pe kroui\u00f1/digeri\u00f1 ur pad gant an anv :",
|
||||
"pad.toolbar.bold.title": "Tev (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "Italek (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "Islinenna\u00f1 (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "Barrennet",
|
||||
"pad.toolbar.ol.title": "Roll urzhiet",
|
||||
"pad.toolbar.ul.title": "Roll en dizurzh",
|
||||
"pad.toolbar.indent.title": "Endanta\u00f1",
|
||||
"pad.toolbar.unindent.title": "Diendanta\u00f1",
|
||||
"pad.toolbar.undo.title": "Dizober (Ktrl-Z)",
|
||||
"pad.toolbar.redo.title": "Adober (Ktrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "Diverka\u00f1 al livio\u00f9 oc'h anaout an aozerien",
|
||||
"pad.toolbar.import_export.title": "Enporzhia\u00f1/Ezporzhia\u00f1 eus/war-zu ur furmad restr dishe\u00f1vel",
|
||||
"pad.toolbar.timeslider.title": "Istor dinamek",
|
||||
"pad.toolbar.savedRevision.title": "Doareo\u00f9 enrollet",
|
||||
"pad.toolbar.settings.title": "Arventenno\u00f9",
|
||||
"pad.toolbar.embed.title": "Ranna\u00f1 hag enframma\u00f1 ar pad-ma\u00f1",
|
||||
"pad.toolbar.showusers.title": "Diskwelet implijerien ar Pad",
|
||||
"pad.colorpicker.save": "Enrolla\u00f1",
|
||||
"pad.colorpicker.cancel": "Nulla\u00f1",
|
||||
"pad.loading": "O karga\u00f1...",
|
||||
"pad.passwordRequired": "Ezhomm ho peus ur ger-tremen evit mont d'ar Pad-se",
|
||||
"pad.permissionDenied": "\nN'oc'h ket aotreet da vont d'ar pad-ma\u00f1",
|
||||
"pad.wrongPassword": "Fazius e oa ho ker-tremen",
|
||||
"pad.settings.padSettings": "Arventenno\u00f9 Pad",
|
||||
"pad.settings.myView": "Ma diskwel",
|
||||
"pad.settings.stickychat": "Diskwel ar flap bepred",
|
||||
"pad.settings.colorcheck": "Livio\u00f9 anaout",
|
||||
"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.normal": "Reizh",
|
||||
"pad.settings.fontType.monospaced": "Monospas",
|
||||
"pad.settings.globalView": "Gwel dre vras",
|
||||
"pad.settings.language": "Yezh :",
|
||||
"pad.importExport.import_export": "Enporzhia\u00f1/Ezporzhia\u00f1",
|
||||
"pad.importExport.import": "Enkarga\u00f1 un destenn pe ur restr",
|
||||
"pad.importExport.importSuccessful": "Deuet eo ganeoc'h !",
|
||||
"pad.importExport.export": "Ezporzhia\u00f1 ar pad brema\u00f1 evel :",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Testenn blaen",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "Ne c'hallit ket emporzjia\u00f1 furmado\u00f9 testenno\u00f9 kriz pe html. Evit arc'hwelio\u00f9 enporzhia\u00f1 emdroetoc'h, staliit \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003Eabiword\u003C/a\u003E mar plij.",
|
||||
"pad.modals.connected": "Kevreet.",
|
||||
"pad.modals.reconnecting": "Adkevrea\u00f1 war-zu ho pad...",
|
||||
"pad.modals.forcereconnect": "Adkevrea\u00f1 dre heg",
|
||||
"pad.modals.userdup": "Digor en ur prenestr all",
|
||||
"pad.modals.userdup.explanation": "Digor eo ho pad, war a seblant, e meur a brenestr eus ho merdeer en urzhiataer-ma\u00f1.",
|
||||
"pad.modals.userdup.advice": "Kevrea\u00f1 en ur implijout ar prenestr-ma\u00f1.",
|
||||
"pad.modals.unauth": "N'eo ket aotreet",
|
||||
"pad.modals.unauth.explanation": "Kemmet e vo hoc'h aotreo\u00f9 pa vo diskwelet ar bajenn.-ma\u00f1 Klaskit kevrea\u00f1 en-dro.",
|
||||
"pad.modals.looping.explanation": "Kudenno\u00f9 kehenti\u00f1 zo gant ar servijer sinkronelekaat.",
|
||||
"pad.modals.looping.cause": "Posupl eo e vefe gwarezet ho kevreadur gant ur maltouter diembreget pe ur servijer proksi",
|
||||
"pad.modals.initsocketfail": "Ne c'haller ket tizhout ar servijer.",
|
||||
"pad.modals.initsocketfail.explanation": "Ne c'haller ket kevrea\u00f1 ouzh ar servijer sinkronelaat.",
|
||||
"pad.modals.initsocketfail.cause": "Gallout a ra ar gudenn dont eus ho merdeer Web pe eus ho kevreadur Internet.",
|
||||
"pad.modals.slowcommit.explanation": "Ne respont ket ar serveur.",
|
||||
"pad.modals.slowcommit.cause": "Gallout a ra dont diwar kudenno\u00f9 kevrea\u00f1 gant ar rouedad.",
|
||||
"pad.modals.deleted": "Dilamet.",
|
||||
"pad.modals.deleted.explanation": "Lamet eo bet ar pad-ma\u00f1.",
|
||||
"pad.modals.disconnected": "Digevreet oc'h bet.",
|
||||
"pad.modals.disconnected.explanation": "Kollet eo bet ar c'hevreadur gant ar servijer",
|
||||
"pad.modals.disconnected.cause": "Dizimplijadus eo ar servijer marteze. Kelaouit ac'hanomp ma pad ar gudenn.",
|
||||
"pad.share": "Ranna\u00f1 ar pad-ma\u00f1.",
|
||||
"pad.share.readonly": "Lenn hepken",
|
||||
"pad.share.link": "Liamm",
|
||||
"pad.share.emebdcode": "Enframma\u00f1 an URL",
|
||||
"pad.chat": "Flap",
|
||||
"pad.chat.title": "Digeri\u00f1 ar flap kevelet gant ar pad-ma\u00f1.",
|
||||
"pad.chat.loadmessages": "Karga\u00f1 muioc'h a gemennadenno\u00f9",
|
||||
"timeslider.pageTitle": "Istor dinamek eus {{appTitle}}",
|
||||
"timeslider.toolbar.returnbutton": "Distrei\u00f1 d'ar pad-ma\u00f1.",
|
||||
"timeslider.toolbar.authors": "Aozerien :",
|
||||
"timeslider.toolbar.authorsList": "Aozer ebet",
|
||||
"timeslider.toolbar.exportlink.title": "Ezporzhia\u00f1",
|
||||
"timeslider.exportCurrent": "Ezporzhia\u00f1 an doare brema\u00f1 evel :",
|
||||
"timeslider.version": "Stumm {{version}}",
|
||||
"timeslider.saved": "Enrolla\u00f1 {{day}} {{month}} {{year}}",
|
||||
"timeslider.dateformat": "{{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "Genver",
|
||||
"timeslider.month.february": "C'hwevrer",
|
||||
"timeslider.month.march": "Meurzh",
|
||||
"timeslider.month.april": "Ebrel",
|
||||
"timeslider.month.may": "Mae",
|
||||
"timeslider.month.june": "Mezheven",
|
||||
"timeslider.month.july": "Gouere",
|
||||
"timeslider.month.august": "Eost",
|
||||
"timeslider.month.september": "Gwengolo",
|
||||
"timeslider.month.october": "Here",
|
||||
"timeslider.month.november": "Du",
|
||||
"timeslider.month.december": "Kerzu",
|
||||
"timeslider.unnamedauthors": "{{num}} dianav {[plural(num) one: aozer, other: aozerien ]}",
|
||||
"pad.savedrevs.marked": "Merket eo an adweladenn-ma\u00f1 evel adweladenn gwiriet",
|
||||
"pad.userlist.entername": "Ebarzhit hoc'h anv",
|
||||
"pad.userlist.unnamed": "dizanv",
|
||||
"pad.userlist.guest": "Den pedet",
|
||||
"pad.userlist.deny": "Nac'h",
|
||||
"pad.userlist.approve": "Aproui\u00f1",
|
||||
"pad.editbar.clearcolors": "Diverka\u00f1 al livio\u00f9 stag ouzh an aozerien en teul a-bezh ?",
|
||||
"pad.impexp.importbutton": "Enporzhia\u00f1 brema\u00f1",
|
||||
"pad.impexp.importing": "Oc'h enporzhia\u00f1...",
|
||||
"pad.impexp.confirmimport": "Ma vez enporzhiet ur restr e vo diverket ar pezh zo en teul a-vrema\u00f1. Ha sur oc'h e fell deoc'h mont betek penn ?",
|
||||
"pad.impexp.convertFailed": "N'eus ket bet gallet enporzhia\u00f1 ar restr. Ober gant ur furmad teul all pe eila\u00f1/pega\u00f1 gant an dorn.",
|
||||
"pad.impexp.uploadFailed": "C'hwitet eo bet an enporzhia\u00f1. Klaskit en-dro.",
|
||||
"pad.impexp.importfailed": "C'hwitet eo an enporzhiadenn",
|
||||
"pad.impexp.copypaste": "Eilit/pegit, mar plij",
|
||||
"pad.impexp.exportdisabled": "Diweredekaet eo ezporzhia\u00f1 d'ar furmad {{type}}. Kit e darempred gant merour ar reizhiad evit gouzout hiroc'h."
|
||||
}
|
120
sources/src/locales/ca.json
Normal file
120
sources/src/locales/ca.json
Normal file
|
@ -0,0 +1,120 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Pginer",
|
||||
"Pitort",
|
||||
"Toniher"
|
||||
]
|
||||
},
|
||||
"index.newPad": "Nou pad",
|
||||
"index.createOpenPad": "o crea/obre un pad amb el nom:",
|
||||
"pad.toolbar.bold.title": "Negreta (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "Cursiva (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "Subratllat (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "Ratllat",
|
||||
"pad.toolbar.ol.title": "Llista ordenada",
|
||||
"pad.toolbar.ul.title": "Llista sense ordenar",
|
||||
"pad.toolbar.indent.title": "Sagnat",
|
||||
"pad.toolbar.unindent.title": "Sagnat invers",
|
||||
"pad.toolbar.undo.title": "Desf\u00e9s (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "Ref\u00e9s (Ctrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "Neteja els colors d'autoria",
|
||||
"pad.toolbar.import_export.title": "Importa/exporta a partir de diferents formats de fitxer",
|
||||
"pad.toolbar.timeslider.title": "L\u00ednia temporal",
|
||||
"pad.toolbar.savedRevision.title": "Desa la revisi\u00f3",
|
||||
"pad.toolbar.settings.title": "Configuraci\u00f3",
|
||||
"pad.toolbar.embed.title": "Comparteix i incrusta aquest pad",
|
||||
"pad.toolbar.showusers.title": "Mostra els usuaris d\u2019aquest pad",
|
||||
"pad.colorpicker.save": "Desa",
|
||||
"pad.colorpicker.cancel": "Cancel\u00b7la",
|
||||
"pad.loading": "S'est\u00e0 carregant...",
|
||||
"pad.passwordRequired": "Us cal una contrasenya per a accedir a aquest pad",
|
||||
"pad.permissionDenied": "No teniu permisos per a accedir a aquest pad",
|
||||
"pad.wrongPassword": "La contrasenya \u00e9s incorrecta",
|
||||
"pad.settings.padSettings": "Par\u00e0metres del pad",
|
||||
"pad.settings.myView": "La meva vista",
|
||||
"pad.settings.stickychat": "Xateja sempre a la pantalla",
|
||||
"pad.settings.colorcheck": "Colors d'autoria",
|
||||
"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.normal": "Normal",
|
||||
"pad.settings.fontType.monospaced": "D'amplada fixa",
|
||||
"pad.settings.globalView": "Vista global",
|
||||
"pad.settings.language": "Llengua:",
|
||||
"pad.importExport.import_export": "Importaci\u00f3/exportaci\u00f3",
|
||||
"pad.importExport.import": "Puja qualsevol fitxer de text o document",
|
||||
"pad.importExport.importSuccessful": "Hi ha hagut \u00e8xit!",
|
||||
"pad.importExport.export": "Exporta el pad actual com a:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Text net",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "Nom\u00e9s podeu importar de text net o html. Per a opcions d'importaci\u00f3 m\u00e9s avan\u00e7ades \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003Einstal\u00b7leu l'Abiword\u003C/a\u003E.",
|
||||
"pad.modals.connected": "Connectat.",
|
||||
"pad.modals.reconnecting": "S'est\u00e0 tornant a connectar al vostre pad\u2026",
|
||||
"pad.modals.forcereconnect": "For\u00e7a tornar a connectar",
|
||||
"pad.modals.userdup": "Obert en una altra finestra",
|
||||
"pad.modals.userdup.explanation": "Aquest pad sembla que est\u00e0 obert en m\u00e9s d'una finestra de navegador de l'ordinador.",
|
||||
"pad.modals.userdup.advice": "Torneu a connectar-vos per a utilitzar aquesta finestra.",
|
||||
"pad.modals.unauth": "No autoritzat",
|
||||
"pad.modals.unauth.explanation": "Els vostres permisos han canviat mentre es visualitzava la p\u00e0gina. Proveu de reconnectar-vos.",
|
||||
"pad.modals.looping.explanation": "Hi ha problemes de comunicaci\u00f3 amb el servidor de sincronitzaci\u00f3.",
|
||||
"pad.modals.looping.cause": "Potser us heu connectat a trav\u00e9s d'un tallafocs o servidor intermediari incompatible.",
|
||||
"pad.modals.initsocketfail": "El servidor no \u00e9s accessible.",
|
||||
"pad.modals.initsocketfail.explanation": "No s'ha pogut connectar amb el servidor de sincronitzaci\u00f3.",
|
||||
"pad.modals.initsocketfail.cause": "Aix\u00f2 \u00e9s probablement a causa d'un problema amb el navegador o la connexi\u00f3 a Internet.",
|
||||
"pad.modals.slowcommit.explanation": "El servidor no respon.",
|
||||
"pad.modals.slowcommit.cause": "Aix\u00f2 podria ser a causa de problemes amb la connectivitat de la xarxa.",
|
||||
"pad.modals.deleted": "Suprimit.",
|
||||
"pad.modals.deleted.explanation": "S'ha suprimit el pad.",
|
||||
"pad.modals.disconnected": "Heu estat desconnectat.",
|
||||
"pad.modals.disconnected.explanation": "S'ha perdut la connexi\u00f3 amb el servidor",
|
||||
"pad.modals.disconnected.cause": "El servidor sembla que no est\u00e0 disponible. Notifiqueu-nos si continua passant.",
|
||||
"pad.share": "Comparteix el pad",
|
||||
"pad.share.readonly": "Nom\u00e9s de lectura",
|
||||
"pad.share.link": "Enlla\u00e7",
|
||||
"pad.share.emebdcode": "Incrusta l'URL",
|
||||
"pad.chat": "Xat",
|
||||
"pad.chat.title": "Obre el xat d'aquest pad.",
|
||||
"pad.chat.loadmessages": "Carrega m\u00e9s missatges",
|
||||
"timeslider.pageTitle": "L\u00ednia temporal \u2014 {{appTitle}}",
|
||||
"timeslider.toolbar.returnbutton": "Torna al pad",
|
||||
"timeslider.toolbar.authors": "Autors:",
|
||||
"timeslider.toolbar.authorsList": "No hi ha autors",
|
||||
"timeslider.toolbar.exportlink.title": "Exporta",
|
||||
"timeslider.exportCurrent": "Exporta la versi\u00f3 actual com a:",
|
||||
"timeslider.version": "Versi\u00f3 {{version}}",
|
||||
"timeslider.saved": "Desat {{month}} {{day}}, {{year}}",
|
||||
"timeslider.dateformat": "{{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "Gener",
|
||||
"timeslider.month.february": "Febrer",
|
||||
"timeslider.month.march": "Mar\u00e7",
|
||||
"timeslider.month.april": "Abril",
|
||||
"timeslider.month.may": "Maig",
|
||||
"timeslider.month.june": "Juny",
|
||||
"timeslider.month.july": "Juliol",
|
||||
"timeslider.month.august": "Agost",
|
||||
"timeslider.month.september": "Setembre",
|
||||
"timeslider.month.october": "Octubre",
|
||||
"timeslider.month.november": "Novembre",
|
||||
"timeslider.month.december": "Desembre",
|
||||
"timeslider.unnamedauthors": "{{num}} {[plural(num) one: autor, other: autors ]} sense nom",
|
||||
"pad.savedrevs.marked": "Aquesta revisi\u00f3 est\u00e0 marcada ara com a revisi\u00f3 desada",
|
||||
"pad.userlist.entername": "Introdu\u00efu el vostre nom",
|
||||
"pad.userlist.unnamed": "sense nom",
|
||||
"pad.userlist.guest": "Convidat",
|
||||
"pad.userlist.deny": "Refusa",
|
||||
"pad.userlist.approve": "Aprova",
|
||||
"pad.editbar.clearcolors": "Voleu netejar els colors d'autor del document sencer?",
|
||||
"pad.impexp.importbutton": "Importa ara",
|
||||
"pad.impexp.importing": "Important...",
|
||||
"pad.impexp.confirmimport": "En importar un fitxer se sobreescriur\u00e0 el text actual del pad. Esteu segur que voleu continuar?",
|
||||
"pad.impexp.convertFailed": "No \u00e9s possible d'importar aquest fitxer. Si us plau, podeu provar d'utilitzar un format diferent o copiar i enganxar manualment.",
|
||||
"pad.impexp.uploadFailed": "Ha fallat la c\u00e0rrega. Torneu-ho a provar",
|
||||
"pad.impexp.importfailed": "Ha fallat la importaci\u00f3",
|
||||
"pad.impexp.copypaste": "Si us plau, copieu i enganxeu",
|
||||
"pad.impexp.exportdisabled": "Est\u00e0 inhabilitada l'exportaci\u00f3 com a {{type}}. Contacteu amb el vostre administrador de sistemes per a m\u00e9s informaci\u00f3."
|
||||
}
|
121
sources/src/locales/cs.json
Normal file
121
sources/src/locales/cs.json
Normal file
|
@ -0,0 +1,121 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Jakubt",
|
||||
"Jezevec",
|
||||
"Leanes",
|
||||
"Quinn"
|
||||
]
|
||||
},
|
||||
"index.newPad": "Zalo\u017e nov\u00fd Pad",
|
||||
"index.createOpenPad": "nebo vytvo\u0159/otev\u0159i Pad s n\u00e1zvem:",
|
||||
"pad.toolbar.bold.title": "Tu\u010dn\u00e9 (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "Kurz\u00edva (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "Podtr\u017een\u00e9 (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "P\u0159eskrtnut\u00e9",
|
||||
"pad.toolbar.ol.title": "\u010c\u00edslovan\u00fd seznam",
|
||||
"pad.toolbar.ul.title": "Ne\u010d\u00edslovan\u00fd seznam",
|
||||
"pad.toolbar.indent.title": "Odsazen\u00ed",
|
||||
"pad.toolbar.unindent.title": "P\u0159edsazen\u00ed",
|
||||
"pad.toolbar.undo.title": "Zp\u011bt (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "Opakovat (Ctrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "Vymazat barvy autor\u016f",
|
||||
"pad.toolbar.import_export.title": "Importovat/Exportovat z/do jin\u00fdch form\u00e1t\u016f",
|
||||
"pad.toolbar.timeslider.title": "\u010casov\u00e1 osa",
|
||||
"pad.toolbar.savedRevision.title": "Ulo\u017eit revizi",
|
||||
"pad.toolbar.settings.title": "Nastaven\u00ed",
|
||||
"pad.toolbar.embed.title": "Sd\u00edlet a um\u00edstit tento Pad",
|
||||
"pad.toolbar.showusers.title": "Zobrazit u\u017eivatele u tohoto Padu",
|
||||
"pad.colorpicker.save": "Ulo\u017eit",
|
||||
"pad.colorpicker.cancel": "Zru\u0161it",
|
||||
"pad.loading": "Na\u010d\u00edt\u00e1n\u00ed...",
|
||||
"pad.passwordRequired": "Pro p\u0159\u00edstup k tomuto Padu je t\u0159eba zn\u00e1t heslo",
|
||||
"pad.permissionDenied": "Nem\u00e1te opr\u00e1vn\u011bn\u00ed pro p\u0159\u00edstup k tomuto Padu",
|
||||
"pad.wrongPassword": "Nespr\u00e1vn\u00e9 heslo",
|
||||
"pad.settings.padSettings": "Nastaven\u00ed Padu",
|
||||
"pad.settings.myView": "Vlastn\u00ed pohled",
|
||||
"pad.settings.stickychat": "Chat v\u017edy na obrazovce",
|
||||
"pad.settings.colorcheck": "Barvy autor\u016f",
|
||||
"pad.settings.linenocheck": "\u010c\u00edsla \u0159\u00e1dk\u016f",
|
||||
"pad.settings.rtlcheck": "\u010c\u00edst obsah zprava doleva?",
|
||||
"pad.settings.fontType": "Typ p\u00edsma:",
|
||||
"pad.settings.fontType.normal": "Norm\u00e1ln\u00ed",
|
||||
"pad.settings.fontType.monospaced": "Nepropor\u010dn\u00ed",
|
||||
"pad.settings.globalView": "Glob\u00e1ln\u00ed pohled",
|
||||
"pad.settings.language": "Jazyk:",
|
||||
"pad.importExport.import_export": "Import/Export",
|
||||
"pad.importExport.import": "Nahr\u00e1t libovoln\u00fd textov\u00fd soubor nebo dokument",
|
||||
"pad.importExport.importSuccessful": "\u00dasp\u011bch!",
|
||||
"pad.importExport.export": "Exportovat st\u00e1vaj\u00edc\u00ed Pad jako:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Prost\u00fd text",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "Importovat m\u016f\u017ee\u0161 pouze prost\u00fd text nebo HTML form\u00e1tov\u00e1n\u00ed. Pro pokro\u010dilej\u0161\u00ed funkce importu, pros\u00edm, nainstaluj \u201e\u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003Eabiword\u003C/a\u003E\u201c.",
|
||||
"pad.modals.connected": "P\u0159ipojeno.",
|
||||
"pad.modals.reconnecting": "Znovup\u0159ipojov\u00e1n\u00ed k Padu\u2026",
|
||||
"pad.modals.forcereconnect": "Vynutit znovup\u0159ipojen\u00ed",
|
||||
"pad.modals.userdup": "Otev\u0159eno v jin\u00e9m okn\u011b",
|
||||
"pad.modals.userdup.explanation": "Zd\u00e1 se, \u017ee tento Pad je na tomto po\u010d\u00edta\u010di otev\u0159en ve v\u00edce ne\u017e jednom okn\u011b.",
|
||||
"pad.modals.userdup.advice": "Pro pou\u017eit\u00ed tohoto okna je t\u0159eba se znovu p\u0159ipojit.",
|
||||
"pad.modals.unauth": "Nem\u00e1te autorizaci",
|
||||
"pad.modals.unauth.explanation": "Va\u0161e opr\u00e1vn\u011bn\u00ed se zm\u011bnila, zat\u00edmco jste si prohl\u00ed\u017eel/a toto okno. Zkuste se znovu p\u0159ipojit.",
|
||||
"pad.modals.looping.explanation": "Nastaly probl\u00e9my p\u0159i komunikaci se synchroniza\u010dn\u00edm serverem.",
|
||||
"pad.modals.looping.cause": "Mo\u017en\u00e1 jste p\u0159ipojeni p\u0159es nekompaktn\u00ed firewall nebo proxy.",
|
||||
"pad.modals.initsocketfail": "Server je nedostupn\u00fd.",
|
||||
"pad.modals.initsocketfail.explanation": "Nepoda\u0159ilo se p\u0159ipojit k synchroniza\u010dn\u00edmu serveru.",
|
||||
"pad.modals.initsocketfail.cause": "Toto je pravd\u011bpodobn\u011b zp\u016fsobeno va\u0161\u00edm prohl\u00ed\u017ee\u010dem nebo p\u0159ipojen\u00edm k internetu.",
|
||||
"pad.modals.slowcommit.explanation": "Server neodpov\u00edd\u00e1.",
|
||||
"pad.modals.slowcommit.cause": "M\u016f\u017ee to b\u00fdt zp\u016fsobeno probl\u00e9my s internetov\u00fdm p\u0159ipojen\u00edm.",
|
||||
"pad.modals.deleted": "Odstran\u011bno.",
|
||||
"pad.modals.deleted.explanation": "Tento Pad byl odebr\u00e1n.",
|
||||
"pad.modals.disconnected": "Byl jste odpojen.",
|
||||
"pad.modals.disconnected.explanation": "P\u0159ipojen\u00ed k serveru bylo p\u0159eru\u0161eno",
|
||||
"pad.modals.disconnected.cause": "Server m\u016f\u017ee b\u00fdt nedostupn\u00fd. Pros\u00edme o upozorn\u011bn\u00ed, pokud by tento probl\u00e9m trval del\u0161\u00ed dobu.",
|
||||
"pad.share": "Sd\u00edlet tento Pad",
|
||||
"pad.share.readonly": "Jen pro \u010dten\u00ed",
|
||||
"pad.share.link": "Odkaz",
|
||||
"pad.share.emebdcode": "Vlo\u017eit URL",
|
||||
"pad.chat": "Chat",
|
||||
"pad.chat.title": "Otev\u0159\u00edt chat tohoto Padu.",
|
||||
"pad.chat.loadmessages": "Na\u010d\u00edst v\u00edce zpr\u00e1v",
|
||||
"timeslider.pageTitle": "\u010casov\u00e1 osa {{appTitle}}",
|
||||
"timeslider.toolbar.returnbutton": "N\u00e1vrat do Padu",
|
||||
"timeslider.toolbar.authors": "Auto\u0159i:",
|
||||
"timeslider.toolbar.authorsList": "Bez autor\u016f",
|
||||
"timeslider.toolbar.exportlink.title": "Exportovat",
|
||||
"timeslider.exportCurrent": "Exportovat nyn\u011bj\u0161\u00ed verzi jako:",
|
||||
"timeslider.version": "Verze {{version}}",
|
||||
"timeslider.saved": "Ulo\u017eeno {{day}} {{month}} {{year}}",
|
||||
"timeslider.dateformat": "{{day}} {{month}} {{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "leden",
|
||||
"timeslider.month.february": "\u00fanor",
|
||||
"timeslider.month.march": "b\u0159ezen",
|
||||
"timeslider.month.april": "duben",
|
||||
"timeslider.month.may": "kv\u011bten",
|
||||
"timeslider.month.june": "\u010derven",
|
||||
"timeslider.month.july": "\u010dervenec",
|
||||
"timeslider.month.august": "srpen",
|
||||
"timeslider.month.september": "z\u00e1\u0159\u00ed",
|
||||
"timeslider.month.october": "\u0159\u00edjen",
|
||||
"timeslider.month.november": "listopad",
|
||||
"timeslider.month.december": "prosinec",
|
||||
"timeslider.unnamedauthors": "{{num}} {[ plural(num) one: nejmenovan\u00fd Autor, few: nejmenovan\u00ed Auto\u0159i, other: nejmenovan\u00fdch Autor\u016f ]}",
|
||||
"pad.savedrevs.marked": "Tato revize je nyn\u00ed ozna\u010dena jako ulo\u017een\u00e1",
|
||||
"pad.userlist.entername": "Zadejte sv\u00e9 jm\u00e9no",
|
||||
"pad.userlist.unnamed": "nejmenovan\u00fd",
|
||||
"pad.userlist.guest": "Host",
|
||||
"pad.userlist.deny": "Zak\u00e1zat",
|
||||
"pad.userlist.approve": "Povolit",
|
||||
"pad.editbar.clearcolors": "Odstranit barvy autor\u016f z cel\u00e9ho dokumentu?",
|
||||
"pad.impexp.importbutton": "Importovat",
|
||||
"pad.impexp.importing": "Importov\u00e1n\u00ed\u2026",
|
||||
"pad.impexp.confirmimport": "Import souboru p\u0159ep\u00ed\u0161e aktu\u00e1ln\u00ed text v padu. Opravdu chcete tuto akci prov\u00e9st?",
|
||||
"pad.impexp.convertFailed": "Tento soubor nelze importovat. Pou\u017eijte pros\u00edm jin\u00fd form\u00e1t dokumentu nebo nakop\u00edrujte text ru\u010dn\u011b",
|
||||
"pad.impexp.uploadFailed": "Nahr\u00e1v\u00e1n\u00ed selhalo, zkuste to znovu",
|
||||
"pad.impexp.importfailed": "Import selhal",
|
||||
"pad.impexp.copypaste": "Vlo\u017ete pros\u00edm kopii",
|
||||
"pad.impexp.exportdisabled": "Export do form\u00e1tu {{type}} je zak\u00e1z\u00e1n. Kontaktujte sv\u00e9ho administr\u00e1tora pro zji\u0161t\u011bn\u00ed detail\u016f."
|
||||
}
|
124
sources/src/locales/da.json
Normal file
124
sources/src/locales/da.json
Normal file
|
@ -0,0 +1,124 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": {
|
||||
"0": "Christian List",
|
||||
"1": "Peter Alberti",
|
||||
"3": "Steenth"
|
||||
}
|
||||
},
|
||||
"index.newPad": "Ny Pad",
|
||||
"index.createOpenPad": "eller opret/\u00e5bn en Pad med navnet:",
|
||||
"pad.toolbar.bold.title": "Fed (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "Kursiv (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "Understregning (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "Gennemstregning",
|
||||
"pad.toolbar.ol.title": "Sorteret liste",
|
||||
"pad.toolbar.ul.title": "Usorteret liste",
|
||||
"pad.toolbar.indent.title": "Indrykning",
|
||||
"pad.toolbar.unindent.title": "Ryk ud",
|
||||
"pad.toolbar.undo.title": "Fortryd (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "Annuller Fortryd (Ctrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "Fjern farver for forfatterskab",
|
||||
"pad.toolbar.import_export.title": "Import/eksport fra/til forskellige filformater",
|
||||
"pad.toolbar.timeslider.title": "Timeslider",
|
||||
"pad.toolbar.savedRevision.title": "Gem Revision",
|
||||
"pad.toolbar.settings.title": "Indstillinger",
|
||||
"pad.toolbar.embed.title": "Del og integrer denne pad",
|
||||
"pad.toolbar.showusers.title": "Vis brugere p\u00e5 denne pad",
|
||||
"pad.colorpicker.save": "Gem",
|
||||
"pad.colorpicker.cancel": "Afbryd",
|
||||
"pad.loading": "Indl\u00e6ser ...",
|
||||
"pad.passwordRequired": "Du skal bruge en adgangskode for at f\u00e5 adgang til denne pad",
|
||||
"pad.permissionDenied": "Du har ikke tilladelse til at f\u00e5 adgang til denne pad.",
|
||||
"pad.wrongPassword": "Din adgangskode er forkert",
|
||||
"pad.settings.padSettings": "Pad indstillinger",
|
||||
"pad.settings.myView": "Min visning",
|
||||
"pad.settings.stickychat": "Chat altid p\u00e5 sk\u00e6rmen",
|
||||
"pad.settings.colorcheck": "Forfatterskabsfarver",
|
||||
"pad.settings.linenocheck": "Linjenumre",
|
||||
"pad.settings.rtlcheck": "L\u00e6se indhold fra h\u00f8jre mod venstre?",
|
||||
"pad.settings.fontType": "Skrifttype:",
|
||||
"pad.settings.fontType.normal": "Normal",
|
||||
"pad.settings.fontType.monospaced": "Fastbredde",
|
||||
"pad.settings.globalView": "Global visning",
|
||||
"pad.settings.language": "Sprog:",
|
||||
"pad.importExport.import_export": "Import/Eksport",
|
||||
"pad.importExport.import": "Uploade en tekstfil eller dokument",
|
||||
"pad.importExport.importSuccessful": "Vellykket!",
|
||||
"pad.importExport.export": "Eksporter aktuelle pad som:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Almindelig tekst",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "Du kan kun importere fra almindelig tekst eller HTML-formater. For mere avancerede importfunktioner, \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003Einstaller venligst abiword\u003C/a\u003E.",
|
||||
"pad.modals.connected": "Forbundet.",
|
||||
"pad.modals.reconnecting": "Genopretter forbindelsen til din pad...",
|
||||
"pad.modals.forcereconnect": "Gennemtving genoprettelse af forbindelsen",
|
||||
"pad.modals.userdup": "\u00c5bnet i et andet vindue",
|
||||
"pad.modals.userdup.explanation": "Denne pad synes at v\u00e6re \u00e5bnet i mere end \u00e9t browservindue p\u00e5 denne computer.",
|
||||
"pad.modals.userdup.advice": "Tilslut igen for at bruge dette vindue i stedet.",
|
||||
"pad.modals.unauth": "Ikke tilladt",
|
||||
"pad.modals.unauth.explanation": "Dine rettigheder er \u00e6ndret mens du ser p\u00e5 denne side. Pr\u00f8v at oprette forbindelsen igen.",
|
||||
"pad.modals.looping.explanation": "Der er kommunikationsproblemer med synkroniseringsserveren.",
|
||||
"pad.modals.looping.cause": "M\u00e5ske tilsluttede du via en inkompatibel firewall eller proxy.",
|
||||
"pad.modals.initsocketfail": "Serveren er ikke tilg\u00e6ngelig.",
|
||||
"pad.modals.initsocketfail.explanation": "Kunne ikke oprette forbindelse til synkroniseringsserveren.",
|
||||
"pad.modals.initsocketfail.cause": "Det skyldes sandsynligvis et problem med din browser eller din internetforbindelse.",
|
||||
"pad.modals.slowcommit.explanation": "Serveren svarer ikke.",
|
||||
"pad.modals.slowcommit.cause": "Det kan skyldes problemer med netv\u00e6rksforbindelsen.",
|
||||
"pad.modals.badChangeset.explanation": "En redigering, du har foretaget, blev klassificeret ulovlig af synkroniseringsserveren.",
|
||||
"pad.modals.badChangeset.cause": "Dette kan skyldes en forkert konfiguration af serveren eller en anden uventet adf\u00e6rd. Kontakt venligst service administratoren, hvis du f\u00f8ler, at dette er en fejl. Pr\u00f8v at oprette forbindelsen igen for at forts\u00e6tte med at redigere.",
|
||||
"pad.modals.corruptPad.explanation": "Den pad du pr\u00f8ver at f\u00e5 adgang til er beskadiget.",
|
||||
"pad.modals.corruptPad.cause": "Dette kan skyldes en forkert konfiguration af serveren eller en anden uventet adf\u00e6rd. Kontakt venligst service administratoren.",
|
||||
"pad.modals.deleted": "Slettet.",
|
||||
"pad.modals.deleted.explanation": "Denne pad er blevet fjernet.",
|
||||
"pad.modals.disconnected": "Du har f\u00e5et afbrudt forbindelsen.",
|
||||
"pad.modals.disconnected.explanation": "Forbindelsen til serveren blev afbrudt",
|
||||
"pad.modals.disconnected.cause": "Serveren er muligvis ikke tilg\u00e6ngelig. Informer service administratoren hvis dette forts\u00e6tter med at ske.",
|
||||
"pad.share": "Del denne pad",
|
||||
"pad.share.readonly": "Skrivebeskyttet",
|
||||
"pad.share.link": "Link",
|
||||
"pad.share.emebdcode": "Integrerings URL",
|
||||
"pad.chat": "Chat",
|
||||
"pad.chat.title": "\u00c5ben chat for denne pad.",
|
||||
"pad.chat.loadmessages": "Indl\u00e6s flere meddelelser",
|
||||
"timeslider.pageTitle": "{{appTitle}} Timeslider",
|
||||
"timeslider.toolbar.returnbutton": "Tilbage til pad",
|
||||
"timeslider.toolbar.authors": "Forfattere:",
|
||||
"timeslider.toolbar.authorsList": "Ingen forfattere",
|
||||
"timeslider.toolbar.exportlink.title": "Eksport\u00e9r",
|
||||
"timeslider.exportCurrent": "Eksporter aktuelle version som:",
|
||||
"timeslider.version": "Version {{version}}",
|
||||
"timeslider.saved": "Gemt den {{day}}.{{month}} {{year}}",
|
||||
"timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "januar",
|
||||
"timeslider.month.february": "februar",
|
||||
"timeslider.month.march": "marts",
|
||||
"timeslider.month.april": "april",
|
||||
"timeslider.month.may": "maj",
|
||||
"timeslider.month.june": "juni",
|
||||
"timeslider.month.july": "juli",
|
||||
"timeslider.month.august": "august",
|
||||
"timeslider.month.september": "september",
|
||||
"timeslider.month.october": "oktober",
|
||||
"timeslider.month.november": "november",
|
||||
"timeslider.month.december": "december",
|
||||
"timeslider.unnamedauthors": "{{num}} {[plural(num) one: unavngiven forfatter, other: unavngivne forfattere]}",
|
||||
"pad.savedrevs.marked": "Denne revision er nu markeret som en gemt revision",
|
||||
"pad.userlist.entername": "Indtast dit navn",
|
||||
"pad.userlist.unnamed": "ikke-navngivet",
|
||||
"pad.userlist.guest": "G\u00e6st",
|
||||
"pad.userlist.deny": "N\u00e6gt",
|
||||
"pad.userlist.approve": "Godkend",
|
||||
"pad.editbar.clearcolors": "Fjern farver for ophavsmand i hele dokumentet?",
|
||||
"pad.impexp.importbutton": "Importer nu",
|
||||
"pad.impexp.importing": "Importerer...",
|
||||
"pad.impexp.confirmimport": "At importere en fil, vil overskrives den aktuelle pad tekst. Er du sikker p\u00e5 du vil forts\u00e6tte?",
|
||||
"pad.impexp.convertFailed": "Vi var ikke i stand til at importere denne fil. Brug et andet dokument-format eller kopier og s\u00e6t ind manuelt",
|
||||
"pad.impexp.uploadFailed": "Upload mislykkedes, pr\u00f8v igen",
|
||||
"pad.impexp.importfailed": "Importen mislykkedes",
|
||||
"pad.impexp.copypaste": "Venligst kopier og s\u00e6t ind",
|
||||
"pad.impexp.exportdisabled": "Eksportere i {{type}} format er deaktiveret. Kontakt din systemadministrator for mere information."
|
||||
}
|
125
sources/src/locales/de.json
Normal file
125
sources/src/locales/de.json
Normal file
|
@ -0,0 +1,125 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": {
|
||||
"0": "Metalhead64",
|
||||
"1": "Mklehr",
|
||||
"2": "Nipsky",
|
||||
"4": "Wikinaut"
|
||||
}
|
||||
},
|
||||
"index.newPad": "Neues Pad",
|
||||
"index.createOpenPad": "Pad mit folgendem Namen \u00f6ffnen:",
|
||||
"pad.toolbar.bold.title": "Fett (Strg-B)",
|
||||
"pad.toolbar.italic.title": "Kursiv (Strg-I)",
|
||||
"pad.toolbar.underline.title": "Unterstrichen (Strg-U)",
|
||||
"pad.toolbar.strikethrough.title": "Durchgestrichen",
|
||||
"pad.toolbar.ol.title": "Nummerierte Liste",
|
||||
"pad.toolbar.ul.title": "Ungeordnete Liste",
|
||||
"pad.toolbar.indent.title": "Einr\u00fccken",
|
||||
"pad.toolbar.unindent.title": "Ausr\u00fccken",
|
||||
"pad.toolbar.undo.title": "R\u00fcckg\u00e4ngig (Strg-Z)",
|
||||
"pad.toolbar.redo.title": "Wiederholen (Strg-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "Autorenfarben zur\u00fccksetzen",
|
||||
"pad.toolbar.import_export.title": "Import/Export in verschiedenen Dateiformaten",
|
||||
"pad.toolbar.timeslider.title": "Pad-Versionsgeschichte anzeigen",
|
||||
"pad.toolbar.savedRevision.title": "Version speichern",
|
||||
"pad.toolbar.settings.title": "Einstellungen",
|
||||
"pad.toolbar.embed.title": "Dieses Pad teilen und einbetten",
|
||||
"pad.toolbar.showusers.title": "Aktuell verbundene Benutzer anzeigen",
|
||||
"pad.colorpicker.save": "Speichern",
|
||||
"pad.colorpicker.cancel": "Abbrechen",
|
||||
"pad.loading": "Laden \u2026",
|
||||
"pad.passwordRequired": "Sie ben\u00f6tigen ein Passwort, um auf dieses Pad zuzugreifen",
|
||||
"pad.permissionDenied": "Sie haben keine Berechtigung, um auf dieses Pad zuzugreifen",
|
||||
"pad.wrongPassword": "Ihr Passwort war falsch",
|
||||
"pad.settings.padSettings": "Pad Einstellungen",
|
||||
"pad.settings.myView": "Eigene Ansicht",
|
||||
"pad.settings.stickychat": "Chat immer anzeigen",
|
||||
"pad.settings.colorcheck": "Autorenfarben anzeigen",
|
||||
"pad.settings.linenocheck": "Zeilennummern",
|
||||
"pad.settings.rtlcheck": "Inhalt von rechts nach links lesen?",
|
||||
"pad.settings.fontType": "Schriftart:",
|
||||
"pad.settings.fontType.normal": "Normal",
|
||||
"pad.settings.fontType.monospaced": "Monospace",
|
||||
"pad.settings.globalView": "Gemeinsame Ansicht",
|
||||
"pad.settings.language": "Sprache:",
|
||||
"pad.importExport.import_export": "Import/Export",
|
||||
"pad.importExport.import": "Datei oder Dokument hochladen",
|
||||
"pad.importExport.importSuccessful": "Erfolgreich!",
|
||||
"pad.importExport.export": "Aktuelles Pad exportieren als:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Textdatei",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "Sie k\u00f6nnen nur aus Klartext oder HTML-Formaten importieren. F\u00fcr mehr erweiterte Importfunktionen \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003Einstallieren Sie bitte abiword\u003C/a\u003E.",
|
||||
"pad.modals.connected": "Verbunden.",
|
||||
"pad.modals.reconnecting": "Wiederherstellen der Verbindung \u2026",
|
||||
"pad.modals.forcereconnect": "Erneut Verbinden",
|
||||
"pad.modals.userdup": "In einem anderen Fenster ge\u00f6ffnet",
|
||||
"pad.modals.userdup.explanation": "Dieses Pad scheint in mehr als einem Browser-Fenster auf diesem Computer ge\u00f6ffnet zu sein.",
|
||||
"pad.modals.userdup.advice": "Um dieses Fenster zu benutzen, verbinden Sie bitte erneut.",
|
||||
"pad.modals.unauth": "Nicht authorisiert.",
|
||||
"pad.modals.unauth.explanation": "Ihre Zugriffsberechtigung f\u00fcr dieses Pad hat sich zwischenzeitlich ge\u00e4ndert. Bitte versuchen Sie, das Pad erneut aufzurufen.",
|
||||
"pad.modals.looping.explanation": "Es gibt Probleme bei der Kommunikation mit dem Pad-Server.",
|
||||
"pad.modals.looping.cause": "M\u00f6glicherweise sind Sie durch eine inkompatible Firewall oder \u00fcber einen inkompatiblen Proxy mit dem Padserver verbunden.",
|
||||
"pad.modals.initsocketfail": "Pad-Server nicht erreichbar.",
|
||||
"pad.modals.initsocketfail.explanation": "Es konnte keine Verbindung zum Pad-Server hergestellt werden.",
|
||||
"pad.modals.initsocketfail.cause": "Dies k\u00f6nnte an Ihrem Browser oder Ihrer Internet-Verbindung liegen.",
|
||||
"pad.modals.slowcommit.explanation": "Der Pad-Server reagiert nicht.",
|
||||
"pad.modals.slowcommit.cause": "Dies k\u00f6nnte ein Netzwerkverbindungsproblem sein oder eine momentane \u00dcberlastung des Pad-Servers.",
|
||||
"pad.modals.badChangeset.explanation": "Eine durchgef\u00fchrte Bearbeitung wurde von dem Synchronisierungsserver als ung\u00fcltig klassifiziert.",
|
||||
"pad.modals.badChangeset.cause": "Dies k\u00f6nnte aufgrund einer falschen Serverkonfiguration oder eines anderen unerwarteten Verhaltens passiert sein. Bitte kontaktiere den Diensteadministrator, wenn du glaubst, dass dies ein Fehler ist. Versuche eine erneute Verbindung, um mit dem Bearbeiten fortzufahren.",
|
||||
"pad.modals.corruptPad.explanation": "Das Pad, auf das du zugreifen willst, ist besch\u00e4digt.",
|
||||
"pad.modals.corruptPad.cause": "Dies k\u00f6nnte aufgrund einer falschen Serverkonfiguration oder eines anderen unerwarteten Verhaltens passiert sein. Bitte kontaktiere den Diensteadministrator.",
|
||||
"pad.modals.deleted": "Gel\u00f6scht.",
|
||||
"pad.modals.deleted.explanation": "Dieses Pad wurde gel\u00f6scht.",
|
||||
"pad.modals.disconnected": "Verbindung unterbrochen.",
|
||||
"pad.modals.disconnected.explanation": "Die Verbindung zum Pad-Server wurde unterbrochen.",
|
||||
"pad.modals.disconnected.cause": "M\u00f6glicherweise ist der Pad-Server nicht erreichbar. Bitte benachrichtigen Sie den Diensteadministrator, falls dies weiterhin passiert.",
|
||||
"pad.share": "Dieses Pad anderen mitteilen",
|
||||
"pad.share.readonly": "Eingeschr\u00e4nkter Nur-Lese-Zugriff",
|
||||
"pad.share.link": "Link",
|
||||
"pad.share.emebdcode": "In Webseite einbetten",
|
||||
"pad.chat": "Chat",
|
||||
"pad.chat.title": "Den Chat dieses Pads \u00f6ffnen",
|
||||
"pad.chat.loadmessages": "Weitere Nachrichten laden",
|
||||
"timeslider.pageTitle": "{{appTitle}} Pad-Versionsgeschichte",
|
||||
"timeslider.toolbar.returnbutton": "Zur\u00fcck zum Pad",
|
||||
"timeslider.toolbar.authors": "Autoren:",
|
||||
"timeslider.toolbar.authorsList": "keine Autoren",
|
||||
"timeslider.toolbar.exportlink.title": "Export",
|
||||
"timeslider.exportCurrent": "Exportiere diese Version als:",
|
||||
"timeslider.version": "Version {{version}}",
|
||||
"timeslider.saved": "Gespeichert am {{day}}.{{month}}.{{year}}",
|
||||
"timeslider.dateformat": "{{day}}.{{month}}.{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "Januar",
|
||||
"timeslider.month.february": "Februar",
|
||||
"timeslider.month.march": "M\u00e4rz",
|
||||
"timeslider.month.april": "April",
|
||||
"timeslider.month.may": "Mai",
|
||||
"timeslider.month.june": "Juni",
|
||||
"timeslider.month.july": "Juli",
|
||||
"timeslider.month.august": "August",
|
||||
"timeslider.month.september": "September",
|
||||
"timeslider.month.october": "Oktober",
|
||||
"timeslider.month.november": "November",
|
||||
"timeslider.month.december": "Dezember",
|
||||
"timeslider.unnamedauthors": "{{num}} {[plural(num) one: unbenannter Autor, other: unbenannte Autoren ]}",
|
||||
"pad.savedrevs.marked": "Diese Version wurde jetzt als gespeicherte Version gekennzeichnet",
|
||||
"pad.userlist.entername": "Geben Sie Ihren Namen ein",
|
||||
"pad.userlist.unnamed": "unbenannt",
|
||||
"pad.userlist.guest": "Gast",
|
||||
"pad.userlist.deny": "Verweigern",
|
||||
"pad.userlist.approve": "Genehmigen",
|
||||
"pad.editbar.clearcolors": "Autorenfarben im gesamten Dokument zur\u00fccksetzen?",
|
||||
"pad.impexp.importbutton": "Jetzt importieren",
|
||||
"pad.impexp.importing": "Importiere \u2026",
|
||||
"pad.impexp.confirmimport": "Das Importieren einer Datei \u00fcberschreibt den aktuellen Text des Pads. Wollen Sie wirklich fortfahren?",
|
||||
"pad.impexp.convertFailed": "Wir k\u00f6nnen diese Datei nicht importieren. Bitte verwenden Sie ein anderes Dokumentenformat oder \u00fcbertragen Sie den Text manuell.",
|
||||
"pad.impexp.uploadFailed": "Der Upload ist fehlgeschlagen. Bitte versuchen Sie es erneut.",
|
||||
"pad.impexp.importfailed": "Import fehlgeschlagen",
|
||||
"pad.impexp.copypaste": "Bitte kopieren und einf\u00fcgen",
|
||||
"pad.impexp.exportdisabled": "Der Export im {{type}}-Format ist deaktiviert. F\u00fcr Einzelheiten kontaktieren Sie bitte Ihren Systemadministrator."
|
||||
}
|
74
sources/src/locales/diq.json
Normal file
74
sources/src/locales/diq.json
Normal file
|
@ -0,0 +1,74 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Erdemaslancan",
|
||||
"Mirzali"
|
||||
]
|
||||
},
|
||||
"index.newPad": "Pedo newe",
|
||||
"pad.toolbar.bold.title": "Qal\u0131n (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "Nam\u0131te (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "B\u0131nxet\u0131n (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "Serxet\u0131n",
|
||||
"pad.toolbar.ol.title": "Lista r\u00eazkerdiye",
|
||||
"pad.toolbar.ul.title": "Lista r\u00eazn\u00eakerdiye",
|
||||
"pad.toolbar.indent.title": "Ser\u00ea r\u00eaze",
|
||||
"pad.toolbar.unindent.title": "V\u0131cente",
|
||||
"pad.toolbar.undo.title": "Meke (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "F\u0131na b\u0131ke (Ctrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "Reng\u00ea Nu\u015fto\u011fi\u00ea Ar\u0131stey",
|
||||
"pad.toolbar.timeslider.title": "\u011e\u0131zag\u00ea zemani",
|
||||
"pad.toolbar.savedRevision.title": "Rewizyon\u00ea Qeydbiyayey",
|
||||
"pad.toolbar.settings.title": "Sazkerd\u0131\u015fi",
|
||||
"pad.toolbar.embed.title": "Na ped degusnayiya",
|
||||
"pad.colorpicker.save": "Qeyd ke",
|
||||
"pad.colorpicker.cancel": "B\u0131texelne",
|
||||
"pad.loading": "Bar beno...",
|
||||
"pad.settings.padSettings": "Sazkerd\u0131\u015f\u00ea Pedi",
|
||||
"pad.settings.myView": "Asay\u0131\u015f\u00ea m\u0131",
|
||||
"pad.settings.colorcheck": "Reng\u00ea nu\u015ftekariye",
|
||||
"pad.settings.linenocheck": "N\u0131mrey\u00ea xeter",
|
||||
"pad.settings.fontType": "Babeta nu\u015fti:",
|
||||
"pad.settings.fontType.normal": "Normal",
|
||||
"pad.settings.fontType.monospaced": "Yewca",
|
||||
"pad.settings.globalView": "Asay\u0131\u015fo Global",
|
||||
"pad.settings.language": "Z\u0131wan:",
|
||||
"pad.importExport.import_export": "Zereday\u0131\u015f/Teberday\u0131\u015f",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Duz metin",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.modals.connected": "G\u0131rediya.",
|
||||
"pad.modals.unauth": "Selahiyetdar niyo",
|
||||
"pad.modals.initsocketfail": "N\u00earesney\u00eano ciyageyro\u011fi.",
|
||||
"pad.modals.deleted": "Esteriya.",
|
||||
"pad.modals.deleted.explanation": "Ena ped wedariye",
|
||||
"pad.share": "Na ped v\u0131la ke",
|
||||
"pad.share.readonly": "Tenya b\u0131wane",
|
||||
"pad.share.link": "G\u0131re",
|
||||
"pad.share.emebdcode": "Degusnaye URL",
|
||||
"pad.chat": "M\u0131hebet",
|
||||
"pad.chat.title": "Qand\u00ea ena ped m\u0131hebet ake.",
|
||||
"timeslider.pageTitle": "\u011e\u0131zag\u00ea zemani {{appTitle}}",
|
||||
"timeslider.toolbar.returnbutton": "Peyser \u015fo ped",
|
||||
"timeslider.toolbar.authors": "Nu\u015fto\u011fi:",
|
||||
"timeslider.toolbar.authorsList": "Nu\u015fto\u011fi \u00e7\u0131niy\u00ea",
|
||||
"timeslider.exportCurrent": "Versiyon\u00ea enewki teber de:",
|
||||
"timeslider.version": "Versiyon\u00ea {{version}}",
|
||||
"timeslider.saved": "{{day}} {{month}}, {{year}} de biyo qeyd",
|
||||
"timeslider.dateformat": "{{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "\u00c7ele",
|
||||
"timeslider.month.february": "\u015e\u0131bate",
|
||||
"timeslider.month.march": "Adar",
|
||||
"timeslider.month.april": "Nisane",
|
||||
"timeslider.month.may": "Gulane",
|
||||
"timeslider.month.june": "Heziran",
|
||||
"timeslider.month.july": "Temuze",
|
||||
"timeslider.month.august": "Tebaxe",
|
||||
"timeslider.month.september": "Ke\u015fkelun",
|
||||
"timeslider.month.october": "T\u0131\u015frino Ver\u00ean",
|
||||
"timeslider.month.november": "T\u0131\u015frino Pey\u00ean",
|
||||
"timeslider.month.december": "Kanun"
|
||||
}
|
122
sources/src/locales/el.json
Normal file
122
sources/src/locales/el.json
Normal file
|
@ -0,0 +1,122 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Evropi",
|
||||
"Geraki",
|
||||
"Glavkos",
|
||||
"Monopatis",
|
||||
"Protnet"
|
||||
]
|
||||
},
|
||||
"index.newPad": "\u039d\u03ad\u03bf Pad",
|
||||
"index.createOpenPad": "\u03ae \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1/\u03ac\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1 \u03b5\u03bd\u03cc\u03c2 Pad \u03bc\u03b5 \u03cc\u03bd\u03bf\u03bc\u03b1:",
|
||||
"pad.toolbar.bold.title": "\u0388\u03bd\u03c4\u03bf\u03bd\u03b1 (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "\u03a0\u03bb\u03ac\u03b3\u03b9\u03b1 (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "\u03a5\u03c0\u03bf\u03b3\u03c1\u03ac\u03bc\u03bc\u03b9\u03c3\u03b7 (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "\u0394\u03b9\u03b1\u03ba\u03c1\u03b9\u03c4\u03ae \u03b4\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae",
|
||||
"pad.toolbar.ol.title": "\u03a4\u03b1\u03be\u03b9\u03bd\u03bf\u03bc\u03b7\u03bc\u03ad\u03bd\u03b7 \u03bb\u03af\u03c3\u03c4\u03b1",
|
||||
"pad.toolbar.ul.title": "\u039b\u03af\u03c3\u03c4\u03b1 \u03c7\u03c9\u03c1\u03af\u03c2 \u03c3\u03b5\u03b9\u03c1\u03ac",
|
||||
"pad.toolbar.indent.title": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03b5\u03c3\u03bf\u03c7\u03ae\u03c2",
|
||||
"pad.toolbar.unindent.title": "\u0391\u03c6\u03b1\u03af\u03c1\u03b5\u03c3\u03b7 \u03b5\u03c3\u03bf\u03c7\u03ae\u03c2",
|
||||
"pad.toolbar.undo.title": "\u0391\u03bd\u03b1\u03af\u03c1\u03b5\u03c3\u03b7 (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "\u0395\u03c0\u03b1\u03bd\u03ac\u03bb\u03b7\u03c8\u03b7 (Ctrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "\u039a\u03b1\u03b8\u03b1\u03c1\u03b9\u03c3\u03bc\u03cc\u03c2 \u03a7\u03c1\u03c9\u03bc\u03ac\u03c4\u03c9\u03bd \u03a3\u03c5\u03bd\u03c4\u03b1\u03ba\u03c4\u03ce\u03bd",
|
||||
"pad.toolbar.import_export.title": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae/\u0395\u03be\u03b1\u03b3\u03c9\u03b3\u03ae \u03b1\u03c0\u03cc/\u03c3\u03b5 \u03b4\u03b9\u03b1\u03c6\u03bf\u03c1\u03b5\u03c4\u03b9\u03ba\u03bf\u03cd\u03c2 \u03c4\u03cd\u03c0\u03bf\u03c5\u03c2 \u03b1\u03c1\u03c7\u03b5\u03af\u03c9\u03bd",
|
||||
"pad.toolbar.timeslider.title": "\u03a7\u03c1\u03bf\u03bd\u03bf\u03b4\u03b9\u03ac\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1",
|
||||
"pad.toolbar.savedRevision.title": "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 \u0391\u03bd\u03b1\u03b8\u03b5\u03ce\u03c1\u03b7\u03c3\u03b7\u03c2",
|
||||
"pad.toolbar.settings.title": "\u03a1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2",
|
||||
"pad.toolbar.embed.title": "\u0394\u03b9\u03b1\u03bc\u03bf\u03af\u03c1\u03b1\u03c3\u03b7 \u03ba\u03b1\u03b9 \u0395\u03bd\u03c3\u03c9\u03bc\u03ac\u03c4\u03c9\u03c3\u03b7 \u03b1\u03c5\u03c4\u03bf\u03cd \u03c4\u03bf\u03c5 pad",
|
||||
"pad.toolbar.showusers.title": "\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03c4\u03c9\u03bd \u03c7\u03c1\u03b7\u03c3\u03c4\u03ce\u03bd \u03b1\u03c5\u03c4\u03bf\u03cd \u03c4\u03bf\u03c5 pad",
|
||||
"pad.colorpicker.save": "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7",
|
||||
"pad.colorpicker.cancel": "\u0386\u03ba\u03c5\u03c1\u03bf",
|
||||
"pad.loading": "\u03a6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7...",
|
||||
"pad.passwordRequired": "\u03a7\u03c1\u03b5\u03b9\u03ac\u03b6\u03b5\u03c3\u03c4\u03b5 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2 \u03b3\u03b9\u03b1 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf pad",
|
||||
"pad.permissionDenied": "\u0394\u03b5\u03bd \u03ad\u03c7\u03b5\u03c4\u03b5 \u03b4\u03b9\u03ba\u03b1\u03af\u03c9\u03bc\u03b1 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf pad",
|
||||
"pad.wrongPassword": "\u039f \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c3\u03b1\u03c2 \u03ae\u03c4\u03b1\u03bd \u03bb\u03b1\u03bd\u03b8\u03b1\u03c3\u03bc\u03ad\u03bd\u03bf\u03c2",
|
||||
"pad.settings.padSettings": "\u03a1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2 Pad",
|
||||
"pad.settings.myView": "\u0397 \u03c0\u03c1\u03bf\u03b2\u03bf\u03bb\u03ae \u03bc\u03bf\u03c5",
|
||||
"pad.settings.stickychat": "\u0397 \u03a3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c0\u03ac\u03bd\u03c4\u03b1 \u03bf\u03c1\u03b1\u03c4\u03ae",
|
||||
"pad.settings.colorcheck": "\u03a7\u03c1\u03ce\u03bc\u03b1\u03c4\u03b1 \u03c3\u03c5\u03bd\u03c4\u03ac\u03ba\u03c4\u03b7",
|
||||
"pad.settings.linenocheck": "\u0391\u03c1\u03b9\u03b8\u03bc\u03bf\u03af \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2",
|
||||
"pad.settings.rtlcheck": "\u0398\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03b4\u03b9\u03b1\u03b2\u03ac\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03c0\u03b5\u03c1\u03b9\u03b5\u03c7\u03cc\u03bc\u03b5\u03bd\u03bf \u03b1\u03c0\u03cc \u03b4\u03b5\u03be\u03b9\u03ac \u03c0\u03c1\u03bf\u03c2 \u03c4\u03b1 \u03b1\u03c1\u03b9\u03c3\u03c4\u03b5\u03c1\u03ac;",
|
||||
"pad.settings.fontType": "\u03a4\u03cd\u03c0\u03bf\u03c2 \u03b3\u03c1\u03b1\u03bc\u03bc\u03b1\u03c4\u03bf\u03c3\u03b5\u03b9\u03c1\u03ac\u03c2:",
|
||||
"pad.settings.fontType.normal": "\u039a\u03b1\u03bd\u03bf\u03bd\u03b9\u03ba\u03ae",
|
||||
"pad.settings.fontType.monospaced": "\u039a\u03b1\u03b8\u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf\u03c5 \u03c0\u03bb\u03ac\u03c4\u03bf\u03c5\u03c2",
|
||||
"pad.settings.globalView": "\u039a\u03b1\u03b8\u03bf\u03bb\u03b9\u03ba\u03ae \u03a0\u03c1\u03bf\u03b2\u03bf\u03bb\u03ae",
|
||||
"pad.settings.language": "\u0393\u03bb\u03ce\u03c3\u03c3\u03b1:",
|
||||
"pad.importExport.import_export": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae/\u0395\u03be\u03b1\u03b3\u03c9\u03b3\u03ae",
|
||||
"pad.importExport.import": "\u0391\u03c0\u03bf\u03c3\u03c4\u03bf\u03bb\u03ae \u03bf\u03c0\u03bf\u03b9\u03bf\u03c5\u03b4\u03ae\u03c0\u03bf\u03c4\u03b5 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 \u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5 \u03ae \u03b5\u03b3\u03b3\u03c1\u03ac\u03c6\u03bf\u03c5",
|
||||
"pad.importExport.importSuccessful": "\u0395\u03c0\u03b9\u03c4\u03c5\u03c7\u03ae\u03c2!",
|
||||
"pad.importExport.export": "\u0395\u03be\u03b1\u03b3\u03c9\u03b3\u03ae \u03c4\u03c1\u03ad\u03c7\u03bf\u03bd\u03c4\u03bf\u03c2 pad \u03c9\u03c2:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "\u0391\u03c0\u03bb\u03cc \u03ba\u03b5\u03af\u03bc\u03b5\u03bd\u03bf",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "\u039c\u03c0\u03bf\u03c1\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03ba\u03ac\u03bd\u03b5\u03c4\u03b5 \u03b5\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03b1\u03c0\u03bb\u03bf\u03cd \u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5 \u03ae \u03bc\u03bf\u03c1\u03c6\u03ae\u03c2 html. \u0393\u03b9\u03b1 \u03c0\u03b9\u03bf \u03c0\u03c1\u03bf\u03b7\u03b3\u03bc\u03ad\u03bd\u03b5\u03c2 \u03b4\u03c5\u03bd\u03b1\u03c4\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2 \u03b5\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae\u03c2 \u03c0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003E\u03b5\u03b3\u03ba\u03b1\u03c4\u03b1\u03c3\u03c4\u03ae\u03c3\u03c4\u03b5 \u03c4\u03bf abiword\u003C/a\u003E.",
|
||||
"pad.modals.connected": "\u03a3\u03c5\u03bd\u03b4\u03b5\u03bc\u03ad\u03bd\u03bf\u03b9.",
|
||||
"pad.modals.reconnecting": "\u0395\u03c0\u03b1\u03bd\u03b1\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03c3\u03c4\u03bf pad \u03c3\u03b1\u03c2...",
|
||||
"pad.modals.forcereconnect": "\u0395\u03c0\u03b9\u03b2\u03bf\u03bb\u03ae \u03b5\u03c0\u03b1\u03bd\u03b1\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2",
|
||||
"pad.modals.userdup": "\u0391\u03bd\u03bf\u03b9\u03b3\u03bc\u03ad\u03bd\u03bf \u03c3\u03b5 \u03ac\u03bb\u03bb\u03bf \u03c0\u03b1\u03c1\u03ac\u03b8\u03c5\u03c1\u03bf",
|
||||
"pad.modals.userdup.explanation": "\u0391\u03c5\u03c4\u03cc \u03c4\u03bf pad \u03c6\u03b1\u03af\u03bd\u03b5\u03c4\u03b1\u03b9 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03b1\u03bd\u03bf\u03b9\u03c7\u03c4\u03cc \u03c3\u03b5 \u03c0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03b1 \u03b1\u03c0\u03cc \u03ad\u03bd\u03b1 \u03c0\u03b1\u03c1\u03ac\u03b8\u03c5\u03c1\u03bf \u03c4\u03bf\u03c5 \u03c0\u03c1\u03bf\u03b3\u03c1\u03ac\u03bc\u03bc\u03b1\u03c4\u03bf\u03c2 \u03c0\u03b5\u03c1\u03b9\u03ae\u03b3\u03b7\u03c3\u03b7\u03c2 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03cc\u03bd \u03c4\u03bf\u03bd \u03c5\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03c4\u03ae.",
|
||||
"pad.modals.userdup.advice": "\u0395\u03c0\u03b1\u03bd\u03b1\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03c4\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03c0\u03b1\u03c1\u03ac\u03b8\u03c5\u03c1\u03bf.",
|
||||
"pad.modals.unauth": "\u0394\u03b5\u03bd \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03b5\u03c4\u03b1\u03b9",
|
||||
"pad.modals.unauth.explanation": "\u03a4\u03b1 \u03b4\u03b9\u03ba\u03b1\u03b9\u03ce\u03bc\u03b1\u03c4\u03ac \u03c3\u03b1\u03c2 \u03ac\u03bb\u03bb\u03b1\u03be\u03b1\u03bd \u03cc\u03c3\u03bf \u03b2\u03bb\u03ad\u03c0\u03b1\u03c4\u03b5 \u03b1\u03c5\u03c4\u03ae\u03bd \u03c4\u03b7 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1. \u0394\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03bd\u03b1 \u03b5\u03c0\u03b1\u03bd\u03b1\u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5.",
|
||||
"pad.modals.looping.explanation": "\u03a5\u03c0\u03ac\u03c1\u03c7\u03bf\u03c5\u03bd \u03c0\u03c1\u03bf\u03b2\u03bb\u03ae\u03bc\u03b1\u03c4\u03b1 \u03b5\u03c0\u03b9\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03af\u03b1\u03c2 \u03bc\u03b5 \u03c4\u03bf \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae \u03c3\u03c5\u03b3\u03c7\u03c1\u03bf\u03bd\u03b9\u03c3\u03bc\u03bf\u03cd.",
|
||||
"pad.modals.looping.cause": "\u038a\u03c3\u03c9\u03c2 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03ae\u03ba\u03b1\u03c4\u03b5 \u03bc\u03ad\u03c3\u03c9 \u03b5\u03bd\u03cc\u03c2 \u03bc\u03b7 \u03c3\u03c5\u03bc\u03b2\u03b1\u03c4\u03bf\u03cd \u03c4\u03b5\u03af\u03c7\u03bf\u03c5\u03c2 \u03c0\u03c1\u03bf\u03c3\u03c4\u03b1\u03c3\u03af\u03b1\u03c2 \u03ae \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae \u03bc\u03b5\u03c3\u03bf\u03bb\u03ac\u03b2\u03b7\u03c3\u03b7\u03c2.",
|
||||
"pad.modals.initsocketfail": "\u0391\u03b4\u03cd\u03bd\u03b1\u03c4\u03b7 \u03ae \u03b5\u03c0\u03b9\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03af\u03b1 \u03bc\u03b5 \u03c4\u03bf\u03bd \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae.",
|
||||
"pad.modals.initsocketfail.explanation": "\u0394\u03b5\u03bd \u03ae\u03c4\u03b1\u03bd \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03bc\u03b5 \u03c4\u03bf\u03bd \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae \u03c3\u03c5\u03b3\u03c7\u03c1\u03bf\u03bd\u03b9\u03c3\u03bc\u03bf\u03cd.",
|
||||
"pad.modals.initsocketfail.cause": "\u0391\u03c5\u03c4\u03cc \u03bf\u03c6\u03b5\u03af\u03bb\u03b5\u03c4\u03b1\u03b9 \u03c0\u03b9\u03b8\u03b1\u03bd\u03ce\u03c2 \u03c3\u03b5 \u03c0\u03c1\u03cc\u03b2\u03bb\u03b7\u03bc\u03b1 \u03bc\u03b5 \u03c4\u03bf \u03c0\u03c1\u03cc\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1 \u03c0\u03b5\u03c1\u03b9\u03ae\u03b3\u03b7\u03c3\u03b7\u03c2 \u03ae \u03c4\u03b7\u03c2 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03ae\u03c2 \u03c3\u03b1\u03c2 \u03c3\u03c4\u03bf \u03b4\u03b9\u03b1\u03b4\u03af\u03ba\u03c4\u03c5\u03bf.",
|
||||
"pad.modals.slowcommit.explanation": "\u039f \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae\u03c2 \u03b4\u03b5\u03bd \u03b1\u03c0\u03bf\u03ba\u03c1\u03af\u03bd\u03b5\u03c4\u03b1\u03b9.",
|
||||
"pad.modals.slowcommit.cause": "\u0391\u03c5\u03c4\u03cc \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03bf\u03c6\u03b5\u03af\u03bb\u03b5\u03c4\u03b1\u03b9 \u03c3\u03b5 \u03c0\u03c1\u03bf\u03b2\u03bb\u03ae\u03bc\u03b1\u03c4\u03b1 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2 \u03b4\u03b9\u03ba\u03c4\u03cd\u03bf\u03c5.",
|
||||
"pad.modals.deleted": "\u0394\u03b9\u03b5\u03b3\u03c1\u03ac\u03c6\u03b7.",
|
||||
"pad.modals.deleted.explanation": "\u0391\u03c5\u03c4\u03cc \u03c4\u03bf pad \u03ad\u03c7\u03b5\u03b9 \u03ba\u03b1\u03c4\u03b1\u03c1\u03b3\u03b7\u03b8\u03b5\u03af.",
|
||||
"pad.modals.disconnected": "\u0388\u03c7\u03b5\u03c4\u03b5 \u03b1\u03c0\u03bf\u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af.",
|
||||
"pad.modals.disconnected.explanation": "\u03a7\u03ac\u03b8\u03b7\u03ba\u03b5 \u03b7 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03bc\u03b5 \u03c4\u03bf \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae",
|
||||
"pad.modals.disconnected.cause": "\u039f \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae\u03c2 \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03bc\u03b7\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03b9\u03b1\u03b8\u03ad\u03c3\u03b9\u03bc\u03bf\u03c2. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b5\u03b9\u03b4\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03c4\u03b5 \u03bc\u03b1\u03c2 \u03b5\u03ac\u03bd \u03b1\u03c5\u03c4\u03cc \u03b5\u03be\u03b1\u03ba\u03bf\u03bb\u03bf\u03c5\u03b8\u03b5\u03af \u03bd\u03b1 \u03c3\u03c5\u03bc\u03b2\u03b1\u03af\u03bd\u03b5\u03b9.",
|
||||
"pad.share": "\u039c\u03bf\u03b9\u03c1\u03b1\u03c3\u03c4\u03b5\u03af\u03c4\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf pad",
|
||||
"pad.share.readonly": "\u039c\u03cc\u03bd\u03bf \u03b3\u03b9\u03b1 \u03b1\u03bd\u03ac\u03b3\u03bd\u03c9\u03c3\u03b7",
|
||||
"pad.share.link": "\u03a3\u03cd\u03bd\u03b4\u03b5\u03c3\u03bc\u03bf\u03c2",
|
||||
"pad.share.emebdcode": "URL \u03b5\u03bd\u03c3\u03c9\u03bc\u03ac\u03c4\u03c9\u03c3\u03b7\u03c2",
|
||||
"pad.chat": "\u03a3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1",
|
||||
"pad.chat.title": "\u0386\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1 \u03c4\u03b7\u03c2 \u03c3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1\u03c2 \u03b3\u03b9\u03b1 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf pad.",
|
||||
"pad.chat.loadmessages": "\u03a6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7 \u03c0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03c9\u03bd \u03bc\u03b7\u03bd\u03c5\u03bc\u03ac\u03c4\u03c9\u03bd",
|
||||
"timeslider.pageTitle": "{{appTitle}} \u03a7\u03c1\u03bf\u03bd\u03bf\u03b4\u03b9\u03ac\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1",
|
||||
"timeslider.toolbar.returnbutton": "\u0395\u03c0\u03b9\u03c3\u03c4\u03c1\u03bf\u03c6\u03ae \u03c3\u03c4\u03bf pad",
|
||||
"timeslider.toolbar.authors": "\u03a3\u03c5\u03bd\u03c4\u03ac\u03ba\u03c4\u03b5\u03c2:",
|
||||
"timeslider.toolbar.authorsList": "\u039a\u03b1\u03bd\u03ad\u03bd\u03b1\u03c2 \u03a3\u03c5\u03bd\u03c4\u03ac\u03ba\u03c4\u03b7\u03c2",
|
||||
"timeslider.toolbar.exportlink.title": "\u0395\u03be\u03b1\u03b3\u03c9\u03b3\u03ae",
|
||||
"timeslider.exportCurrent": "\u0395\u03be\u03b1\u03b3\u03c9\u03b3\u03ae \u03c4\u03c1\u03ad\u03c7\u03bf\u03c5\u03c3\u03b1\u03c2 \u03ad\u03ba\u03b4\u03bf\u03c3\u03b7\u03c2 \u03c9\u03c2:",
|
||||
"timeslider.version": "\u0388\u03ba\u03b4\u03bf\u03c3\u03b7 {{version}}",
|
||||
"timeslider.saved": "\u0391\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03cd\u03c4\u03b7\u03ba\u03b5 \u03c3\u03c4\u03b9\u03c2 {{day}} {{month}} {{year}}",
|
||||
"timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "\u0399\u03b1\u03bd\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5",
|
||||
"timeslider.month.february": "\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5",
|
||||
"timeslider.month.march": "\u039c\u03b1\u03c1\u03c4\u03af\u03bf\u03c5",
|
||||
"timeslider.month.april": "\u0391\u03c0\u03c1\u03b9\u03bb\u03af\u03bf\u03c5",
|
||||
"timeslider.month.may": "\u039c\u03b1\u0390\u03bf\u03c5",
|
||||
"timeslider.month.june": "\u0399\u03bf\u03c5\u03bd\u03af\u03bf\u03c5",
|
||||
"timeslider.month.july": "\u0399\u03bf\u03c5\u03bb\u03af\u03bf\u03c5",
|
||||
"timeslider.month.august": "\u0391\u03c5\u03b3\u03bf\u03cd\u03c3\u03c4\u03bf\u03c5",
|
||||
"timeslider.month.september": "\u03a3\u03b5\u03c0\u03c4\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5",
|
||||
"timeslider.month.october": "\u039f\u03ba\u03c4\u03c9\u03b2\u03c1\u03af\u03bf\u03c5",
|
||||
"timeslider.month.november": "\u039d\u03bf\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5",
|
||||
"timeslider.month.december": "\u0394\u03b5\u03ba\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5",
|
||||
"timeslider.unnamedauthors": "{{num}} {[plural(num) one: \u03b1\u03bd\u03ce\u03bd\u03c5\u03bc\u03bf\u03c2 \u03c3\u03c5\u03bd\u03c4\u03ac\u03ba\u03c4\u03b7\u03c2, other: \u03b1\u03bd\u03ce\u03bd\u03c5\u03bc\u03bf\u03b9 \u03c3\u03c5\u03bd\u03c4\u03ac\u03ba\u03c4\u03b5\u03c2]}",
|
||||
"pad.savedrevs.marked": "\u0391\u03c5\u03c4\u03ae \u03b7 \u03ad\u03ba\u03b4\u03bf\u03c3\u03b7 \u03b5\u03c0\u03b9\u03c3\u03b7\u03bc\u03ac\u03bd\u03b8\u03b7\u03ba\u03b5 \u03c9\u03c2 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03bc\u03ad\u03bd\u03b7 \u03ad\u03ba\u03b4\u03bf\u03c3\u03b7",
|
||||
"pad.userlist.entername": "\u0395\u03b9\u03c3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03cc\u03bd\u03bf\u03bc\u03ac \u03c3\u03b1\u03c2",
|
||||
"pad.userlist.unnamed": "\u03b1\u03bd\u03ce\u03bd\u03c5\u03bc\u03bf\u03c2",
|
||||
"pad.userlist.guest": "\u0395\u03c0\u03b9\u03c3\u03ba\u03ad\u03c0\u03c4\u03b7\u03c2",
|
||||
"pad.userlist.deny": "\u0386\u03c1\u03bd\u03b7\u03c3\u03b7",
|
||||
"pad.userlist.approve": "\u0388\u03b3\u03ba\u03c1\u03b9\u03c3\u03b7",
|
||||
"pad.editbar.clearcolors": "\u039d\u03b1 \u03b3\u03af\u03bd\u03b5\u03b9 \u03b5\u03ba\u03ba\u03b1\u03b8\u03ac\u03c1\u03b9\u03c3\u03b7 \u03c7\u03c1\u03c9\u03bc\u03ac\u03c4\u03c9\u03bd \u03c3\u03cd\u03bd\u03c4\u03b1\u03be\u03b7\u03c2 \u03c3\u03b5 \u03bf\u03bb\u03cc\u03ba\u03bb\u03b7\u03c1\u03bf \u03c4\u03bf \u03ad\u03b3\u03b3\u03c1\u03b1\u03c6\u03bf;",
|
||||
"pad.impexp.importbutton": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03a4\u03ce\u03c1\u03b1",
|
||||
"pad.impexp.importing": "\u0395\u03b9\u03c3\u03ac\u03b3\u03b5\u03c4\u03b1\u03b9...",
|
||||
"pad.impexp.confirmimport": "\u0397 \u03b5\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03b5\u03bd\u03cc\u03c2 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 \u03b8\u03b1 \u03b1\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03b1\u03c3\u03c4\u03ae\u03c3\u03b5\u03b9 \u03c4\u03bf \u03ba\u03b5\u03af\u03bc\u03b5\u03bd\u03bf \u03c4\u03bf\u03c5 pad. \u0395\u03af\u03c3\u03c4\u03b5 \u03b2\u03ad\u03b2\u03b1\u03b9\u03bf\u03b9 \u03cc\u03c4\u03b9 \u03b8\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b5\u03c7\u03af\u03c3\u03b5\u03c4\u03b5;",
|
||||
"pad.impexp.convertFailed": "\u0394\u03b5\u03bd \u03ba\u03b1\u03c4\u03b1\u03c6\u03ad\u03c1\u03b1\u03bc\u03b5 \u03bd\u03b1 \u03b5\u03b9\u03c3\u03ac\u03b3\u03bf\u03c5\u03bc\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03c4\u03b5 \u03b4\u03b9\u03b1\u03c6\u03bf\u03c1\u03b5\u03c4\u03b9\u03ba\u03cc \u03c4\u03cd\u03c0\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 \u03ae \u03b1\u03bd\u03c4\u03b9\u03b3\u03c1\u03ac\u03c8\u03c4\u03b5 \u03ba\u03b1\u03b9 \u03b5\u03c0\u03b9\u03ba\u03bf\u03bb\u03bb\u03ae\u03c3\u03c4\u03b5 \u03c7\u03b5\u03b9\u03c1\u03bf\u03ba\u03af\u03bd\u03b7\u03c4\u03b1",
|
||||
"pad.impexp.uploadFailed": "\u0397 \u03b1\u03c0\u03bf\u03c3\u03c4\u03bf\u03bb\u03ae \u03b1\u03c0\u03ad\u03c4\u03c5\u03c7\u03b5, \u03c0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03c0\u03c1\u03bf\u03c3\u03c0\u03b1\u03b8\u03ae\u03c3\u03c4\u03b5 \u03be\u03b1\u03bd\u03ac",
|
||||
"pad.impexp.importfailed": "\u0397 \u03b5\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03b1\u03c0\u03ad\u03c4\u03c5\u03c7\u03b5",
|
||||
"pad.impexp.copypaste": "\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b1\u03bd\u03c4\u03b9\u03b3\u03c1\u03ac\u03c8\u03c4\u03b5 \u03ba\u03b1\u03b9 \u03b5\u03c0\u03b9\u03ba\u03bf\u03bb\u03bb\u03ae\u03c3\u03c4\u03b5",
|
||||
"pad.impexp.exportdisabled": "\u0397 \u03b5\u03be\u03b1\u03b3\u03c9\u03b3\u03ae \u03c3\u03b5 \u03bc\u03bf\u03c1\u03c6\u03ae {{type}} \u03ad\u03c7\u03b5\u03b9 \u03b1\u03c0\u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03b8\u03b5\u03af. \u0395\u03c0\u03b9\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03ae\u03c3\u03c4\u03b5 \u03bc\u03b5 \u03c4\u03bf\u03bd \u03b4\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ae \u03c4\u03bf\u03c5 \u03c3\u03c5\u03c3\u03c4\u03ae\u03bc\u03b1\u03c4\u03cc\u03c2 \u03c3\u03b1\u03c2 \u03b3\u03b9\u03b1 \u03bb\u03b5\u03c0\u03c4\u03bf\u03bc\u03ad\u03c1\u03b5\u03b9\u03b5\u03c2."
|
||||
}
|
137
sources/src/locales/en.json
Normal file
137
sources/src/locales/en.json
Normal file
|
@ -0,0 +1,137 @@
|
|||
{
|
||||
"index.newPad": "New Pad",
|
||||
"index.createOpenPad": "or create/open a Pad with the name:",
|
||||
|
||||
"pad.toolbar.bold.title": "Bold (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "Italic (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "Underline (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "Strikethrough",
|
||||
"pad.toolbar.ol.title": "Ordered list",
|
||||
"pad.toolbar.ul.title": "Unordered List",
|
||||
"pad.toolbar.indent.title": "Indent",
|
||||
"pad.toolbar.unindent.title": "Outdent",
|
||||
"pad.toolbar.undo.title": "Undo (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "Redo (Ctrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "Clear Authorship Colors",
|
||||
"pad.toolbar.import_export.title": "Import/Export from/to different file formats",
|
||||
"pad.toolbar.timeslider.title": "Timeslider",
|
||||
"pad.toolbar.savedRevision.title": "Save Revision",
|
||||
"pad.toolbar.settings.title": "Settings",
|
||||
"pad.toolbar.embed.title": "Share and Embed this pad",
|
||||
"pad.toolbar.showusers.title": "Show the users on this pad",
|
||||
|
||||
"pad.colorpicker.save": "Save",
|
||||
"pad.colorpicker.cancel": "Cancel",
|
||||
|
||||
"pad.loading": "Loading...",
|
||||
"pad.passwordRequired": "You need a password to access this pad",
|
||||
"pad.permissionDenied": "You do not have permission to access this pad",
|
||||
"pad.wrongPassword": "Your password was wrong",
|
||||
|
||||
"pad.settings.padSettings": "Pad Settings",
|
||||
"pad.settings.myView": "My View",
|
||||
"pad.settings.stickychat": "Chat always on screen",
|
||||
"pad.settings.colorcheck": "Authorship colors",
|
||||
"pad.settings.linenocheck": "Line numbers",
|
||||
"pad.settings.rtlcheck": "Read content from right to left?",
|
||||
"pad.settings.fontType": "Font type:",
|
||||
"pad.settings.fontType.normal": "Normal",
|
||||
"pad.settings.fontType.monospaced": "Monospace",
|
||||
"pad.settings.globalView": "Global View",
|
||||
"pad.settings.language": "Language:",
|
||||
|
||||
"pad.importExport.import_export": "Import/Export",
|
||||
"pad.importExport.import": "Upload any text file or document",
|
||||
"pad.importExport.importSuccessful": "Successful!",
|
||||
"pad.importExport.export": "Export current pad as:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Plain text",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "You only can import from plain text or HTML formats. For more advanced import features please <a href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\">install abiword</a>.",
|
||||
|
||||
"pad.modals.connected": "Connected.",
|
||||
"pad.modals.reconnecting": "Reconnecting to your pad..",
|
||||
"pad.modals.forcereconnect": "Force reconnect",
|
||||
|
||||
"pad.modals.userdup": "Opened in another window",
|
||||
"pad.modals.userdup.explanation": "This pad seems to be opened in more than one browser window on this computer.",
|
||||
"pad.modals.userdup.advice": "Reconnect to use this window instead.",
|
||||
|
||||
"pad.modals.unauth": "Not authorized",
|
||||
"pad.modals.unauth.explanation": "Your permissions have changed while viewing this page. Try to reconnect.",
|
||||
|
||||
"pad.modals.looping.explanation": "There are communication problems with the synchronization server.",
|
||||
"pad.modals.looping.cause": "Perhaps you connected through an incompatible firewall or proxy.",
|
||||
|
||||
"pad.modals.initsocketfail": "Server is unreachable.",
|
||||
"pad.modals.initsocketfail.explanation": "Couldn't connect to the synchronization server.",
|
||||
"pad.modals.initsocketfail.cause": "This is probably due to a problem with your browser or your internet connection.",
|
||||
|
||||
"pad.modals.slowcommit.explanation": "The server is not responding.",
|
||||
"pad.modals.slowcommit.cause": "This could be due to problems with network connectivity.",
|
||||
|
||||
"pad.modals.badChangeset.explanation": "An edit you have made was classified illegal by the synchronization server.",
|
||||
"pad.modals.badChangeset.cause": "This could be due to a wrong server configuration or some other unexpected behavior. Please contact the service administrator, if you feel this is an error. Try to reconnect in order to continue editing.",
|
||||
|
||||
"pad.modals.corruptPad.explanation": "The pad you are trying to access is corrupt.",
|
||||
"pad.modals.corruptPad.cause": "This may be due to a wrong server configuration or some other unexpected behavior. Please contact the service administrator.",
|
||||
|
||||
"pad.modals.deleted": "Deleted.",
|
||||
"pad.modals.deleted.explanation": "This pad has been removed.",
|
||||
|
||||
"pad.modals.disconnected": "You have been disconnected.",
|
||||
"pad.modals.disconnected.explanation": "The connection to the server was lost",
|
||||
"pad.modals.disconnected.cause": "The server may be unavailable. Please notify the service administrator if this continues to happen.",
|
||||
|
||||
"pad.share": "Share this pad",
|
||||
"pad.share.readonly": "Read only",
|
||||
"pad.share.link": "Link",
|
||||
"pad.share.emebdcode": "Embed URL",
|
||||
"pad.chat": "Chat",
|
||||
"pad.chat.title": "Open the chat for this pad.",
|
||||
"pad.chat.loadmessages": "Load more messages",
|
||||
|
||||
"timeslider.pageTitle": "{{appTitle}} Timeslider",
|
||||
"timeslider.toolbar.returnbutton": "Return to pad",
|
||||
"timeslider.toolbar.authors": "Authors:",
|
||||
"timeslider.toolbar.authorsList": "No Authors",
|
||||
"timeslider.toolbar.exportlink.title": "Export",
|
||||
"timeslider.exportCurrent": "Export current version as:",
|
||||
"timeslider.version": "Version {{version}}",
|
||||
"timeslider.saved": "Saved {{month}} {{day}}, {{year}}",
|
||||
|
||||
"timeslider.dateformat": "{{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "January",
|
||||
"timeslider.month.february": "February",
|
||||
"timeslider.month.march": "March",
|
||||
"timeslider.month.april": "April",
|
||||
"timeslider.month.may": "May",
|
||||
"timeslider.month.june": "June",
|
||||
"timeslider.month.july": "July",
|
||||
"timeslider.month.august": "August",
|
||||
"timeslider.month.september": "September",
|
||||
"timeslider.month.october": "October",
|
||||
"timeslider.month.november": "November",
|
||||
"timeslider.month.december": "December",
|
||||
|
||||
"timeslider.unnamedauthors": "{{num}} unnamed {[plural(num) one: author, other: authors ]}",
|
||||
"pad.savedrevs.marked": "This revision is now marked as a saved revision",
|
||||
"pad.userlist.entername": "Enter your name",
|
||||
"pad.userlist.unnamed": "unnamed",
|
||||
"pad.userlist.guest": "Guest",
|
||||
"pad.userlist.deny": "Deny",
|
||||
"pad.userlist.approve": "Approve",
|
||||
"pad.editbar.clearcolors": "Clear authorship colors on entire document?",
|
||||
|
||||
"pad.impexp.importbutton": "Import Now",
|
||||
"pad.impexp.importing": "Importing...",
|
||||
"pad.impexp.confirmimport": "Importing a file will overwrite the current text of the pad. Are you sure you want to proceed?",
|
||||
"pad.impexp.convertFailed": "We were not able to import this file. Please use a different document format or copy paste manually",
|
||||
"pad.impexp.uploadFailed": "The upload failed, please try again",
|
||||
"pad.impexp.importfailed": "Import failed",
|
||||
"pad.impexp.copypaste": "Please copy paste",
|
||||
"pad.impexp.exportdisabled": "Exporting as {{type}} format is disabled. Please contact your system administrator for details."
|
||||
}
|
125
sources/src/locales/es.json
Normal file
125
sources/src/locales/es.json
Normal file
|
@ -0,0 +1,125 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": {
|
||||
"0": "Armando-Martin",
|
||||
"1": "Jacobo",
|
||||
"2": "Joker",
|
||||
"3": "Larjona",
|
||||
"4": "Mklehr",
|
||||
"5": "Rubenwap",
|
||||
"7": "Vivaelcelta",
|
||||
"8": "Xuacu"
|
||||
}
|
||||
},
|
||||
"index.newPad": "Nuevo Pad",
|
||||
"index.createOpenPad": "o crea/abre un Pad con el nombre:",
|
||||
"pad.toolbar.bold.title": "Negrita (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "Cursiva (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "Subrayado (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "Tachado",
|
||||
"pad.toolbar.ol.title": "Lista ordenada",
|
||||
"pad.toolbar.ul.title": "Lista desordenada",
|
||||
"pad.toolbar.indent.title": "Sangrar",
|
||||
"pad.toolbar.unindent.title": "Desangrar",
|
||||
"pad.toolbar.undo.title": "Deshacer (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "Rehacer (Ctrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "Eliminar los colores de los autores",
|
||||
"pad.toolbar.import_export.title": "Importar/Exportar a diferentes formatos de archivos",
|
||||
"pad.toolbar.timeslider.title": "L\u00ednea de tiempo",
|
||||
"pad.toolbar.savedRevision.title": "Guardar revisi\u00f3n",
|
||||
"pad.toolbar.settings.title": "Configuraci\u00f3n",
|
||||
"pad.toolbar.embed.title": "Compartir e incrustar este pad",
|
||||
"pad.toolbar.showusers.title": "Mostrar los usuarios de este pad",
|
||||
"pad.colorpicker.save": "Guardar",
|
||||
"pad.colorpicker.cancel": "Cancelar",
|
||||
"pad.loading": "Cargando...",
|
||||
"pad.passwordRequired": "Necesitas una contrase\u00f1a para acceder a este documento",
|
||||
"pad.permissionDenied": "No tienes permiso para acceder a esta p\u00e1gina",
|
||||
"pad.wrongPassword": "La contrase\u00f1a era incorrecta",
|
||||
"pad.settings.padSettings": "Configuraci\u00f3n del Pad",
|
||||
"pad.settings.myView": "Preferencias personales",
|
||||
"pad.settings.stickychat": "Chat siempre encima",
|
||||
"pad.settings.colorcheck": "Color de autor\u00eda",
|
||||
"pad.settings.linenocheck": "N\u00fameros de l\u00ednea",
|
||||
"pad.settings.rtlcheck": "\u00bfLeer contenido de derecha a izquierda?",
|
||||
"pad.settings.fontType": "Tipograf\u00eda:",
|
||||
"pad.settings.fontType.normal": "Normal",
|
||||
"pad.settings.fontType.monospaced": "Monoespacio",
|
||||
"pad.settings.globalView": "Preferencias globales",
|
||||
"pad.settings.language": "Idioma:",
|
||||
"pad.importExport.import_export": "Importar/Exportar",
|
||||
"pad.importExport.import": "Subir cualquier texto o documento",
|
||||
"pad.importExport.importSuccessful": "\u00a1Operaci\u00f3n realizada con \u00e9xito!",
|
||||
"pad.importExport.export": "Exporta el pad actual como:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Texto plano",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "S\u00f3lo puede importar formatos de texto plano o html. Para funciones m\u00e1s avanzadas instale \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003Eabiword\u003C/a\u003E.",
|
||||
"pad.modals.connected": "Conectado.",
|
||||
"pad.modals.reconnecting": "Reconectando a tu pad..",
|
||||
"pad.modals.forcereconnect": "Reconexi\u00f3n forzosa",
|
||||
"pad.modals.userdup": "Abierto en otra ventana",
|
||||
"pad.modals.userdup.explanation": "Este pad parece estar abierto en m\u00e1s de una ventana de tu navegador.",
|
||||
"pad.modals.userdup.advice": "Reconectar para usar esta ventana.",
|
||||
"pad.modals.unauth": "No autorizado.",
|
||||
"pad.modals.unauth.explanation": "Los permisos han cambiado mientras estabas viendo esta p\u00e1gina. Intenta reconectar de nuevo.",
|
||||
"pad.modals.looping.explanation": "Estamos teniendo problemas con la sincronizaci\u00f3n en el servidor.",
|
||||
"pad.modals.looping.cause": "Puede deberse a que te conectes a trav\u00e9s de un proxy o un cortafuegos incompatible.",
|
||||
"pad.modals.initsocketfail": "Servidor incalcanzable.",
|
||||
"pad.modals.initsocketfail.explanation": "No se pudo conectar al servidor de sincronizaci\u00f3n.",
|
||||
"pad.modals.initsocketfail.cause": "Puede ser a causa de tu navegador o de una ca\u00edda en tu conexi\u00f3n de Internet.",
|
||||
"pad.modals.slowcommit.explanation": "El servidor no responde.",
|
||||
"pad.modals.slowcommit.cause": "Puede deberse a problemas con tu conexi\u00f3n de red.",
|
||||
"pad.modals.deleted": "Borrado.",
|
||||
"pad.modals.deleted.explanation": "Este pad ha sido borrado.",
|
||||
"pad.modals.disconnected": "Has sido desconectado.",
|
||||
"pad.modals.disconnected.explanation": "Se perdi\u00f3 la conexi\u00f3n con el servidor",
|
||||
"pad.modals.disconnected.cause": "El servidor podr\u00eda no estar disponible. Contacte con nosotros si esto contin\u00faa sucediendo.",
|
||||
"pad.share": "Compatir el pad",
|
||||
"pad.share.readonly": "S\u00f3lo lectura",
|
||||
"pad.share.link": "Enlace",
|
||||
"pad.share.emebdcode": "Incrustar URL",
|
||||
"pad.chat": "Chat",
|
||||
"pad.chat.title": "Abrir el chat para este pad.",
|
||||
"pad.chat.loadmessages": "Cargar m\u00e1s mensajes",
|
||||
"timeslider.pageTitle": "{{appTitle}} L\u00ednea de tiempo",
|
||||
"timeslider.toolbar.returnbutton": "Volver al pad",
|
||||
"timeslider.toolbar.authors": "Autores:",
|
||||
"timeslider.toolbar.authorsList": "Sin autores",
|
||||
"timeslider.toolbar.exportlink.title": "Exportar",
|
||||
"timeslider.exportCurrent": "Exportar la versi\u00f3n actual como:",
|
||||
"timeslider.version": "Versi\u00f3n {{version}}",
|
||||
"timeslider.saved": "Guardado el {{day}} de {{month}} de {{year}}",
|
||||
"timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "Enero",
|
||||
"timeslider.month.february": "Febrero",
|
||||
"timeslider.month.march": "Marzo",
|
||||
"timeslider.month.april": "Abril",
|
||||
"timeslider.month.may": "Mayo",
|
||||
"timeslider.month.june": "Junio",
|
||||
"timeslider.month.july": "Julio",
|
||||
"timeslider.month.august": "Agosto",
|
||||
"timeslider.month.september": "Septiembre",
|
||||
"timeslider.month.october": "Octubre",
|
||||
"timeslider.month.november": "Noviembre",
|
||||
"timeslider.month.december": "Diciembre",
|
||||
"timeslider.unnamedauthors": "{{num}} {[ plural(num) one: autor desconocido, other: autores desconocidos]}",
|
||||
"pad.savedrevs.marked": "Revisi\u00f3n guardada",
|
||||
"pad.userlist.entername": "Escribe tu nombre",
|
||||
"pad.userlist.unnamed": "an\u00f3nimo",
|
||||
"pad.userlist.guest": "Invitado",
|
||||
"pad.userlist.deny": "Denegar",
|
||||
"pad.userlist.approve": "Aprobar",
|
||||
"pad.editbar.clearcolors": "\u00bfDesea borrar el color de los autores en todo el documento?",
|
||||
"pad.impexp.importbutton": "Importar",
|
||||
"pad.impexp.importing": "Importando...",
|
||||
"pad.impexp.confirmimport": "Al importar un fichero se borrar\u00e1 el contenido actual del documento. \u00bfQuiere continuar?",
|
||||
"pad.impexp.convertFailed": "No pudimos importar este fichero. Intentalo con otro formato diferente o copia y pega manualmente.",
|
||||
"pad.impexp.uploadFailed": "El env\u00edo del fichero fall\u00f3. Intentelo de nuevo.",
|
||||
"pad.impexp.importfailed": "Fallo al importar",
|
||||
"pad.impexp.copypaste": "Intente copiar y pegar",
|
||||
"pad.impexp.exportdisabled": "La exportaci\u00f3n al formato {{type}} format est\u00e1 desactivada. Contacte con su administrador de sistemas."
|
||||
}
|
118
sources/src/locales/eu.json
Normal file
118
sources/src/locales/eu.json
Normal file
|
@ -0,0 +1,118 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Theklan"
|
||||
]
|
||||
},
|
||||
"index.newPad": "Pad berria",
|
||||
"index.createOpenPad": "edo sortu/ireki Pad bat honako izenarekin:",
|
||||
"pad.toolbar.bold.title": "Lodia (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "Etzana (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "Azpimarratua (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "Ezabatua",
|
||||
"pad.toolbar.ol.title": "Zerrenda ordenatua",
|
||||
"pad.toolbar.ul.title": "Zerrenda ez-ordenatua",
|
||||
"pad.toolbar.indent.title": "Koska",
|
||||
"pad.toolbar.unindent.title": "Koska kendu",
|
||||
"pad.toolbar.undo.title": "Desegin (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "Berregin (Ctrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "Ezabatu Egiletza Koloreak",
|
||||
"pad.toolbar.import_export.title": "Inportatu/Esportatu fitxategi formatu ezberdinetara/ezberdinetatik",
|
||||
"pad.toolbar.timeslider.title": "Denbora lerroa",
|
||||
"pad.toolbar.savedRevision.title": "Gorde berrikuspena",
|
||||
"pad.toolbar.settings.title": "Hobespenak",
|
||||
"pad.toolbar.embed.title": "Partekatu eta Txertatu pad hau",
|
||||
"pad.toolbar.showusers.title": "Erakutsi pad honetako erabiltzaileak",
|
||||
"pad.colorpicker.save": "Gorde",
|
||||
"pad.colorpicker.cancel": "Utzi",
|
||||
"pad.loading": "Kargatzen...",
|
||||
"pad.passwordRequired": "Pasahitza behar duzu pad honetara sartzeko",
|
||||
"pad.permissionDenied": "Ez duzu bamienik pad honetara sartzeko",
|
||||
"pad.wrongPassword": "Zure pasahitza oker zegoen",
|
||||
"pad.settings.padSettings": "Pad hobespenak",
|
||||
"pad.settings.myView": "Nire ikusmoldea",
|
||||
"pad.settings.stickychat": "Txata beti pantailan",
|
||||
"pad.settings.colorcheck": "Egiletzaren koloreak",
|
||||
"pad.settings.linenocheck": "Lerro zenbakiak",
|
||||
"pad.settings.rtlcheck": "Edukia eskubitik ezkerrera irakurri?",
|
||||
"pad.settings.fontType": "Tipografia:",
|
||||
"pad.settings.fontType.normal": "Arrunta",
|
||||
"pad.settings.fontType.monospaced": "Monospace",
|
||||
"pad.settings.globalView": "Ikuspegi Globala",
|
||||
"pad.settings.language": "Hizkuntza:",
|
||||
"pad.importExport.import_export": "Inportatu/Esportatu",
|
||||
"pad.importExport.import": "Igo edozein testu fitxategi edo dokumentu",
|
||||
"pad.importExport.importSuccessful": "Arrakastatsua!",
|
||||
"pad.importExport.export": "Oraingo pad hau honela esportatu:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Testu laua",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DocuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "Testu laua edo html formatudun testuak bakarrik inporta ditzakezu. Aurreratuagoak diren inportazio aukerak izateko \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003Eabiword instala ezazu\u003C/a\u003E.",
|
||||
"pad.modals.connected": "Konektatuta.",
|
||||
"pad.modals.reconnecting": "Zure pad-era birkonektatu...",
|
||||
"pad.modals.forcereconnect": "Berkonexioa fortzatu",
|
||||
"pad.modals.userdup": "Beste leiho batean ireki da",
|
||||
"pad.modals.userdup.explanation": "Pad hau zure nabigatzailearen beste leiho batean irekita dagoela ematen du.",
|
||||
"pad.modals.userdup.advice": "Berriro konektatu beste leiho hau erabiltzeko.",
|
||||
"pad.modals.unauth": "Baimenik gabe",
|
||||
"pad.modals.unauth.explanation": "Orrialdea ikusten ari zinela zure baimenak aldatu dira. Saia zaitez berriro konektatzen.",
|
||||
"pad.modals.looping.explanation": "Sinkronizazio zerbitzariarekin komunikazioa arazoak daude.",
|
||||
"pad.modals.looping.cause": "Agian firewall edo proxy ez-bateragarri baten bidez konektatu zara.",
|
||||
"pad.modals.initsocketfail": "Zerbitzarira ezin da iritsi.",
|
||||
"pad.modals.initsocketfail.explanation": "Ezin izan da konektatu sinkronizazio zerbitzarira.",
|
||||
"pad.modals.initsocketfail.cause": "Ziurrenik hau zure nabigatzailea edo internet konexioaren arazo bat dela eta izango da.",
|
||||
"pad.modals.slowcommit.explanation": "Zerbitzariak ez du erantzuten.",
|
||||
"pad.modals.slowcommit.cause": "Baliteke hau sarearen konexio arazoak direla eta izatea.",
|
||||
"pad.modals.deleted": "Ezabatua.",
|
||||
"pad.modals.deleted.explanation": "Pad hau ezabatua izan da.",
|
||||
"pad.modals.disconnected": "Deskonektatua izan zara.",
|
||||
"pad.modals.disconnected.explanation": "Zerbitzariaren konexioa galdu da",
|
||||
"pad.modals.disconnected.cause": "Baliteke zerbitzaria irisgarria ez izatea. Mesedez, esaiguzu hau gertatzen jarraitzen badu.",
|
||||
"pad.share": "Pad hau partekatu",
|
||||
"pad.share.readonly": "Irakurtzeko bakarrik",
|
||||
"pad.share.link": "Lotura",
|
||||
"pad.share.emebdcode": "URLa txertatu",
|
||||
"pad.chat": "Txata",
|
||||
"pad.chat.title": "Pad honetarako txata ireki.",
|
||||
"pad.chat.loadmessages": "Mezu gehiago kargatu",
|
||||
"timeslider.pageTitle": "{{appTitle}} denbora lerroa",
|
||||
"timeslider.toolbar.returnbutton": "Padera itzuli",
|
||||
"timeslider.toolbar.authors": "Egileak:",
|
||||
"timeslider.toolbar.authorsList": "Egilerik gabe",
|
||||
"timeslider.toolbar.exportlink.title": "Esportatu",
|
||||
"timeslider.exportCurrent": "Gorde bertsio hau honela:",
|
||||
"timeslider.version": "Bertsioa {{version}}",
|
||||
"timeslider.saved": "{{year}}ko {{month}}ren {{day}}an gordeta",
|
||||
"timeslider.dateformat": "{{year}}/{{month}}/{{day}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "Urtarrila",
|
||||
"timeslider.month.february": "Otsaila",
|
||||
"timeslider.month.march": "Martxoa",
|
||||
"timeslider.month.april": "Apirila",
|
||||
"timeslider.month.may": "Maiatza",
|
||||
"timeslider.month.june": "Ekaina",
|
||||
"timeslider.month.july": "Uztaila",
|
||||
"timeslider.month.august": "Abuztua",
|
||||
"timeslider.month.september": "Iraila",
|
||||
"timeslider.month.october": "Urria",
|
||||
"timeslider.month.november": "Azaroa",
|
||||
"timeslider.month.december": "Abendua",
|
||||
"timeslider.unnamedauthors": "{{num}} izenik gabeko egileak",
|
||||
"pad.savedrevs.marked": "Berrikuspen hau markatua dago gordetako berrikuspen gisa",
|
||||
"pad.userlist.entername": "Sartu zure erabiltzaile izena",
|
||||
"pad.userlist.unnamed": "izenik gabe",
|
||||
"pad.userlist.guest": "Gonbidatua",
|
||||
"pad.userlist.deny": "Ukatu",
|
||||
"pad.userlist.approve": "Onartu",
|
||||
"pad.editbar.clearcolors": "Ezabatu egile koloreak dokumentu osoan?",
|
||||
"pad.impexp.importbutton": "Inportatu orain",
|
||||
"pad.impexp.importing": "Inportatzen...",
|
||||
"pad.impexp.confirmimport": "Fitxategi bat inportatzen baduzu oraingo pad honen testua ezabatuko da. Ziur zaude jarraitu nahi duzula?",
|
||||
"pad.impexp.convertFailed": "Ez gara gai fitxategi hau inportatzeko. Erabil ezazu, mesedez, beste dokumentu formatu bat edo kopiatu eta itsasi eskuz.",
|
||||
"pad.impexp.uploadFailed": "Igotzean akatsa egon da, saia zaitez berriro",
|
||||
"pad.impexp.importfailed": "Inportazioak akatsa egin du",
|
||||
"pad.impexp.copypaste": "Mesedez kopiatu eta pegatu",
|
||||
"pad.impexp.exportdisabled": "{{type}} formatuarekin esportatzea desgaituta dago. Kontakta ezazu administratzailea detaile gehiagorako."
|
||||
}
|
127
sources/src/locales/fa.json
Normal file
127
sources/src/locales/fa.json
Normal file
|
@ -0,0 +1,127 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": {
|
||||
"0": "BMRG14",
|
||||
"1": "Dalba",
|
||||
"2": "Ebraminio",
|
||||
"3": "Reza1615",
|
||||
"5": "ZxxZxxZ",
|
||||
"6": "\u0627\u0644\u0646\u0627\u0632"
|
||||
}
|
||||
},
|
||||
"index.newPad": "\u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062a\u0627\u0632\u0647",
|
||||
"index.createOpenPad": "\u06cc\u0627 \u0627\u06cc\u062c\u0627\u062f/\u0628\u0627\u0632\u06a9\u0631\u062f\u0646 \u06cc\u06a9 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0628\u0627 \u0646\u0627\u0645:",
|
||||
"pad.toolbar.bold.title": "\u067e\u0631\u0631\u0646\u06af (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "\u06a9\u062c (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "\u0632\u06cc\u0631\u062e\u0637 (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "\u062e\u0637 \u062e\u0648\u0631\u062f\u0647",
|
||||
"pad.toolbar.ol.title": "\u0641\u0647\u0631\u0633\u062a \u0645\u0631\u062a\u0628 \u0634\u062f\u0647",
|
||||
"pad.toolbar.ul.title": "\u0641\u0647\u0631\u0633\u062a \u0645\u0631\u062a\u0628 \u0646\u0634\u062f\u0647",
|
||||
"pad.toolbar.indent.title": "\u062a\u0648\u0631\u0641\u062a\u06af\u06cc",
|
||||
"pad.toolbar.unindent.title": "\u0628\u06cc\u0631\u0648\u0646 \u0631\u0641\u062a\u06af\u06cc",
|
||||
"pad.toolbar.undo.title": "\u0628\u0627\u0637\u0644\u200c\u06a9\u0631\u062f\u0646 (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "\u0627\u0632 \u0646\u0648 (Ctrl-Y)",
|
||||
"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.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.settings.title": "\u062a\u0646\u0638\u06cc\u0645\u0627\u062a",
|
||||
"pad.toolbar.embed.title": "\u0627\u0634\u062a\u0631\u0627\u06a9 \u0648 \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.colorpicker.save": "\u0630\u062e\u06cc\u0631\u0647",
|
||||
"pad.colorpicker.cancel": "\u0644\u063a\u0648",
|
||||
"pad.loading": "\u062f\u0631 \u062d\u0627\u0644 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc...",
|
||||
"pad.passwordRequired": "\u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0627\u06cc\u0646 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0646\u06cc\u0627\u0632 \u0628\u0647 \u06cc\u06a9 \u06af\u0630\u0631\u0648\u0627\u0698\u0647 \u062f\u0627\u0631\u06cc\u062f",
|
||||
"pad.permissionDenied": "\u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647\u200c\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0627\u06cc\u0646 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0631\u0627 \u0646\u062f\u0627\u0631\u06cc\u062f",
|
||||
"pad.wrongPassword": "\u06af\u0630\u0631\u0648\u0627\u0698\u0647\u200c\u06cc \u0634\u0645\u0627 \u062f\u0631\u0633\u062a \u0646\u06cc\u0633\u062a",
|
||||
"pad.settings.padSettings": "\u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a",
|
||||
"pad.settings.myView": "\u0646\u0645\u0627\u06cc \u0645\u0646",
|
||||
"pad.settings.stickychat": "\u06af\u0641\u062a\u06af\u0648 \u0647\u0645\u06cc\u0634\u0647 \u0631\u0648\u06cc \u0635\u0641\u062d\u0647 \u0646\u0645\u0627\u06cc\u0634 \u0628\u0627\u0634\u062f",
|
||||
"pad.settings.colorcheck": "\u0631\u0646\u06af\u200c\u0647\u0627\u06cc \u0646\u0648\u06cc\u0633\u0646\u062f\u06af\u06cc",
|
||||
"pad.settings.linenocheck": "\u0634\u0645\u0627\u0631\u0647\u200c\u06cc \u062e\u0637\u0648\u0637",
|
||||
"pad.settings.rtlcheck": "\u062e\u0648\u0627\u0646\u062f\u0646 \u0645\u062d\u062a\u0648\u0627 \u0627\u0632 \u0631\u0627\u0633\u062a \u0628\u0647 \u0686\u067e\u061f",
|
||||
"pad.settings.fontType": "\u0646\u0648\u0639 \u0642\u0644\u0645:",
|
||||
"pad.settings.fontType.normal": "\u0633\u0627\u062f\u0647",
|
||||
"pad.settings.fontType.monospaced": "Monospace",
|
||||
"pad.settings.globalView": "\u0646\u0645\u0627\u06cc \u0633\u0631\u0627\u0633\u0631\u06cc",
|
||||
"pad.settings.language": "\u0632\u0628\u0627\u0646:",
|
||||
"pad.importExport.import_export": "\u062f\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc/\u0628\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc",
|
||||
"pad.importExport.import": "\u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u067e\u0631\u0648\u0646\u062f\u0647\u200c\u06cc \u0645\u062a\u0646\u06cc \u06cc\u0627 \u0633\u0646\u062f",
|
||||
"pad.importExport.importSuccessful": "\u0645\u0648\u0641\u0642\u06cc\u062a \u0622\u0645\u06cc\u0632 \u0628\u0648\u062f!",
|
||||
"pad.importExport.export": "\u0628\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc \u0627\u06cc\u0646 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0628\u0627 \u0642\u0627\u0644\u0628:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "\u0645\u062a\u0646 \u0633\u0627\u062f\u0647",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (\u0642\u0627\u0644\u0628 \u0633\u0646\u062f \u0628\u0627\u0632)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "\u0634\u0645\u0627 \u062a\u0646\u0647\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0642\u0627\u0644\u0628 \u0645\u062a\u0646 \u0633\u0627\u062f\u0647 \u06cc\u0627 \u0627\u0686\u200c\u062a\u06cc\u200c\u0627\u0645\u200c\u0627\u0644 \u062f\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc \u06a9\u0646\u06cc\u062f. \u0628\u0631\u0627\u06cc \u0628\u06cc\u0634\u062a\u0631 \u0634\u062f\u0646 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u062f\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003EAbiWord\u003C/a\u003E \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f.",
|
||||
"pad.modals.connected": "\u0645\u062a\u0635\u0644 \u0634\u062f.",
|
||||
"pad.modals.reconnecting": "\u062f\u0631 \u062d\u0627\u0644 \u0627\u062a\u0635\u0627\u0644 \u062f\u0648\u0628\u0627\u0631\u0647 \u0628\u0647 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0634\u0645\u0627..",
|
||||
"pad.modals.forcereconnect": "\u0648\u0627\u062f\u0627\u0634\u062a\u0646 \u0628\u0647 \u0627\u062a\u0635\u0627\u0644 \u062f\u0648\u0628\u0627\u0631\u0647",
|
||||
"pad.modals.userdup": "\u062f\u0631 \u067e\u0646\u062c\u0631\u0647\u200c\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0628\u0627\u0632 \u0634\u062f",
|
||||
"pad.modals.userdup.explanation": "\u06af\u0645\u0627\u0646 \u0645\u06cc\u200c\u0631\u0648\u062f \u0627\u06cc\u0646 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0631 \u0628\u06cc\u0634 \u0627\u0632 \u06cc\u06a9 \u067e\u0646\u062c\u0631\u0647\u200c\u06cc \u0645\u0631\u0648\u0631\u06af\u0631 \u0628\u0627\u0632 \u0634\u062f\u0647\u200c\u0627\u0633\u062a.",
|
||||
"pad.modals.userdup.advice": "\u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u06cc\u0646 \u067e\u0646\u062c\u0631\u0647 \u062f\u0648\u0628\u0627\u0631\u0647 \u0648\u0635\u0644 \u0634\u0648\u06cc\u062f.",
|
||||
"pad.modals.unauth": "\u0645\u062c\u0627\u0632 \u0646\u06cc\u0633\u062a",
|
||||
"pad.modals.unauth.explanation": "\u062f\u0633\u062a\u0631\u0633\u06cc \u0634\u0645\u0627 \u062f\u0631 \u062d\u06cc\u0646 \u0645\u0634\u0627\u0647\u062f\u0647\u200c\u06cc \u0627\u06cc\u0646 \u0628\u0631\u06af\u0647 \u062a\u063a\u06cc\u06cc\u0631 \u06cc\u0627\u0641\u062a\u0647\u200c\u0627\u0633\u062a. \u062f\u0648\u0628\u0627\u0631\u0647 \u0645\u062a\u0635\u0644 \u0634\u0648\u06cc\u062f.",
|
||||
"pad.modals.looping.explanation": "\u0645\u0634\u06a9\u0644\u0627\u062a\u06cc \u0627\u0631\u062a\u0628\u0627\u0637\u06cc \u0628\u0627 \u0633\u0631\u0648\u0631 \u0647\u0645\u06af\u0627\u0645\u200c\u0633\u0627\u0632\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f.",
|
||||
"pad.modals.looping.cause": "\u0634\u0627\u06cc\u062f \u0634\u0645\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u06cc\u06a9 \u0641\u0627\u06cc\u0631\u0648\u0627\u0644 \u06cc\u0627 \u067e\u0631\u0648\u06a9\u0633\u06cc \u0646\u0627\u0633\u0627\u0632\u06af\u0627\u0631 \u0645\u062a\u0635\u0644 \u0634\u062f\u0647\u200c\u0627\u06cc\u062f.",
|
||||
"pad.modals.initsocketfail": "\u0633\u0631\u0648\u0631 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0646\u06cc\u0633\u062a.",
|
||||
"pad.modals.initsocketfail.explanation": "\u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0628\u0647 \u0633\u0631\u0648\u0631 \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u0648\u0635\u0644 \u0634\u062f.",
|
||||
"pad.modals.initsocketfail.cause": "\u0634\u0627\u06cc\u062f \u0627\u06cc\u0646 \u0628\u0647 \u062e\u0627\u0637\u0631 \u0645\u0634\u06a9\u0644\u06cc \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u06cc\u0627 \u0627\u062a\u0635\u0627\u0644 \u0627\u06cc\u0646\u062a\u0631\u0646\u062a\u06cc \u0634\u0645\u0627 \u0628\u0627\u0634\u062f.",
|
||||
"pad.modals.slowcommit.explanation": "\u0633\u0631\u0648\u0631 \u067e\u0627\u0633\u062e \u0646\u0645\u06cc\u200c\u062f\u0647\u062f.",
|
||||
"pad.modals.slowcommit.cause": "\u0627\u06cc\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u062e\u0627\u0637\u0631 \u0645\u0634\u06a9\u0644\u0627\u062a\u06cc \u062f\u0631 \u0627\u062a\u0635\u0627\u0644 \u0628\u0647 \u0634\u0628\u06a9\u0647 \u0628\u0627\u0634\u062f.",
|
||||
"pad.modals.badChangeset.explanation": "\u0648\u06cc\u0631\u0627\u06cc\u0634\u06cc \u06a9\u0647 \u0634\u0645\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u0647\u200c\u0627\u06cc\u062f \u062a\u0648\u0633\u0637 \u0633\u0631\u0648\u0631 \u0647\u0645\u06af\u0627\u0645\u200c\u0633\u0627\u0632\u06cc \u0646\u0627\u062f\u0631\u0633\u062a \u0637\u06cc\u0642\u0647\u200c\u0628\u0646\u062f\u06cc \u0634\u062f\u0647\u200c\u0627\u0633\u062a.",
|
||||
"pad.modals.badChangeset.cause": "\u0627\u06cc\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u062f\u0644\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0634\u062a\u0628\u0627\u0647 \u06cc\u0627 \u0633\u0627\u06cc\u0631 \u0631\u0641\u062a\u0627\u0631\u0647\u0627\u06cc \u063a\u06cc\u0631\u0645\u0646\u062a\u0638\u0631\u0647 \u0628\u0627\u0634\u062f. \u0627\u06af\u0631 \u0641\u06a9\u0631 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u0627\u06cc\u0646 \u06cc\u06a9 \u062e\u0637\u0627 \u0627\u0633\u062a \u0644\u0637\u0641\u0627\u064b \u0628\u0627 \u0645\u062f\u06cc\u0631 \u062e\u062f\u0645\u062a \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u062f. \u0628\u0631\u0627\u06cc \u0627\u062f\u0627\u0645\u0647\u0654 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0633\u0639\u06cc \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u062f\u0648\u0628\u0627\u0631\u0647 \u0645\u062a\u0635\u0644 \u0634\u0648\u06cc\u062f.",
|
||||
"pad.modals.corruptPad.explanation": "\u067e\u062f\u06cc \u06a9\u0647 \u0634\u0645\u0627 \u0633\u0639\u06cc \u062f\u0627\u0631\u06cc\u062f \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f \u062e\u0631\u0627\u0628 \u0627\u0633\u062a.",
|
||||
"pad.modals.corruptPad.cause": "\u0627\u06cc\u0646 \u0627\u062d\u062a\u0645\u0627\u0644\u0627\u064b \u0628\u0647 \u062f\u0644\u06cc\u0644 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0627\u0634\u062a\u0628\u0627\u0647 \u06a9\u0627\u0631\u0633\u0627\u0632 \u06cc\u0627 \u0633\u0627\u06cc\u0631 \u0631\u0641\u062a\u0627\u0631\u0647\u0627\u06cc \u063a\u06cc\u0631\u0645\u0646\u062a\u0638\u0631\u0647 \u0627\u0633\u062a. \u0644\u0637\u0641\u0627\u064b \u0628\u0627 \u0645\u062f\u06cc\u0631 \u062e\u062f\u0645\u062a \u062a\u0645\u0627\u0633 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f.",
|
||||
"pad.modals.deleted": "\u067e\u0627\u06a9 \u0634\u062f.",
|
||||
"pad.modals.deleted.explanation": "\u0627\u06cc\u0646 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u067e\u0627\u06a9 \u0634\u062f\u0647\u200c\u0627\u0633\u062a.",
|
||||
"pad.modals.disconnected": "\u0627\u062a\u0635\u0627\u0644 \u0634\u0645\u0627 \u0642\u0637\u0639 \u0634\u062f\u0647\u200c\u0627\u0633\u062a.",
|
||||
"pad.modals.disconnected.explanation": "\u0627\u062a\u0635\u0627\u0644 \u0628\u0647 \u0633\u0631\u0648\u0631 \u0642\u0637\u0639 \u0634\u062f\u0647\u200c\u0627\u0633\u062a.",
|
||||
"pad.modals.disconnected.cause": "\u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0633\u0631\u0648\u0631 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0646\u0628\u0627\u0634\u062f. \u0627\u06af\u0631 \u0627\u06cc\u0646 \u0645\u0634\u06a9\u0644 \u0628\u0627\u0632 \u0647\u0645 \u0631\u062e \u062f\u0627\u062f \u0645\u062f\u06cc\u0631 \u062d\u062f\u0645\u062a \u0631\u0627 \u0622\u06af\u0627\u0647 \u06a9\u0646\u06cc\u062f.",
|
||||
"pad.share": "\u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc \u0627\u06cc\u0646 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a",
|
||||
"pad.share.readonly": "\u0641\u0642\u0637 \u062e\u0648\u0627\u0646\u062f\u0646\u06cc",
|
||||
"pad.share.link": "\u067e\u06cc\u0648\u0646\u062f",
|
||||
"pad.share.emebdcode": "\u062c\u0627\u0633\u0627\u0632\u06cc \u0646\u0634\u0627\u0646\u06cc",
|
||||
"pad.chat": "\u06af\u0641\u062a\u06af\u0648",
|
||||
"pad.chat.title": "\u0628\u0627\u0632\u06a9\u0631\u062f\u0646 \u06af\u0641\u062a\u06af\u0648 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a",
|
||||
"pad.chat.loadmessages": "\u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u067e\u06cc\u0627\u0645\u200c\u0647\u0627\u06cc \u0628\u06cc\u0634\u062a\u0631",
|
||||
"timeslider.pageTitle": "\u0627\u0633\u0644\u0627\u06cc\u062f\u0631 \u0632\u0645\u0627\u0646 {{appTitle}}",
|
||||
"timeslider.toolbar.returnbutton": "\u0628\u0627\u0632\u06af\u0634\u062a \u0628\u0647 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a",
|
||||
"timeslider.toolbar.authors": "\u0646\u0648\u06cc\u0633\u0646\u062f\u06af\u0627\u0646:",
|
||||
"timeslider.toolbar.authorsList": "\u0628\u062f\u0648\u0646 \u0646\u0648\u06cc\u0633\u0646\u062f\u0647",
|
||||
"timeslider.toolbar.exportlink.title": "\u0628\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc",
|
||||
"timeslider.exportCurrent": "\u0628\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc \u0646\u06af\u0627\u0631\u0634 \u06a9\u0646\u0648\u0646\u06cc \u0628\u0647 \u0639\u0646\u0648\u0627\u0646:",
|
||||
"timeslider.version": "\u0646\u06af\u0627\u0631\u0634 {{version}}",
|
||||
"timeslider.saved": "{{month}} {{day}}\u060c {{year}} \u0630\u062e\u06cc\u0631\u0647 \u0634\u062f",
|
||||
"timeslider.dateformat": "{{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "\u0698\u0627\u0646\u0648\u06cc\u0647",
|
||||
"timeslider.month.february": "\u0641\u0628\u0631\u06cc\u0647",
|
||||
"timeslider.month.march": "\u0645\u0627\u0631\u0686",
|
||||
"timeslider.month.april": "\u0622\u067e\u0631\u06cc\u0644",
|
||||
"timeslider.month.may": "\u0645\u06cc",
|
||||
"timeslider.month.june": "\u0698\u0648\u0626\u0646",
|
||||
"timeslider.month.july": "\u062c\u0648\u0644\u0627\u06cc",
|
||||
"timeslider.month.august": "\u0622\u06af\u0648\u0633\u062a",
|
||||
"timeslider.month.september": "\u0633\u067e\u062a\u0627\u0645\u0628\u0631",
|
||||
"timeslider.month.october": "\u0627\u06a9\u062a\u0628\u0631",
|
||||
"timeslider.month.november": "\u0646\u0648\u0627\u0645\u0628\u0631",
|
||||
"timeslider.month.december": "\u062f\u0633\u0627\u0645\u0628\u0631",
|
||||
"timeslider.unnamedauthors": "{{num}} \u0646\u0648\u06cc\u0633\u0646\u062f\u0647\u0654 \u0628\u06cc\u200c\u0646\u0627\u0645",
|
||||
"pad.savedrevs.marked": "\u0627\u06cc\u0646 \u0628\u0627\u0632\u0646\u0648\u06cc\u0633\u06cc \u0647\u0645 \u0627\u06a9\u0646\u0648\u0646 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0630\u062e\u06cc\u0631\u0647 \u0634\u062f\u0647 \u0639\u0644\u0627\u0645\u062a\u200c\u06af\u0630\u0627\u0631\u06cc \u0634\u062f",
|
||||
"pad.userlist.entername": "\u0646\u0627\u0645 \u062e\u0648\u062f \u0631\u0627 \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f",
|
||||
"pad.userlist.unnamed": "\u0628\u062f\u0648\u0646 \u0646\u0627\u0645",
|
||||
"pad.userlist.guest": "\u0645\u0647\u0645\u0627\u0646",
|
||||
"pad.userlist.deny": "\u0631\u062f \u06a9\u0631\u062f\u0646",
|
||||
"pad.userlist.approve": "\u067e\u0630\u06cc\u0631\u0641\u062a\u0646",
|
||||
"pad.editbar.clearcolors": "\u0631\u0646\u06af \u0646\u0648\u06cc\u0633\u0646\u062f\u06af\u06cc \u0627\u0632 \u0647\u0645\u0647\u200c\u06cc \u0633\u0646\u062f \u067e\u0627\u06a9 \u0634\u0648\u062f\u061f",
|
||||
"pad.impexp.importbutton": "\u0647\u0645 \u0627\u06a9\u0646\u0648\u0646 \u062f\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc \u06a9\u0646",
|
||||
"pad.impexp.importing": "\u062f\u0631 \u062d\u0627\u0644 \u062f\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc...",
|
||||
"pad.impexp.confirmimport": "\u0628\u0627 \u062f\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0646\u0648\u0634\u062a\u0647\u200c\u06cc \u06a9\u0646\u0648\u0646\u06cc \u062f\u0641\u062a\u0631\u0686\u0647 \u067e\u0627\u06a9 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0622\u06cc\u0627 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u062f\u0627\u0645\u0647 \u062f\u0647\u06cc\u062f\u061f",
|
||||
"pad.impexp.convertFailed": "\u0645\u0627 \u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u062f\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc \u06a9\u0646\u06cc\u0645. \u062e\u0648\u0627\u0647\u0634\u0645\u0646\u062f\u06cc\u0645 \u0642\u0627\u0644\u0628 \u062f\u06cc\u06af\u0631\u06cc \u0628\u0631\u0627\u06cc \u0633\u0646\u062f\u062a\u0627\u0646 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u062f\u0647 \u06cc\u0627 \u0628\u0635\u0648\u0631\u062a \u062f\u0633\u062a\u06cc \u0622\u0646\u0631\u0627 \u06a9\u067e\u06cc \u06a9\u0646\u06cc\u062f",
|
||||
"pad.impexp.uploadFailed": "\u0622\u067e\u0644\u0648\u062f \u0627\u0646\u062c\u0627\u0645 \u0646\u0634\u062f\u060c \u062f\u0648\u0628\u0627\u0631\u0647 \u062a\u0644\u0627\u0634 \u06a9\u0646\u06cc\u062f",
|
||||
"pad.impexp.importfailed": "\u062f\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc \u0627\u0646\u062c\u0627\u0645 \u0646\u0634\u062f",
|
||||
"pad.impexp.copypaste": "\u06a9\u067e\u06cc \u067e\u06cc\u0633\u062a \u06a9\u0646\u06cc\u062f",
|
||||
"pad.impexp.exportdisabled": "\u0628\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc \u0628\u0627 \u0642\u0627\u0644\u0628 {{type}} \u0627\u0632 \u06a9\u0627\u0631 \u0627\u0641\u062a\u0627\u062f\u0647 \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u062c\u0632\u0626\u06cc\u0627\u062a \u0628\u06cc\u0634\u062a\u0631 \u0628\u0627 \u0645\u062f\u06cc\u0631 \u0633\u06cc\u0633\u062a\u0645\u062a\u0627\u0646 \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u062f."
|
||||
}
|
129
sources/src/locales/fi.json
Normal file
129
sources/src/locales/fi.json
Normal file
|
@ -0,0 +1,129 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": {
|
||||
"0": "Artnay",
|
||||
"1": "Jl",
|
||||
"2": "Lliehu",
|
||||
"3": "Nedergard",
|
||||
"4": "Nike",
|
||||
"6": "Stryn",
|
||||
"7": "Veikk0.ma",
|
||||
"8": "VezonThunder"
|
||||
}
|
||||
},
|
||||
"index.newPad": "Uusi muistio",
|
||||
"index.createOpenPad": "tai luo tai avaa muistio nimell\u00e4:",
|
||||
"pad.toolbar.bold.title": "Lihavointi (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "Kursivointi (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "Alleviivaus (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "Yliviivaus",
|
||||
"pad.toolbar.ol.title": "Numeroitu lista",
|
||||
"pad.toolbar.ul.title": "Numeroimaton lista",
|
||||
"pad.toolbar.indent.title": "Sisenn\u00e4",
|
||||
"pad.toolbar.unindent.title": "Ulonna",
|
||||
"pad.toolbar.undo.title": "Kumoa (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "Tee uudelleen (Ctrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "Poista kirjoittajav\u00e4rit",
|
||||
"pad.toolbar.import_export.title": "Tuo tai vie eri tiedostomuodoista tai -muotoihin",
|
||||
"pad.toolbar.timeslider.title": "Aikajana",
|
||||
"pad.toolbar.savedRevision.title": "Tallenna muutos",
|
||||
"pad.toolbar.settings.title": "Asetukset",
|
||||
"pad.toolbar.embed.title": "Jaa ja upota muistio",
|
||||
"pad.toolbar.showusers.title": "N\u00e4yt\u00e4 muistion k\u00e4ytt\u00e4j\u00e4t",
|
||||
"pad.colorpicker.save": "Tallenna",
|
||||
"pad.colorpicker.cancel": "Peruuta",
|
||||
"pad.loading": "Ladataan\u2026",
|
||||
"pad.passwordRequired": "T\u00e4m\u00e4 muistio on suojattu salasanalla.",
|
||||
"pad.permissionDenied": "K\u00e4ytt\u00f6oikeutesi eiv\u00e4t riit\u00e4 t\u00e4m\u00e4n muistion k\u00e4ytt\u00e4miseen.",
|
||||
"pad.wrongPassword": "V\u00e4\u00e4r\u00e4 salasana",
|
||||
"pad.settings.padSettings": "Muistion asetukset",
|
||||
"pad.settings.myView": "Oma n\u00e4kym\u00e4",
|
||||
"pad.settings.stickychat": "Keskustelu aina n\u00e4kyviss\u00e4",
|
||||
"pad.settings.colorcheck": "Kirjoittajav\u00e4rit",
|
||||
"pad.settings.linenocheck": "Rivinumerot",
|
||||
"pad.settings.rtlcheck": "Luetaanko sis\u00e4lt\u00f6 oikealta vasemmalle?",
|
||||
"pad.settings.fontType": "Kirjasintyyppi:",
|
||||
"pad.settings.fontType.normal": "normaali",
|
||||
"pad.settings.fontType.monospaced": "tasalevyinen",
|
||||
"pad.settings.globalView": "Yleisn\u00e4kym\u00e4",
|
||||
"pad.settings.language": "Kieli:",
|
||||
"pad.importExport.import_export": "Tuonti/vienti",
|
||||
"pad.importExport.import": "L\u00e4het\u00e4 mik\u00e4 tahansa tekstitiedosto tai asiakirja",
|
||||
"pad.importExport.importSuccessful": "Onnistui!",
|
||||
"pad.importExport.export": "Vie muistio muodossa:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Muotoilematon teksti",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "Tuonti on tuettu vain HTML- ja raakatekstitiedostoista. Lis\u00e4tietoja tuonnin lis\u00e4asetuksista on sivulla \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003Einstall abiword\u003C/a\u003E.",
|
||||
"pad.modals.connected": "Yhdistetty.",
|
||||
"pad.modals.reconnecting": "Muodostetaan yhteytt\u00e4 muistioon uudelleen...",
|
||||
"pad.modals.forcereconnect": "Pakota yhdist\u00e4m\u00e4\u00e4n uudelleen",
|
||||
"pad.modals.userdup": "Avattu toisessa ikkunassa",
|
||||
"pad.modals.userdup.explanation": "T\u00e4m\u00e4 muistio vaikuttaa olevan avoinna useammassa eri selainikkunassa t\u00e4ll\u00e4 koneella.",
|
||||
"pad.modals.userdup.advice": "Yhdist\u00e4 uudelleen, jos haluat k\u00e4ytt\u00e4\u00e4 t\u00e4t\u00e4 ikkunaa.",
|
||||
"pad.modals.unauth": "Oikeudet eiv\u00e4t riit\u00e4",
|
||||
"pad.modals.unauth.explanation": "K\u00e4ytt\u00f6oikeutesi ovat muuttuneet katsellessasi t\u00e4t\u00e4 sivua. Yrit\u00e4 yhdist\u00e4\u00e4 uudelleen.",
|
||||
"pad.modals.looping.explanation": "Synkronointipalvelimen kanssa on yhteysongelmia.",
|
||||
"pad.modals.looping.cause": "Yhteytesi on mahdollisesti muodostettu yhteensopimattoman palomuurin tai v\u00e4lityspalvelimen kautta.",
|
||||
"pad.modals.initsocketfail": "Palvelimeen ei saada yhteytt\u00e4.",
|
||||
"pad.modals.initsocketfail.explanation": "Synkronointipalvelimeen ei saatu yhteytt\u00e4.",
|
||||
"pad.modals.initsocketfail.cause": "T\u00e4m\u00e4 johtuu mit\u00e4 luultavimmin selaimestasi tai verkkoyhteydest\u00e4si.",
|
||||
"pad.modals.slowcommit.explanation": "Palvelin ei vastaa.",
|
||||
"pad.modals.slowcommit.cause": "T\u00e4m\u00e4 saattaa johtua verkkoyhteyden ongelmista.",
|
||||
"pad.modals.badChangeset.explanation": "Tekem\u00e4si muutos m\u00e4\u00e4ritettiin s\u00e4\u00e4nt\u00f6jen vastaiseksi synkronointipalvelimen toimesta.",
|
||||
"pad.modals.badChangeset.cause": "T\u00e4m\u00e4 saattaa johtua virheellisist\u00e4 palvelinm\u00e4\u00e4rityksist\u00e4 tai muusta odottamattomasta toiminnasta. Ota yhteys palvelun yll\u00e4pit\u00e4j\u00e4\u00e4n, jos kyseess\u00e4 on mielest\u00e4si virhe. Yrit\u00e4 jatkaa muokkausta yhdist\u00e4m\u00e4ll\u00e4 uudelleen.",
|
||||
"pad.modals.corruptPad.explanation": "Muistio jota yrit\u00e4t avata on vioittunut.",
|
||||
"pad.modals.corruptPad.cause": "T\u00e4m\u00e4 saattaa johtua virheellisist\u00e4 palvelinm\u00e4\u00e4rityksist\u00e4 tai muusta odottamattomasta toiminnasta. Ota yhteys palvelun yll\u00e4pit\u00e4j\u00e4\u00e4n.",
|
||||
"pad.modals.deleted": "Poistettu.",
|
||||
"pad.modals.deleted.explanation": "T\u00e4m\u00e4 muistio on poistettu.",
|
||||
"pad.modals.disconnected": "Yhteytesi on katkaistu.",
|
||||
"pad.modals.disconnected.explanation": "Yhteys palvelimeen katkesi",
|
||||
"pad.modals.disconnected.cause": "Palvelin saattaa olla tavoittamattomissa. Ilmoita palvelun yll\u00e4pit\u00e4j\u00e4lle, jos tilanne toistuu usein.",
|
||||
"pad.share": "Jaa muistio",
|
||||
"pad.share.readonly": "Vain luku",
|
||||
"pad.share.link": "Linkki",
|
||||
"pad.share.emebdcode": "Upotusosoite",
|
||||
"pad.chat": "Keskustelu",
|
||||
"pad.chat.title": "Avaa keskustelu nykyisest\u00e4 muistiosta.",
|
||||
"pad.chat.loadmessages": "Lataa lis\u00e4\u00e4 viestej\u00e4",
|
||||
"timeslider.pageTitle": "{{appTitle}} -aikajana",
|
||||
"timeslider.toolbar.returnbutton": "Palaa muistioon",
|
||||
"timeslider.toolbar.authors": "Tekij\u00e4t:",
|
||||
"timeslider.toolbar.authorsList": "Ei tekij\u00f6it\u00e4",
|
||||
"timeslider.toolbar.exportlink.title": "Vie",
|
||||
"timeslider.exportCurrent": "Vie nykyinen versio muodossa:",
|
||||
"timeslider.version": "Versio {{version}}",
|
||||
"timeslider.saved": "Tallennettu {{day}}. {{month}}ta {{year}}",
|
||||
"timeslider.dateformat": "{{day}}.{{month}}.{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "tammikuu",
|
||||
"timeslider.month.february": "helmikuu",
|
||||
"timeslider.month.march": "maaliskuu",
|
||||
"timeslider.month.april": "huhtikuu",
|
||||
"timeslider.month.may": "toukokuu",
|
||||
"timeslider.month.june": "kes\u00e4kuu",
|
||||
"timeslider.month.july": "hein\u00e4kuu",
|
||||
"timeslider.month.august": "elokuu",
|
||||
"timeslider.month.september": "syyskuu",
|
||||
"timeslider.month.october": "lokakuu",
|
||||
"timeslider.month.november": "marraskuu",
|
||||
"timeslider.month.december": "joulukuu",
|
||||
"timeslider.unnamedauthors": "{{num}} {[plural(num) one: nimet\u00f6n tekij\u00e4, other: nimet\u00f6nt\u00e4 tekij\u00e4\u00e4 ]}",
|
||||
"pad.savedrevs.marked": "T\u00e4m\u00e4 versio on nyt merkitty tallennetuksi versioksi",
|
||||
"pad.userlist.entername": "Kirjoita nimesi",
|
||||
"pad.userlist.unnamed": "nimet\u00f6n",
|
||||
"pad.userlist.guest": "Vieras",
|
||||
"pad.userlist.deny": "Est\u00e4",
|
||||
"pad.userlist.approve": "Hyv\u00e4ksy",
|
||||
"pad.editbar.clearcolors": "Poistetaanko asiakirjasta tekij\u00e4v\u00e4rit?",
|
||||
"pad.impexp.importbutton": "Tuo nyt",
|
||||
"pad.impexp.importing": "Tuodaan...",
|
||||
"pad.impexp.confirmimport": "Tiedoston tuonti korvaa kaiken muistiossa olevan tekstin. Haluatko varmasti jatkaa?",
|
||||
"pad.impexp.convertFailed": "TIedoston tuonti ep\u00e4onnistui. K\u00e4yt\u00e4 eri tiedostomuotoa tai kopioi ja liit\u00e4 k\u00e4sin.",
|
||||
"pad.impexp.uploadFailed": "L\u00e4hetys ep\u00e4onnistui. Yrit\u00e4 uudelleen.",
|
||||
"pad.impexp.importfailed": "Tuonti ep\u00e4onnistui",
|
||||
"pad.impexp.copypaste": "Kopioi ja liit\u00e4",
|
||||
"pad.impexp.exportdisabled": "Vienti muotoon \"{{type}}\" ei ole k\u00e4yt\u00f6ss\u00e4. Ota yhteys yll\u00e4pit\u00e4j\u00e4\u00e4n saadaksesi lis\u00e4tietoja."
|
||||
}
|
94
sources/src/locales/fo.json
Normal file
94
sources/src/locales/fo.json
Normal file
|
@ -0,0 +1,94 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"EileenSanda"
|
||||
]
|
||||
},
|
||||
"index.newPad": "N\u00fdggjur teldil",
|
||||
"pad.toolbar.bold.title": "Vi\u00f0 feitum (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "Skr\u00e1skrift (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "Undirstrika\u00f0 (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "Gj\u00f8gnumstrika\u00f0",
|
||||
"pad.toolbar.ol.title": "B\u00edleggingarlisti",
|
||||
"pad.toolbar.undo.title": "Angra (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "Ger umaftur (Ctrl-Y)",
|
||||
"pad.toolbar.import_export.title": "Innflyt/\u00datflyt fr\u00e1/til ymiskar f\u00edlust\u00f8ddir",
|
||||
"pad.toolbar.savedRevision.title": "Goym Endursko\u00f0an",
|
||||
"pad.toolbar.settings.title": "Innstillingar",
|
||||
"pad.toolbar.embed.title": "Deil og Innset henda pad'in",
|
||||
"pad.toolbar.showusers.title": "V\u00eds br\u00fakarar \u00e1 hesum paddi",
|
||||
"pad.colorpicker.save": "Goym",
|
||||
"pad.colorpicker.cancel": "\u00d3gilda",
|
||||
"pad.loading": "L\u00f8\u00f0ir...",
|
||||
"pad.passwordRequired": "T\u00fa hevur br\u00fak fyri einum loynior\u00f0i fyri at f\u00e1a atgongd til henda paddin",
|
||||
"pad.permissionDenied": "T\u00fa hevur ikki loyvi til at f\u00e1a atgongd til henda paddin",
|
||||
"pad.wrongPassword": "T\u00edtt loynior\u00f0 var skeivt",
|
||||
"pad.settings.padSettings": "Pad innstillingar",
|
||||
"pad.settings.myView": "M\u00edn s\u00fdning",
|
||||
"pad.settings.stickychat": "Kjatta alt\u00ed\u00f0 \u00e1 skerminum",
|
||||
"pad.settings.colorcheck": "Litir hj\u00e1 rith\u00f8vundaskapinum",
|
||||
"pad.settings.linenocheck": "Linjunummur",
|
||||
"pad.settings.rtlcheck": "Vil t\u00fa lesa innihaldi\u00f0 fr\u00e1 h\u00f8gru til vinstu?",
|
||||
"pad.settings.fontType": "Skriftslag:",
|
||||
"pad.settings.fontType.normal": "Vanligt",
|
||||
"pad.settings.fontType.monospaced": "F\u00f8st breidd",
|
||||
"pad.settings.globalView": "Global s\u00fdning",
|
||||
"pad.settings.language": "M\u00e1l:",
|
||||
"pad.importExport.import_export": "Innflyt/\u00datflyt",
|
||||
"pad.importExport.import": "Legg \u00fat onkra tekstf\u00edlu ella dokument",
|
||||
"pad.importExport.importSuccessful": "Ta\u00f0 eydna\u00f0ist!",
|
||||
"pad.importExport.export": "\u00datflyt verandi pad sum:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Einfaldur tekstur",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Opi\u00f0 Dokument Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "T\u00fa kanst bert innflyta fr\u00e1 einf\u00f8ldum teksti ella html formatum. Fyri funksj\u00f3nir til innflytan fyri v\u00ed\u00f0arikomin vinarliga \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003Einstallera abiword\u003C/a\u003E.",
|
||||
"pad.modals.connected": "T\u00fa hevur samband.",
|
||||
"pad.modals.reconnecting": "Roynir aftur at f\u00e1a samband vi\u00f0 t\u00edn pad..",
|
||||
"pad.modals.forcereconnect": "Tvinga endurstovnan av sambandi.",
|
||||
"pad.modals.userdup": "Er lati\u00f0 upp \u00ed \u00f8\u00f0rum vindeyga",
|
||||
"pad.modals.userdup.explanation": "Ta\u00f0 s\u00e6r \u00fat til at hesin paddurin er latin upp \u00ed meira enn einum brovsara vindeyga \u00e1 hesari telduni.",
|
||||
"pad.modals.userdup.advice": "Endurstovna sambandi fyri at n\u00fdta hetta vindeyga \u00ed sta\u00f0in.",
|
||||
"pad.modals.unauth": "Er ikki loyvt",
|
||||
"pad.modals.unauth.explanation": "T\u00edni loyvi eru broytt, me\u00f0an t\u00fa hevur hugt at hesi s\u00ed\u00f0uni. Royn og endurstovna sambandi.",
|
||||
"pad.modals.initsocketfail": "Amb\u00e6tarin er \u00f3atkomuligur.",
|
||||
"pad.modals.initsocketfail.cause": "Hetta skyldast mest sannl\u00edkt ein trupulleika vi\u00f0 t\u00ednum kaga/brovsara ella vi\u00f0 t\u00ednum internetsambandi.",
|
||||
"pad.modals.slowcommit.explanation": "Amb\u00e6tarin (servarin) svarar ikki.",
|
||||
"pad.modals.slowcommit.cause": "Hetta kann skyldast trupulleikar vi\u00f0 netverkssambandinum.",
|
||||
"pad.modals.deleted": "Er strika\u00f0.",
|
||||
"pad.modals.deleted.explanation": "Hesin paddurin er fluttur.",
|
||||
"pad.modals.disconnected": "T\u00fa hevur mist sambandi.",
|
||||
"pad.modals.disconnected.explanation": "Sambandi\u00f0 til amb\u00e6tarin er avbroti\u00f0",
|
||||
"pad.share": "Deil henda paddin",
|
||||
"pad.share.readonly": "Vart fyri skriving",
|
||||
"pad.share.link": "Sl\u00f3\u00f0",
|
||||
"timeslider.toolbar.returnbutton": "Vend aftur til pad'in",
|
||||
"timeslider.toolbar.authors": "H\u00f8vundar:",
|
||||
"timeslider.toolbar.authorsList": "Ongir h\u00f8vundar",
|
||||
"timeslider.toolbar.exportlink.title": "\u00datflyt",
|
||||
"timeslider.exportCurrent": "\u00datflyt hesa versj\u00f3na sum:",
|
||||
"timeslider.version": "Versj\u00f3n {{version}}",
|
||||
"timeslider.saved": "Goymt {{month}} {{day}}, {{year}}",
|
||||
"timeslider.dateformat": "{{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "Januar",
|
||||
"timeslider.month.february": "Februar",
|
||||
"timeslider.month.march": "Mars",
|
||||
"timeslider.month.april": "Apr\u00edl",
|
||||
"timeslider.month.may": "Mai",
|
||||
"timeslider.month.june": "Juni",
|
||||
"timeslider.month.july": "Juli",
|
||||
"timeslider.month.august": "August",
|
||||
"timeslider.month.september": "September",
|
||||
"timeslider.month.october": "October",
|
||||
"timeslider.month.november": "November",
|
||||
"timeslider.month.december": "Desember",
|
||||
"timeslider.unnamedauthors": "{{num}} {[plural(num) one: \u00f3nevndur rith\u00f8vundur, other: \u00f3nevndir rith\u00f8vundar ]}",
|
||||
"pad.savedrevs.marked": "Henda endursko\u00f0anin er n\u00fa merkt sum ein goymd endursko\u00f0an",
|
||||
"pad.userlist.entername": "Skriva t\u00edtt navn",
|
||||
"pad.userlist.unnamed": "ikki-navngivi\u00f0",
|
||||
"pad.userlist.guest": "Gestur",
|
||||
"pad.userlist.deny": "Nokta",
|
||||
"pad.userlist.approve": "G\u00f3\u00f0kenn"
|
||||
}
|
136
sources/src/locales/fr.json
Normal file
136
sources/src/locales/fr.json
Normal file
|
@ -0,0 +1,136 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": {
|
||||
"0": "Cquoi",
|
||||
"1": "Crochet.david",
|
||||
"2": "Gomoko",
|
||||
"3": "Goofy",
|
||||
"4": "Goofy-bz",
|
||||
"5": "Jean-Fr\u00e9d\u00e9ric",
|
||||
"6": "Leviathan",
|
||||
"7": "McDutchie",
|
||||
"8": "Metroitendo",
|
||||
"9": "Od1n",
|
||||
"10": "Peter17",
|
||||
"11": "Quenenni",
|
||||
"12": "Rastus Vernon",
|
||||
"14": "Stephane Cottin",
|
||||
"15": "Tux-tn"
|
||||
}
|
||||
},
|
||||
"index.newPad": "Nouveau pad",
|
||||
"index.createOpenPad": "ou cr\u00e9er/ouvrir un pad intitul\u00e9 :",
|
||||
"pad.toolbar.bold.title": "Gras (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "Italique (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "Soulign\u00e9 (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "Barr\u00e9",
|
||||
"pad.toolbar.ol.title": "Liste ordonn\u00e9e",
|
||||
"pad.toolbar.ul.title": "Liste non ordonn\u00e9e",
|
||||
"pad.toolbar.indent.title": "Indenter",
|
||||
"pad.toolbar.unindent.title": "D\u00e9sindenter",
|
||||
"pad.toolbar.undo.title": "Annuler (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "R\u00e9tablir (Ctrl-Y)",
|
||||
"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.timeslider.title": "Historique dynamique",
|
||||
"pad.toolbar.savedRevision.title": "Enregistrer la r\u00e9vision",
|
||||
"pad.toolbar.settings.title": "Param\u00e8tres",
|
||||
"pad.toolbar.embed.title": "Partager et int\u00e9grer ce pad",
|
||||
"pad.toolbar.showusers.title": "Afficher les utilisateurs du pad",
|
||||
"pad.colorpicker.save": "Enregistrer",
|
||||
"pad.colorpicker.cancel": "Annuler",
|
||||
"pad.loading": "Chargement\u2026",
|
||||
"pad.passwordRequired": "Vous avez besoin d'un mot de passe pour acc\u00e9der \u00e0 ce pad",
|
||||
"pad.permissionDenied": "Il ne vous est pas permis d\u2019acc\u00e9der \u00e0 ce pad",
|
||||
"pad.wrongPassword": "Votre mot de passe est incorrect",
|
||||
"pad.settings.padSettings": "Param\u00e8tres du pad",
|
||||
"pad.settings.myView": "Ma vue",
|
||||
"pad.settings.stickychat": "Toujours afficher le chat",
|
||||
"pad.settings.colorcheck": "Couleurs d\u2019identification",
|
||||
"pad.settings.linenocheck": "Num\u00e9ros de lignes",
|
||||
"pad.settings.rtlcheck": "Lecture de droite \u00e0 gauche",
|
||||
"pad.settings.fontType": "Police :",
|
||||
"pad.settings.fontType.normal": "Normal",
|
||||
"pad.settings.fontType.monospaced": "Monospace",
|
||||
"pad.settings.globalView": "Vue d\u2019ensemble",
|
||||
"pad.settings.language": "Langue :",
|
||||
"pad.importExport.import_export": "Importer/Exporter",
|
||||
"pad.importExport.import": "Charger un texte ou un document",
|
||||
"pad.importExport.importSuccessful": "R\u00e9ussi!",
|
||||
"pad.importExport.export": "Exporter le pad actuel comme :",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Texte brut",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "Vous ne pouvez importer que des formats texte brut ou html. Pour des fonctionnalit\u00e9s d'importation plus \u00e9volu\u00e9es, veuillez \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003Einstaller abiword\u003C/a\u003E.",
|
||||
"pad.modals.connected": "Connect\u00e9.",
|
||||
"pad.modals.reconnecting": "Reconnexion vers votre pad...",
|
||||
"pad.modals.forcereconnect": "Forcer la reconnexion",
|
||||
"pad.modals.userdup": "Ouvert dans une autre fen\u00eatre",
|
||||
"pad.modals.userdup.explanation": "Ce pad semble \u00eatre ouvert dans plus d'une fen\u00eatre de navigateur sur cet ordinateur.",
|
||||
"pad.modals.userdup.advice": "Se reconnecter en utilisant cette fen\u00eatre.",
|
||||
"pad.modals.unauth": "Non autoris\u00e9",
|
||||
"pad.modals.unauth.explanation": "Vos permissions ont \u00e9t\u00e9 chang\u00e9es lors de l'affichage de cette page. Essayez de vous reconnecter.",
|
||||
"pad.modals.looping.explanation": "Nous \u00e9prouvons un probl\u00e8me de communication au serveur de synchronisation.",
|
||||
"pad.modals.looping.cause": "Il est possible que votre connexion soit prot\u00e9g\u00e9e par un pare-feu ou un serveur mandataire incompatible.",
|
||||
"pad.modals.initsocketfail": "Le serveur est introuvable.",
|
||||
"pad.modals.initsocketfail.explanation": "Impossible de se connecter au serveur de synchronisation.",
|
||||
"pad.modals.initsocketfail.cause": "Ceci est probablement d\u00fb \u00e0 un probl\u00e8me avec votre navigateur ou votre connexion internet.",
|
||||
"pad.modals.slowcommit.explanation": "Le serveur ne r\u00e9pond pas.",
|
||||
"pad.modals.slowcommit.cause": "Ce probl\u00e8me peut venir d'une mauvaise connectivit\u00e9 au r\u00e9seau.",
|
||||
"pad.modals.badChangeset.explanation": "Une modification que vous avez effectu\u00e9e a \u00e9t\u00e9 class\u00e9e comme ill\u00e9gale par le serveur de synchronisation.",
|
||||
"pad.modals.badChangeset.cause": "Cela peut \u00eatre d\u00fb \u00e0 une mauvaise configuration du serveur ou \u00e0 un autre comportement inattendu. Veuillez contacter l\u2019administrateur du service, si vous pensez que c\u2019est une erreur. Essayez de vous reconnecter pour continuer \u00e0 modifier.",
|
||||
"pad.modals.corruptPad.explanation": "Le bloc auquel vous essayez d\u2019acc\u00e9der est corrompu.",
|
||||
"pad.modals.corruptPad.cause": "Cela peut \u00eatre d\u00fb \u00e0 une mauvaise configuration du serveur ou \u00e0 un autre comportement inattendu. Veuillez contacter l\u2019administrateur du service.",
|
||||
"pad.modals.deleted": "Supprim\u00e9.",
|
||||
"pad.modals.deleted.explanation": "Ce pad a \u00e9t\u00e9 supprim\u00e9.",
|
||||
"pad.modals.disconnected": "Vous avez \u00e9t\u00e9 d\u00e9connect\u00e9.",
|
||||
"pad.modals.disconnected.explanation": "La connexion au serveur a \u00e9chou\u00e9.",
|
||||
"pad.modals.disconnected.cause": "Il se peut que le serveur soit indisponible. Si le probl\u00e8me persiste, veuillez en informer l\u2019administrateur du service.",
|
||||
"pad.share": "Partager ce pad",
|
||||
"pad.share.readonly": "Lecture seule",
|
||||
"pad.share.link": "Lien",
|
||||
"pad.share.emebdcode": "Incorporer un lien",
|
||||
"pad.chat": "Chat",
|
||||
"pad.chat.title": "Ouvrir le chat associ\u00e9 \u00e0 ce pad.",
|
||||
"pad.chat.loadmessages": "Charger davantage de messages",
|
||||
"timeslider.pageTitle": "Historique dynamique de {{appTitle}}",
|
||||
"timeslider.toolbar.returnbutton": "Retourner au pad",
|
||||
"timeslider.toolbar.authors": "Auteurs :",
|
||||
"timeslider.toolbar.authorsList": "Aucun auteur",
|
||||
"timeslider.toolbar.exportlink.title": "Exporter",
|
||||
"timeslider.exportCurrent": "Exporter la version actuelle en\u00a0:",
|
||||
"timeslider.version": "Version {{version}}",
|
||||
"timeslider.saved": "Enregistr\u00e9 le {{day}} {{month}} {{year}}",
|
||||
"timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "Janvier",
|
||||
"timeslider.month.february": "F\u00e9vrier",
|
||||
"timeslider.month.march": "Mars",
|
||||
"timeslider.month.april": "Avril",
|
||||
"timeslider.month.may": "Mai",
|
||||
"timeslider.month.june": "Juin",
|
||||
"timeslider.month.july": "Juillet",
|
||||
"timeslider.month.august": "Ao\u00fbt",
|
||||
"timeslider.month.september": "Septembre",
|
||||
"timeslider.month.october": "Octobre",
|
||||
"timeslider.month.november": "Novembre",
|
||||
"timeslider.month.december": "D\u00e9cembre",
|
||||
"timeslider.unnamedauthors": "{{num}} {[plural(num) one: auteur anonyme, other: auteurs anonymes ]}",
|
||||
"pad.savedrevs.marked": "Cette r\u00e9vision est maintenant marqu\u00e9e comme r\u00e9vision enregistr\u00e9e",
|
||||
"pad.userlist.entername": "Entrez votre nom",
|
||||
"pad.userlist.unnamed": "anonyme",
|
||||
"pad.userlist.guest": "Invit\u00e9",
|
||||
"pad.userlist.deny": "Refuser",
|
||||
"pad.userlist.approve": "Approuver",
|
||||
"pad.editbar.clearcolors": "Effacer les couleurs de paternit\u00e9 dans tout le document ?",
|
||||
"pad.impexp.importbutton": "Importer maintenant",
|
||||
"pad.impexp.importing": "Import en cours...",
|
||||
"pad.impexp.confirmimport": "Importer un fichier \u00e9crasera le texte actuel du pad. \u00cates-vous s\u00fbr de vouloir le faire?",
|
||||
"pad.impexp.convertFailed": "Nous ne pouvons pas importer ce fichier. Veuillez utiliser un autre format de document ou faire un copier/coller manuel",
|
||||
"pad.impexp.uploadFailed": "Le t\u00e9l\u00e9chargement a \u00e9chou\u00e9, veuillez r\u00e9essayer",
|
||||
"pad.impexp.importfailed": "\u00c9chec de l'importation",
|
||||
"pad.impexp.copypaste": "Veuillez copier/coller",
|
||||
"pad.impexp.exportdisabled": "Exporter au format {{type}} est d\u00e9sactiv\u00e9. Veuillez contacter votre administrateur syst\u00e8me pour plus de d\u00e9tails."
|
||||
}
|
122
sources/src/locales/gl.json
Normal file
122
sources/src/locales/gl.json
Normal file
|
@ -0,0 +1,122 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": {
|
||||
"1": "Toli\u00f1o"
|
||||
}
|
||||
},
|
||||
"index.newPad": "Novo documento",
|
||||
"index.createOpenPad": "ou cree/abra un documento co nome:",
|
||||
"pad.toolbar.bold.title": "Negra (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "Cursiva (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "Subli\u00f1ar (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "Riscar",
|
||||
"pad.toolbar.ol.title": "Lista ordenada",
|
||||
"pad.toolbar.ul.title": "Lista sen ordenar",
|
||||
"pad.toolbar.indent.title": "Sangr\u00eda",
|
||||
"pad.toolbar.unindent.title": "Sen sangr\u00eda",
|
||||
"pad.toolbar.undo.title": "Desfacer (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "Refacer (Ctrl-Y)",
|
||||
"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.timeslider.title": "Li\u00f1a do tempo",
|
||||
"pad.toolbar.savedRevision.title": "Gardar a revisi\u00f3n",
|
||||
"pad.toolbar.settings.title": "Configuraci\u00f3ns",
|
||||
"pad.toolbar.embed.title": "Compartir e incorporar este documento",
|
||||
"pad.toolbar.showusers.title": "Mostrar os usuarios deste documento",
|
||||
"pad.colorpicker.save": "Gardar",
|
||||
"pad.colorpicker.cancel": "Cancelar",
|
||||
"pad.loading": "Cargando...",
|
||||
"pad.passwordRequired": "C\u00f3mpre un contrasinal para acceder a este documento",
|
||||
"pad.permissionDenied": "Non ten permiso para acceder a este documento",
|
||||
"pad.wrongPassword": "O contrasinal era incorrecto",
|
||||
"pad.settings.padSettings": "Configuraci\u00f3ns do documento",
|
||||
"pad.settings.myView": "A mi\u00f1a vista",
|
||||
"pad.settings.stickychat": "Chat sempre visible",
|
||||
"pad.settings.colorcheck": "Cores de identificaci\u00f3n",
|
||||
"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.normal": "Normal",
|
||||
"pad.settings.fontType.monospaced": "Monoespazada",
|
||||
"pad.settings.globalView": "Vista global",
|
||||
"pad.settings.language": "Lingua:",
|
||||
"pad.importExport.import_export": "Importar/Exportar",
|
||||
"pad.importExport.import": "Cargar un ficheiro de texto ou documento",
|
||||
"pad.importExport.importSuccessful": "Correcto!",
|
||||
"pad.importExport.export": "Exportar o documento actual en formato:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Texto simple",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "S\u00f3 pode importar texto simple ou formatos HTML. Para obter m\u00e1is informaci\u00f3n sobre as caracter\u00edsticas de importaci\u00f3n avanzadas \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003Einstale abiword\u003C/a\u003E.",
|
||||
"pad.modals.connected": "Conectado.",
|
||||
"pad.modals.reconnecting": "Reconectando co seu documento...",
|
||||
"pad.modals.forcereconnect": "Forzar a reconexi\u00f3n",
|
||||
"pad.modals.userdup": "Aberto noutra vent\u00e1",
|
||||
"pad.modals.userdup.explanation": "Semella que este documento est\u00e1 aberto en varias vent\u00e1s do navegador neste ordenador.",
|
||||
"pad.modals.userdup.advice": "Reconectar para usar esta vent\u00e1.",
|
||||
"pad.modals.unauth": "Non autorizado",
|
||||
"pad.modals.unauth.explanation": "Os seus permisos cambiaron mentres estaba nesta p\u00e1xina. Intente a reconexi\u00f3n.",
|
||||
"pad.modals.looping.explanation": "Hai un problema de comunicaci\u00f3n co servidor de sincronizaci\u00f3n.",
|
||||
"pad.modals.looping.cause": "Seica a s\u00faa conexi\u00f3n pasa a trav\u00e9s dun firewall ou proxy incompatible.",
|
||||
"pad.modals.initsocketfail": "Non se pode alcanzar o servidor.",
|
||||
"pad.modals.initsocketfail.explanation": "Non se pode conectar co servidor de sincronizaci\u00f3n.",
|
||||
"pad.modals.initsocketfail.cause": "Isto acontece probablemente debido a un problema co navegador ou coa conexi\u00f3n \u00e1 internet.",
|
||||
"pad.modals.slowcommit.explanation": "O servidor non responde.",
|
||||
"pad.modals.slowcommit.cause": "Isto pode deberse a un problema de conexi\u00f3n \u00e1 rede.",
|
||||
"pad.modals.badChangeset.explanation": "O servidor de sincronizaci\u00f3n clasificou como ilegal unha das s\u00faas edici\u00f3ns.",
|
||||
"pad.modals.badChangeset.cause": "Isto pode deberse a unha cofiguraci\u00f3n err\u00f3nea do servidor ou alg\u00fan outro comportamento inesperado. P\u00f3\u00f1ase en contacto co administrador do servizo, se pensa que isto \u00e9 un erro. Intente reconectar para continuar editando.",
|
||||
"pad.modals.corruptPad.explanation": "O documento ao que intenta acceder est\u00e1 corrompido.",
|
||||
"pad.modals.corruptPad.cause": "Isto pode deberse a unha cofiguraci\u00f3n err\u00f3nea do servidor ou alg\u00fan outro comportamento inesperado. P\u00f3\u00f1ase en contacto co administrador do servizo.",
|
||||
"pad.modals.deleted": "Borrado.",
|
||||
"pad.modals.deleted.explanation": "Este documento foi eliminado.",
|
||||
"pad.modals.disconnected": "Foi desconectado.",
|
||||
"pad.modals.disconnected.explanation": "Perdeuse a conexi\u00f3n co servidor",
|
||||
"pad.modals.disconnected.cause": "O servidor non est\u00e1 dispo\u00f1ible. P\u00f3\u00f1ase en contacto co administrador do servizo se o problema contin\u00faa.",
|
||||
"pad.share": "Compartir este documento",
|
||||
"pad.share.readonly": "Lectura s\u00f3",
|
||||
"pad.share.link": "Ligaz\u00f3n",
|
||||
"pad.share.emebdcode": "Incorporar o URL",
|
||||
"pad.chat": "Chat",
|
||||
"pad.chat.title": "Abrir o chat deste documento.",
|
||||
"pad.chat.loadmessages": "Cargar m\u00e1is mensaxes",
|
||||
"timeslider.pageTitle": "Li\u00f1a do tempo de {{appTitle}}",
|
||||
"timeslider.toolbar.returnbutton": "Volver ao documento",
|
||||
"timeslider.toolbar.authors": "Autores:",
|
||||
"timeslider.toolbar.authorsList": "Ning\u00fan autor",
|
||||
"timeslider.toolbar.exportlink.title": "Exportar",
|
||||
"timeslider.exportCurrent": "Exportar a versi\u00f3n actual en formato:",
|
||||
"timeslider.version": "Versi\u00f3n {{version}}",
|
||||
"timeslider.saved": "Gardado o {{day}} de {{month}} de {{year}}",
|
||||
"timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "xaneiro",
|
||||
"timeslider.month.february": "febreiro",
|
||||
"timeslider.month.march": "marzo",
|
||||
"timeslider.month.april": "abril",
|
||||
"timeslider.month.may": "maio",
|
||||
"timeslider.month.june": "xu\u00f1o",
|
||||
"timeslider.month.july": "xullo",
|
||||
"timeslider.month.august": "agosto",
|
||||
"timeslider.month.september": "setembro",
|
||||
"timeslider.month.october": "outubro",
|
||||
"timeslider.month.november": "novembro",
|
||||
"timeslider.month.december": "decembro",
|
||||
"timeslider.unnamedauthors": "{{num}} {[plural(num) one: autor an\u00f3nimo, other: autores an\u00f3nimos ]}",
|
||||
"pad.savedrevs.marked": "Esta revisi\u00f3n est\u00e1 agora marcada como revisi\u00f3n gardada",
|
||||
"pad.userlist.entername": "Insira o seu nome",
|
||||
"pad.userlist.unnamed": "an\u00f3nimo",
|
||||
"pad.userlist.guest": "Convidado",
|
||||
"pad.userlist.deny": "Rexeitar",
|
||||
"pad.userlist.approve": "Aprobar",
|
||||
"pad.editbar.clearcolors": "Quere limpar as cores de identificaci\u00f3n dos autores en todo o documento?",
|
||||
"pad.impexp.importbutton": "Importar agora",
|
||||
"pad.impexp.importing": "Importando...",
|
||||
"pad.impexp.confirmimport": "A importaci\u00f3n dun ficheiro ha sobrescribir o texto actual do documento. Est\u00e1 seguro de querer continuar?",
|
||||
"pad.impexp.convertFailed": "Non somos capaces de importar o ficheiro. Utilice un formato de documento diferente ou copie e pegue manualmente",
|
||||
"pad.impexp.uploadFailed": "Houbo un erro ao cargar o ficheiro; int\u00e9nteo de novo",
|
||||
"pad.impexp.importfailed": "Fallou a importaci\u00f3n",
|
||||
"pad.impexp.copypaste": "Copie e pegue",
|
||||
"pad.impexp.exportdisabled": "A exportaci\u00f3n en formato {{type}} est\u00e1 desactivada. P\u00f3\u00f1ase en contacto co administrador do sistema se quere m\u00e1is detalles."
|
||||
}
|
121
sources/src/locales/he.json
Normal file
121
sources/src/locales/he.json
Normal file
|
@ -0,0 +1,121 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": {
|
||||
"0": "Amire80",
|
||||
"1": "Ofrahod",
|
||||
"3": "YaronSh",
|
||||
"4": "\u05ea\u05d5\u05de\u05e8 \u05d8"
|
||||
}
|
||||
},
|
||||
"index.newPad": "\u05e4\u05e0\u05e7\u05e1 \u05d7\u05d3\u05e9",
|
||||
"index.createOpenPad": "\u05d0\u05d5 \u05d9\u05e6\u05d9\u05e8\u05d4 \u05d0\u05d5 \u05e4\u05ea\u05d9\u05d7\u05d4 \u05e9\u05dc \u05e4\u05e0\u05e7\u05e1 \u05e2\u05dd \u05d1\u05e9\u05dd:",
|
||||
"pad.toolbar.bold.title": "\u05d1\u05d5\u05dc\u05d8 (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "\u05e0\u05d8\u05d5\u05d9 (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "\u05e7\u05d5 \u05ea\u05d7\u05ea\u05d9 (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "\u05e7\u05d5 \u05de\u05d5\u05d7\u05e7",
|
||||
"pad.toolbar.ol.title": "\u05e8\u05e9\u05d9\u05de\u05d4 \u05de\u05de\u05d5\u05e1\u05e4\u05e8\u05ea",
|
||||
"pad.toolbar.ul.title": "\u05e8\u05e9\u05d9\u05de\u05d4",
|
||||
"pad.toolbar.indent.title": "\u05d4\u05d6\u05d7\u05d4",
|
||||
"pad.toolbar.unindent.title": "\u05e6\u05de\u05e6\u05d5\u05dd \u05d4\u05d6\u05d7\u05d4",
|
||||
"pad.toolbar.undo.title": "\u05d1\u05d9\u05d8\u05d5\u05dc (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "\u05d1\u05d9\u05e6\u05d5\u05e2 \u05de\u05d7\u05d3\u05e9",
|
||||
"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\u05d5\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.savedRevision.title": "\u05e9\u05de\u05d9\u05e8\u05ea \u05d2\u05e8\u05e1\u05d4",
|
||||
"pad.toolbar.settings.title": "\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea",
|
||||
"pad.toolbar.embed.title": "\u05e9\u05d9\u05ea\u05d5\u05e3 \u05d5\u05d4\u05d8\u05de\u05e2\u05d4 \u05e9\u05dc \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.colorpicker.save": "\u05e9\u05de\u05d9\u05e8\u05d4",
|
||||
"pad.colorpicker.cancel": "\u05d1\u05d9\u05d8\u05d5\u05dc",
|
||||
"pad.loading": "\u05d8\u05e2\u05d9\u05e0\u05d4...",
|
||||
"pad.passwordRequired": "\u05d3\u05e8\u05d5\u05e9\u05d4 \u05e1\u05e1\u05de\u05d4 \u05db\u05d3\u05d9 \u05dc\u05d2\u05e9\u05ea \u05dc\u05e4\u05e0\u05e7\u05e1 \u05d4\u05d6\u05d4",
|
||||
"pad.permissionDenied": "\u05d0\u05d9\u05df \u05dc\u05da \u05d4\u05e8\u05e9\u05d0\u05d4 \u05dc\u05d2\u05e9\u05ea \u05dc\u05e4\u05e0\u05e7\u05e1 \u05d4\u05d6\u05d4",
|
||||
"pad.wrongPassword": "\u05e1\u05e1\u05de\u05ea\u05da \u05d4\u05d9\u05d9\u05ea\u05d4 \u05e9\u05d2\u05d5\u05d9\u05d4",
|
||||
"pad.settings.padSettings": "\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05e4\u05e0\u05e7\u05e1",
|
||||
"pad.settings.myView": "\u05d4\u05ea\u05e6\u05d5\u05d2\u05d4 \u05e9\u05dc\u05d9",
|
||||
"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.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.normal": "\u05e8\u05d2\u05d9\u05dc",
|
||||
"pad.settings.fontType.monospaced": "\u05d1\u05e8\u05d5\u05d7\u05d1 \u05e7\u05d1\u05d5\u05e2",
|
||||
"pad.settings.globalView": "\u05ea\u05e6\u05d5\u05d2\u05d4 \u05dc\u05db\u05dc \u05d4\u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd",
|
||||
"pad.settings.language": "\u05e9\u05e4\u05d4:",
|
||||
"pad.importExport.import_export": "\u05d9\u05d9\u05d1\u05d5\u05d0/\u05d9\u05d9\u05e6\u05d5\u05d0",
|
||||
"pad.importExport.import": "\u05d4\u05e2\u05dc\u05d0\u05ea \u05db\u05dc \u05e7\u05d5\u05d1\u05e5 \u05d8\u05e7\u05e1\u05d8 \u05d0\u05d5 \u05de\u05e1\u05de\u05da",
|
||||
"pad.importExport.importSuccessful": "\u05d6\u05d4 \u05e2\u05d1\u05d3!",
|
||||
"pad.importExport.export": "\u05d9\u05d9\u05e6\u05d5\u05d0 \u05d4\u05e4\u05e0\u05e7\u05e1 \u05d4\u05e0\u05d5\u05db\u05d7\u05d9 \u05d1\u05ea\u05d5\u05e8:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "\u05d8\u05e7\u05e1\u05d8 \u05e8\u05d2\u05d9\u05dc",
|
||||
"pad.importExport.exportword": "\u05de\u05d9\u05e7\u05e8\u05d5\u05e1\u05d5\u05e4\u05d8 \u05d5\u05d5\u05e8\u05d3",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "\u05d1\u05d0\u05e4\u05e9\u05e8\u05d5\u05ea\u05da \u05dc\u05d9\u05d9\u05d1\u05d0 \u05de\u05d8\u05e7\u05e1\u05d8 \u05e4\u05e9\u05d5\u05d8 \u05d0\u05d5 \u05de\u05beHTML. \u05dc\u05d0\u05e4\u05e9\u05e8\u05d5\u05d9\u05d5\u05ea \u05d9\u05d9\u05d1\u05d5\u05d0 \u05de\u05ea\u05e7\u05d3\u05de\u05d5\u05ea \u05d9\u05d5\u05ea\u05e8 \u05d9\u05e9 \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003E\u05dc\u05d4\u05ea\u05e7\u05d9\u05df \u05d0\u05ea abiword\u003C/a\u003E.",
|
||||
"pad.modals.connected": "\u05de\u05d7\u05d5\u05d1\u05e8.",
|
||||
"pad.modals.reconnecting": "\u05de\u05ea\u05d1\u05e6\u05e2 \u05d7\u05d9\u05d1\u05d5\u05e8 \u05de\u05d7\u05d3\u05e9...",
|
||||
"pad.modals.forcereconnect": "\u05dc\u05db\u05e4\u05d5\u05ea \u05d7\u05d9\u05d1\u05d5\u05e8 \u05de\u05d7\u05d3\u05e9",
|
||||
"pad.modals.userdup": "\u05e4\u05ea\u05d5\u05d7 \u05d1\u05d7\u05dc\u05d5\u05df \u05d0\u05d7\u05e8",
|
||||
"pad.modals.userdup.explanation": "\u05e0\u05e8\u05d0\u05d4 \u05e9\u05d4\u05e4\u05e0\u05e7\u05e1 \u05d4\u05d6\u05d4 \u05e4\u05ea\u05d5\u05d7 \u05d1\u05d9\u05d5\u05ea\u05e8 \u05de\u05d7\u05dc\u05d5\u05df \u05d3\u05e4\u05d3\u05e4\u05df \u05d0\u05d7\u05d3 \u05d1\u05de\u05d7\u05e9\u05d1 \u05d4\u05d6\u05d4.",
|
||||
"pad.modals.userdup.advice": "\u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05de\u05d7\u05d3\u05e9 \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea \u05d4\u05d7\u05dc\u05d5\u05df \u05d4\u05d6\u05d4.",
|
||||
"pad.modals.unauth": "\u05d0\u05d9\u05df \u05d4\u05e8\u05e9\u05d0\u05d4",
|
||||
"pad.modals.unauth.explanation": "\u05d4\u05d4\u05e8\u05e9\u05d0\u05d5\u05ea \u05e9\u05dc\u05da \u05d4\u05e9\u05ea\u05e0\u05d5 \u05d1\u05d6\u05de\u05df \u05e9\u05e0\u05d9\u05e1\u05d9\u05ea \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8. \u05e0\u05d0 \u05dc\u05e0\u05e1\u05d5\u05ea \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05de\u05d7\u05d3\u05e9.",
|
||||
"pad.modals.looping.explanation": "\u05d9\u05e9 \u05d1\u05e2\u05d9\u05d5\u05ea \u05d7\u05d9\u05d1\u05d5\u05e8 \u05e2\u05dd \u05d4\u05e9\u05e8\u05ea \u05d4\u05de\u05ea\u05d0\u05dd.",
|
||||
"pad.modals.looping.cause": "\u05d9\u05d9\u05ea\u05db\u05df \u05e9\u05d4\u05ea\u05d7\u05d1\u05e8\u05ea \u05d3\u05e8\u05da \u05d7\u05d5\u05de\u05ea\u05be\u05d0\u05e9 \u05d0\u05d5 \u05e9\u05e8\u05ea \u05de\u05ea\u05d5\u05d5\u05da \u05d1\u05dc\u05ea\u05d9\u05be\u05ea\u05d5\u05d0\u05de\u05d9\u05dd.",
|
||||
"pad.modals.initsocketfail": "\u05d0\u05d9\u05df \u05ea\u05e7\u05e9\u05d5\u05e8\u05d5\u05ea \u05dc\u05e9\u05e8\u05ea.",
|
||||
"pad.modals.initsocketfail.explanation": "\u05d4\u05ea\u05d7\u05d1\u05e8\u05d5\u05ea \u05dc\u05e9\u05e8\u05ea \u05d4\u05de\u05ea\u05d0\u05dd \u05dc\u05d0 \u05d4\u05e6\u05dc\u05d9\u05d7\u05d4.",
|
||||
"pad.modals.initsocketfail.cause": "\u05d0\u05d5\u05dc\u05d9 \u05d6\u05d4 \u05d1\u05d2\u05dc\u05dc \u05d4\u05d3\u05e4\u05d3\u05e4\u05df \u05e9\u05dc\u05da \u05d0\u05d5 \u05d7\u05d9\u05d1\u05d5\u05e8 \u05d4\u05d0\u05d9\u05e0\u05d8\u05e8\u05e0\u05d8 \u05e9\u05dc\u05da.",
|
||||
"pad.modals.slowcommit.explanation": "\u05d4\u05e9\u05e8\u05ea \u05d0\u05d9\u05e0\u05d5 \u05de\u05d2\u05d9\u05d1.",
|
||||
"pad.modals.slowcommit.cause": "\u05d0\u05d5\u05dc\u05d9 \u05d6\u05d4 \u05d1\u05d2\u05dc\u05dc \u05d1\u05e2\u05d9\u05d5\u05ea \u05e2\u05dd \u05ea\u05e7\u05e9\u05d5\u05e8\u05ea \u05dc\u05e8\u05e9\u05ea.",
|
||||
"pad.modals.deleted": "\u05e0\u05de\u05d7\u05e7.",
|
||||
"pad.modals.deleted.explanation": "\u05d4\u05e4\u05e0\u05e7\u05e1 \u05d4\u05d6\u05d4 \u05d4\u05d5\u05e1\u05e8.",
|
||||
"pad.modals.disconnected": "\u05e0\u05d5\u05ea\u05e7\u05ea.",
|
||||
"pad.modals.disconnected.explanation": "\u05d4\u05ea\u05e7\u05e9\u05d5\u05e8\u05ea \u05dc\u05e9\u05e8\u05ea \u05d0\u05d1\u05d3\u05d4",
|
||||
"pad.modals.disconnected.cause": "\u05d9\u05d9\u05ea\u05db\u05df \u05e9\u05d4\u05e9\u05e8\u05ea \u05d0\u05d9\u05e0\u05d5 \u05d6\u05de\u05d9\u05df. \u05e0\u05d0 \u05dc\u05d4\u05d5\u05d3\u05d9\u05e2 \u05dc\u05e0\u05d5 \u05d0\u05dd \u05d6\u05d4 \u05de\u05de\u05e9\u05d9\u05da \u05dc\u05e7\u05e8\u05d5\u05ea.",
|
||||
"pad.share": "\u05e9\u05d9\u05ea\u05d5\u05e3 \u05d4\u05e4\u05e0\u05e7\u05e1 \u05d4\u05d6\u05d4",
|
||||
"pad.share.readonly": "\u05e7\u05d9\u05e9\u05d5\u05e8",
|
||||
"pad.share.link": "\u05e7\u05d9\u05e9\u05d5\u05e8",
|
||||
"pad.share.emebdcode": "\u05d4\u05d8\u05de\u05e2\u05ea \u05e7\u05d9\u05e9\u05d5\u05e8",
|
||||
"pad.chat": "\u05e9\u05d9\u05d7\u05d4",
|
||||
"pad.chat.title": "\u05e4\u05ea\u05d9\u05d7\u05ea \u05d4\u05e9\u05d9\u05d7\u05d4 \u05e9\u05dc \u05d4\u05e4\u05e0\u05e7\u05e1 \u05d4\u05d6\u05d4.",
|
||||
"pad.chat.loadmessages": "\u05d8\u05e2\u05d9\u05e0\u05ea \u05d4\u05d5\u05d3\u05e2\u05d5\u05ea \u05e0\u05d5\u05e1\u05e4\u05d5\u05ea",
|
||||
"timeslider.pageTitle": "\u05d2\u05d5\u05dc\u05dc \u05d6\u05de\u05df \u05e9\u05dc {{appTitle}}",
|
||||
"timeslider.toolbar.returnbutton": "\u05d7\u05d6\u05e8\u05d4 \u05d0\u05dc \u05d4\u05e4\u05e0\u05e7\u05e1",
|
||||
"timeslider.toolbar.authors": "\u05db\u05d5\u05ea\u05d1\u05d9\u05dd:",
|
||||
"timeslider.toolbar.authorsList": "\u05d0\u05d9\u05df \u05db\u05d5\u05ea\u05d1\u05d9\u05dd",
|
||||
"timeslider.toolbar.exportlink.title": "\u05d9\u05d9\u05e6\u05d5\u05d0",
|
||||
"timeslider.exportCurrent": "\u05d9\u05d9\u05e6\u05d5\u05d0 \u05d4\u05d2\u05e8\u05e1\u05d4 \u05d4\u05e0\u05d5\u05db\u05d7\u05d9\u05ea \u05d1\u05ea\u05d5\u05e8:",
|
||||
"timeslider.version": "\u05d2\u05e8\u05e1\u05d4 {{version}}",
|
||||
"timeslider.saved": "\u05e0\u05e9\u05de\u05e8\u05d4 \u05d1\u05be{{day}} \u05d1{{month}} {{year}}",
|
||||
"timeslider.dateformat": "{{year}}-{{month}}-{{day}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "\u05d9\u05e0\u05d5\u05d0\u05e8",
|
||||
"timeslider.month.february": "\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8",
|
||||
"timeslider.month.march": "\u05de\u05e8\u05e5",
|
||||
"timeslider.month.april": "\u05d0\u05e4\u05e8\u05d9\u05dc",
|
||||
"timeslider.month.may": "\u05de\u05d0\u05d9",
|
||||
"timeslider.month.june": "\u05d9\u05d5\u05e0\u05d9",
|
||||
"timeslider.month.july": "\u05d9\u05d5\u05dc\u05d9",
|
||||
"timeslider.month.august": "\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8",
|
||||
"timeslider.month.september": "\u05e1\u05e4\u05d8\u05de\u05d1\u05e8",
|
||||
"timeslider.month.october": "\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8",
|
||||
"timeslider.month.november": "\u05e0\u05d5\u05d1\u05de\u05d1\u05e8",
|
||||
"timeslider.month.december": "\u05d3\u05e6\u05de\u05d1\u05e8",
|
||||
"timeslider.unnamedauthors": "{[plural(num) one: \u05d9\u05d5\u05e6\u05e8 \u05d0\u05d7\u05d3, other: {{num}} \u05d9\u05d5\u05e6\u05e8\u05d9\u05dd ]} \u05dc\u05dc\u05d0 \u05e9\u05dd",
|
||||
"pad.savedrevs.marked": "\u05d2\u05e8\u05e1\u05d4 \u05d6\u05d5 \u05de\u05e1\u05d5\u05de\u05e0\u05ea \u05db\u05d2\u05e8\u05e1\u05d4 \u05e9\u05de\u05d5\u05e8\u05d4",
|
||||
"pad.userlist.entername": "\u05e0\u05d0 \u05dc\u05d4\u05d6\u05d9\u05df \u05d0\u05ea \u05e9\u05de\u05da",
|
||||
"pad.userlist.unnamed": "\u05dc\u05dc\u05d0 \u05e9\u05dd",
|
||||
"pad.userlist.guest": "\u05d0\u05d5\u05e8\u05d7",
|
||||
"pad.userlist.deny": "\u05dc\u05d3\u05d7\u05d5\u05ea",
|
||||
"pad.userlist.approve": "\u05dc\u05d0\u05e9\u05e8",
|
||||
"pad.editbar.clearcolors": "\u05dc\u05e0\u05e7\u05d5\u05ea \u05e6\u05d1\u05e2\u05d9\u05dd \u05dc\u05e1\u05d9\u05de\u05d5\u05df \u05db\u05d5\u05ea\u05d1\u05d9\u05dd \u05d1\u05db\u05dc \u05d4\u05de\u05e1\u05de\u05da?",
|
||||
"pad.impexp.importbutton": "\u05dc\u05d9\u05d9\u05d1\u05d0 \u05db\u05e2\u05ea",
|
||||
"pad.impexp.importing": "\u05d9\u05d9\u05d1\u05d5\u05d0...",
|
||||
"pad.impexp.confirmimport": "\u05d9\u05d9\u05d1\u05d5\u05d0 \u05e9\u05dc \u05e7\u05d5\u05d1\u05e5 \u05d9\u05d1\u05d8\u05dc \u05d0\u05ea \u05d4\u05d8\u05e7\u05e1\u05d8 \u05d4\u05e0\u05d5\u05db\u05d7\u05d9 \u05d1\u05e4\u05e0\u05e7\u05e1. \u05d4\u05d0\u05dd \u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05d4\u05de\u05e9\u05d9\u05da?",
|
||||
"pad.impexp.convertFailed": "\u05dc\u05d0 \u05d4\u05e6\u05dc\u05d7\u05e0\u05d5 \u05dc\u05d9\u05d9\u05d1\u05d0 \u05d0\u05ea \u05d4\u05e7\u05d5\u05d1\u05e5 \u05d4\u05d6\u05d4. \u05e0\u05d0 \u05dc\u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05ea\u05e1\u05d3\u05d9\u05e8 \u05de\u05e1\u05de\u05da \u05e9\u05d5\u05e0\u05d4 \u05d0\u05d5 \u05dc\u05d4\u05e2\u05ea\u05d9\u05e7 \u05d5\u05dc\u05d4\u05d3\u05d1\u05d9\u05e7 \u05d9\u05d3\u05e0\u05d9\u05ea",
|
||||
"pad.impexp.uploadFailed": "\u05d4\u05d4\u05e2\u05dc\u05d0\u05d4 \u05e0\u05db\u05e9\u05dc\u05d4, \u05e0\u05d0 \u05dc\u05e0\u05e1\u05d5\u05ea \u05e9\u05d5\u05d1",
|
||||
"pad.impexp.importfailed": "\u05d4\u05d9\u05d9\u05d1\u05d5\u05d0 \u05e0\u05db\u05e9\u05dc",
|
||||
"pad.impexp.copypaste": "\u05e0\u05d0 \u05dc\u05d4\u05e2\u05ea\u05d9\u05e7 \u05d5\u05dc\u05d4\u05d3\u05d1\u05d9\u05e7",
|
||||
"pad.impexp.exportdisabled": "\u05d9\u05d9\u05e6\u05d5\u05d0 \u05d1\u05ea\u05e1\u05d3\u05d9\u05e8 {{type}} \u05d0\u05d9\u05e0\u05d5 \u05e4\u05e2\u05d9\u05dc. \u05de\u05e0\u05d4\u05dc \u05d4\u05de\u05e2\u05e8\u05db\u05ea \u05e9\u05dc\u05da \u05d9\u05d5\u05db\u05dc \u05dc\u05e1\u05e4\u05e8 \u05dc\u05da \u05e2\u05dc \u05d6\u05d4 \u05e2\u05d5\u05d3 \u05e4\u05e8\u05d8\u05d9\u05dd."
|
||||
}
|
109
sources/src/locales/hu.json
Normal file
109
sources/src/locales/hu.json
Normal file
|
@ -0,0 +1,109 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": {
|
||||
"0": "Dj",
|
||||
"1": "Misibacsi",
|
||||
"2": "R-Joe",
|
||||
"4": "Tgr"
|
||||
}
|
||||
},
|
||||
"index.newPad": "\u00daj notesz",
|
||||
"index.createOpenPad": "vagy notesz l\u00e9trehoz\u00e1sa ezen a n\u00e9ven:",
|
||||
"pad.toolbar.bold.title": "F\u00e9lk\u00f6v\u00e9r (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "D\u0151lt (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "Al\u00e1h\u00faz\u00e1s (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "\u00c1th\u00faz\u00e1s",
|
||||
"pad.toolbar.ol.title": "Sz\u00e1mozott lista",
|
||||
"pad.toolbar.ul.title": "Sz\u00e1mozatlan lista",
|
||||
"pad.toolbar.indent.title": "Beh\u00faz\u00e1s n\u00f6vel\u00e9se",
|
||||
"pad.toolbar.unindent.title": "Beh\u00faz\u00e1s cs\u00f6kkent\u00e9se",
|
||||
"pad.toolbar.undo.title": "Vissza (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "\u00dajra (Ctrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "Szerz\u0151k sz\u00ednez\u00e9s\u00e9nek kikapcsol\u00e1sa",
|
||||
"pad.toolbar.import_export.title": "Import\u00e1l\u00e1s/export\u00e1l\u00e1s k\u00fcl\u00f6nb\u00f6z\u0151 f\u00e1jlform\u00e1tumokb\u00f3l/ba",
|
||||
"pad.toolbar.timeslider.title": "Id\u0151cs\u00faszka",
|
||||
"pad.toolbar.savedRevision.title": "Mentett \u00e1llapotok",
|
||||
"pad.toolbar.settings.title": "Be\u00e1ll\u00edt\u00e1sok",
|
||||
"pad.toolbar.embed.title": "Notesz be\u00e1gyaz\u00e1sa",
|
||||
"pad.toolbar.showusers.title": "Notesz felhaszn\u00e1l\u00f3inak megmutat\u00e1sa",
|
||||
"pad.colorpicker.save": "Ment\u00e9s",
|
||||
"pad.colorpicker.cancel": "M\u00e9gsem",
|
||||
"pad.loading": "Bet\u00f6lt\u00e9s\u2026",
|
||||
"pad.passwordRequired": "Jelsz\u00f3ra van sz\u00fcks\u00e9ged ezen notesz el\u00e9r\u00e9s\u00e9hez",
|
||||
"pad.permissionDenied": "Nincs enged\u00e9lyed ezen notesz el\u00e9r\u00e9s\u00e9hez",
|
||||
"pad.wrongPassword": "A jelsz\u00f3 rossz volt",
|
||||
"pad.settings.padSettings": "Notesz be\u00e1ll\u00edt\u00e1sai",
|
||||
"pad.settings.myView": "Az \u00e9n n\u00e9zetem",
|
||||
"pad.settings.stickychat": "Mindig mutasd a cseveg\u00e9s-dobozt",
|
||||
"pad.settings.colorcheck": "Szerz\u0151k sz\u00ednei",
|
||||
"pad.settings.linenocheck": "Sorok sz\u00e1moz\u00e1sa",
|
||||
"pad.settings.fontType": "Bet\u0171t\u00edpus:",
|
||||
"pad.settings.fontType.normal": "Szok\u00e1sos",
|
||||
"pad.settings.fontType.monospaced": "\u00cdr\u00f3g\u00e9pes",
|
||||
"pad.settings.globalView": "Glob\u00e1lis n\u00e9zet",
|
||||
"pad.settings.language": "Nyelv:",
|
||||
"pad.importExport.import_export": "Import/export",
|
||||
"pad.importExport.import": "Tetsz\u0151leges sz\u00f6vegf\u00e1jl vagy dokumentum felt\u00f6lt\u00e9se",
|
||||
"pad.importExport.importSuccessful": "Siker!",
|
||||
"pad.importExport.export": "Jelenlegi notesz export\u00e1l\u00e1sa \u00edgy:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Sima sz\u00f6veg",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document form\u00e1tum)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.modals.connected": "Kapcsol\u00f3dva.",
|
||||
"pad.modals.reconnecting": "\u00dajrakapcsol\u00f3d\u00e1s a noteszhez...",
|
||||
"pad.modals.forcereconnect": "\u00dajrakapcsol\u00f3d\u00e1s k\u00e9nyszer\u00edt\u00e9se",
|
||||
"pad.modals.userdup.explanation": "\u00dagy t\u0171nik, ez a notesz t\u00f6bb k\u00fcl\u00f6nb\u00f6z\u0151 b\u00f6ng\u00e9sz\u0151ablakban is meg van nyitva a sz\u00e1m\u00edt\u00f3g\u00e9peden.",
|
||||
"pad.modals.userdup.advice": "Kapcsol\u00f3dj \u00fajra, ha ezt az ablakot akarod haszn\u00e1lni.",
|
||||
"pad.modals.unauth": "Nincs r\u00e1 jogosults\u00e1god",
|
||||
"pad.modals.unauth.explanation": "A jogosults\u00e1gaid v\u00e1ltoztak, mik\u00f6zben n\u00e9zted ezt az oldalt. Pr\u00f3b\u00e1lj \u00fajrakapcsol\u00f3dni.",
|
||||
"pad.modals.looping.explanation": "Nem siker\u00fclt a kommunik\u00e1ci\u00f3 a szinkroniz\u00e1ci\u00f3s szerverrel.",
|
||||
"pad.modals.looping.cause": "Tal\u00e1n egy t\u00fal szigor\u00fa t\u0171zfalon vagy proxyn kereszt\u00fcl kapcsol\u00f3dt\u00e1l az internetre.",
|
||||
"pad.modals.initsocketfail": "A szerver nem \u00e9rhet\u0151 el.",
|
||||
"pad.modals.initsocketfail.explanation": "Nem siker\u00fclt kapcsol\u00f3dni a szinkroniz\u00e1ci\u00f3s szerverhez.",
|
||||
"pad.modals.initsocketfail.cause": "Val\u00f3sz\u00edn\u0171leg a b\u00f6ng\u00e9sz\u0151ddel vagy az internetkapcsolatoddal van probl\u00e9ma.",
|
||||
"pad.modals.slowcommit.explanation": "A szerver nem v\u00e1laszol.",
|
||||
"pad.modals.slowcommit.cause": "Val\u00f3sz\u00edn\u0171leg az internetkapcsolattal van probl\u00e9ma.",
|
||||
"pad.modals.deleted": "T\u00f6r\u00f6lve.",
|
||||
"pad.modals.deleted.explanation": "Ez a notesz el lett t\u00e1vol\u00edtva.",
|
||||
"pad.modals.disconnected": "Kapcsolat bontva.",
|
||||
"pad.modals.disconnected.explanation": "A szerverrel val\u00f3 kapcsolat megsz\u0171nt.",
|
||||
"pad.modals.disconnected.cause": "Lehet, hogy a szerver nem el\u00e9rhet\u0151. K\u00e9rlek, \u00e9rtes\u00edts minket, ha a probl\u00e9ma tart\u00f3san fenn\u00e1ll.",
|
||||
"pad.share": "Notesz megoszt\u00e1sa",
|
||||
"pad.share.readonly": "Csak olvashat\u00f3",
|
||||
"pad.share.link": "Hivatkoz\u00e1s",
|
||||
"pad.share.emebdcode": "URL be\u00e1gyaz\u00e1sa",
|
||||
"pad.chat": "Cseveg\u00e9s",
|
||||
"pad.chat.title": "A noteszhez tartoz\u00f3 cseveg\u00e9s megnyit\u00e1sa.",
|
||||
"timeslider.pageTitle": "{{appTitle}} id\u0151cs\u00faszka",
|
||||
"timeslider.toolbar.returnbutton": "Vissza a noteszhez",
|
||||
"timeslider.toolbar.authors": "Szerz\u0151k:",
|
||||
"timeslider.toolbar.authorsList": "Nincsenek szerz\u0151k",
|
||||
"timeslider.exportCurrent": "Jelenlegi v\u00e1ltozat export\u00e1l\u00e1sa \u00edgy:",
|
||||
"timeslider.version": "{{version}} verzi\u00f3",
|
||||
"timeslider.saved": "{{year}}. {{month}} {{day}}-n elmentve",
|
||||
"timeslider.dateformat": "{{year}}/{{month}}/{{day}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "janu\u00e1r",
|
||||
"timeslider.month.february": "febru\u00e1r",
|
||||
"timeslider.month.march": "m\u00e1rcius",
|
||||
"timeslider.month.april": "\u00e1prilis",
|
||||
"timeslider.month.may": "m\u00e1jus",
|
||||
"timeslider.month.june": "j\u00fanius",
|
||||
"timeslider.month.july": "j\u00falius",
|
||||
"timeslider.month.august": "augusztus",
|
||||
"timeslider.month.september": "szeptember",
|
||||
"timeslider.month.october": "okt\u00f3ber",
|
||||
"timeslider.month.november": "november",
|
||||
"timeslider.month.december": "december",
|
||||
"pad.userlist.entername": "Add meg a nevedet",
|
||||
"pad.userlist.unnamed": "n\u00e9vtelen",
|
||||
"pad.userlist.guest": "Vend\u00e9g",
|
||||
"pad.userlist.deny": "Megtagad",
|
||||
"pad.userlist.approve": "J\u00f3v\u00e1hagy",
|
||||
"pad.impexp.importbutton": "Import\u00e1l\u00e1s most",
|
||||
"pad.impexp.importing": "Import\u00e1l\u00e1s\u2026",
|
||||
"pad.impexp.uploadFailed": "A felt\u00f6lt\u00e9s sikertelen, pr\u00f3b\u00e1ld meg \u00fajra",
|
||||
"pad.impexp.importfailed": "Az import\u00e1l\u00e1s nem siker\u00fclt"
|
||||
}
|
122
sources/src/locales/ia.json
Normal file
122
sources/src/locales/ia.json
Normal file
|
@ -0,0 +1,122 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"McDutchie"
|
||||
]
|
||||
},
|
||||
"index.newPad": "Nove pad",
|
||||
"index.createOpenPad": "o crear/aperir un pad con le nomine:",
|
||||
"pad.toolbar.bold.title": "Grasse (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "Italic (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "Sublinear (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "Cancellar",
|
||||
"pad.toolbar.ol.title": "Lista ordinate",
|
||||
"pad.toolbar.ul.title": "Lista non ordinate",
|
||||
"pad.toolbar.indent.title": "Indentar",
|
||||
"pad.toolbar.unindent.title": "Disindentar",
|
||||
"pad.toolbar.undo.title": "Disfacer (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "Refacer (Ctrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "Rader colores de autor",
|
||||
"pad.toolbar.import_export.title": "Importar/exportar in differente formatos de file",
|
||||
"pad.toolbar.timeslider.title": "Glissa-tempore",
|
||||
"pad.toolbar.savedRevision.title": "Version salveguardate",
|
||||
"pad.toolbar.settings.title": "Configuration",
|
||||
"pad.toolbar.embed.title": "Divider e incorporar iste pad",
|
||||
"pad.toolbar.showusers.title": "Monstrar le usatores de iste pad",
|
||||
"pad.colorpicker.save": "Salveguardar",
|
||||
"pad.colorpicker.cancel": "Cancellar",
|
||||
"pad.loading": "Cargamento\u2026",
|
||||
"pad.passwordRequired": "Un contrasigno es necessari pro acceder a iste pad",
|
||||
"pad.permissionDenied": "Tu non ha le permission de acceder a iste pad",
|
||||
"pad.wrongPassword": "Le contrasigno es incorrecte",
|
||||
"pad.settings.padSettings": "Configuration del pad",
|
||||
"pad.settings.myView": "Mi vista",
|
||||
"pad.settings.stickychat": "Chat sempre visibile",
|
||||
"pad.settings.colorcheck": "Colores de autor",
|
||||
"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.normal": "Normal",
|
||||
"pad.settings.fontType.monospaced": "Monospatial",
|
||||
"pad.settings.globalView": "Vista global",
|
||||
"pad.settings.language": "Lingua:",
|
||||
"pad.importExport.import_export": "Importar/Exportar",
|
||||
"pad.importExport.import": "Incargar qualcunque file de texto o documento",
|
||||
"pad.importExport.importSuccessful": "Succedite!",
|
||||
"pad.importExport.export": "Exportar le pad actual como:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Texto simple",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "Tu pote solmente importar files in formato de texto simple o HTML. Pro functionalitate de importation plus extense, \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003Einstalla AbiWord\u003C/a\u003E.",
|
||||
"pad.modals.connected": "Connectite.",
|
||||
"pad.modals.reconnecting": "Reconnecte a tu pad\u2026",
|
||||
"pad.modals.forcereconnect": "Fortiar reconnexion",
|
||||
"pad.modals.userdup": "Aperte in un altere fenestra",
|
||||
"pad.modals.userdup.explanation": "Iste pad pare esser aperte in plus de un fenestra de navigator in iste computator.",
|
||||
"pad.modals.userdup.advice": "Reconnecte pro usar iste fenestra.",
|
||||
"pad.modals.unauth": "Non autorisate",
|
||||
"pad.modals.unauth.explanation": "Tu permissiones ha cambiate durante que tu legeva iste pagina. Tenta reconnecter.",
|
||||
"pad.modals.looping.explanation": "Il ha problemas de communication con le servitor de synchronisation.",
|
||||
"pad.modals.looping.cause": "Il es possibile que tu connexion passa per un firewall o proxy incompatibile.",
|
||||
"pad.modals.initsocketfail": "Le servitor es inattingibile.",
|
||||
"pad.modals.initsocketfail.explanation": "Impossibile connecter al servitor de synchronisation.",
|
||||
"pad.modals.initsocketfail.cause": "Isto es probabilemente causate per un problema con tu navigator o connexion a internet.",
|
||||
"pad.modals.slowcommit.explanation": "Le servitor non responde.",
|
||||
"pad.modals.slowcommit.cause": "Isto pote esser causate per problemas con le connexion al rete.",
|
||||
"pad.modals.badChangeset.explanation": "Un modification que tu ha facite ha essite classificate como incorrecte per le servitor de synchronisation.",
|
||||
"pad.modals.badChangeset.cause": "Isto pote esser causate per un configuration incorrecte del servitor o per alcun altere comportamento impreviste. Per favor contacta le administrator del servicio si tu pensa que se tracta de un error. Tenta reconnecter te pro continuar a modificar.",
|
||||
"pad.modals.corruptPad.explanation": "Le pad al qual tu tenta acceder es corrumpite.",
|
||||
"pad.modals.corruptPad.cause": "Isto pote esser debite a un configuration incorrecte del servitor o a alcun altere comportamento impreviste. Per favor contacta le administrator del servicio.",
|
||||
"pad.modals.deleted": "Delite.",
|
||||
"pad.modals.deleted.explanation": "Iste pad ha essite removite.",
|
||||
"pad.modals.disconnected": "Tu ha essite disconnectite.",
|
||||
"pad.modals.disconnected.explanation": "Le connexion al servitor ha essite perdite.",
|
||||
"pad.modals.disconnected.cause": "Le servitor pote esser indisponibile. Per favor notifica le administrator del servicio si isto continua a producer se.",
|
||||
"pad.share": "Diffunder iste pad",
|
||||
"pad.share.readonly": "Lectura solmente",
|
||||
"pad.share.link": "Ligamine",
|
||||
"pad.share.emebdcode": "Codice de incorporation",
|
||||
"pad.chat": "Chat",
|
||||
"pad.chat.title": "Aperir le chat pro iste pad.",
|
||||
"pad.chat.loadmessages": "Cargar plus messages",
|
||||
"timeslider.pageTitle": "Glissa-tempore pro {{appTitle}}",
|
||||
"timeslider.toolbar.returnbutton": "Retornar al pad",
|
||||
"timeslider.toolbar.authors": "Autores:",
|
||||
"timeslider.toolbar.authorsList": "Nulle autor",
|
||||
"timeslider.toolbar.exportlink.title": "Exportar",
|
||||
"timeslider.exportCurrent": "Exportar le version actual como:",
|
||||
"timeslider.version": "Version {{version}}",
|
||||
"timeslider.saved": "Salveguardate le {{day}} de {{month}} {{year}}",
|
||||
"timeslider.dateformat": "{{year}}-{{month}}-{{day}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "januario",
|
||||
"timeslider.month.february": "februario",
|
||||
"timeslider.month.march": "martio",
|
||||
"timeslider.month.april": "april",
|
||||
"timeslider.month.may": "maio",
|
||||
"timeslider.month.june": "junio",
|
||||
"timeslider.month.july": "julio",
|
||||
"timeslider.month.august": "augusto",
|
||||
"timeslider.month.september": "septembre",
|
||||
"timeslider.month.october": "octobre",
|
||||
"timeslider.month.november": "novembre",
|
||||
"timeslider.month.december": "decembre",
|
||||
"timeslider.unnamedauthors": "{{num}} {[plural(num) one: autor, other: autores ]} sin nomine",
|
||||
"pad.savedrevs.marked": "Iste version es ora marcate como version salveguardate",
|
||||
"pad.userlist.entername": "Entra tu nomine",
|
||||
"pad.userlist.unnamed": "sin nomine",
|
||||
"pad.userlist.guest": "Invitato",
|
||||
"pad.userlist.deny": "Refusar",
|
||||
"pad.userlist.approve": "Approbar",
|
||||
"pad.editbar.clearcolors": "Rader le colores de autor in tote le documento?",
|
||||
"pad.impexp.importbutton": "Importar ora",
|
||||
"pad.impexp.importing": "Importation in curso\u2026",
|
||||
"pad.impexp.confirmimport": "Le importation de un file superscribera le texto actual del pad. Es tu secur de voler continuar?",
|
||||
"pad.impexp.convertFailed": "Nos non ha potite importar iste file. Per favor usa un altere formato de documento o copia e colla le texto manualmente.",
|
||||
"pad.impexp.uploadFailed": "Le incargamento ha fallite. Per favor reproba.",
|
||||
"pad.impexp.importfailed": "Importation fallite",
|
||||
"pad.impexp.copypaste": "Per favor copia e colla",
|
||||
"pad.impexp.exportdisabled": "Le exportation in formato {{type}} es disactivate. Per favor contacta le administrator del systema pro detalios."
|
||||
}
|
125
sources/src/locales/it.json
Normal file
125
sources/src/locales/it.json
Normal file
|
@ -0,0 +1,125 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": {
|
||||
"0": "Beta16",
|
||||
"1": "Gianfranco",
|
||||
"2": "Muxator",
|
||||
"4": "Vituzzu"
|
||||
}
|
||||
},
|
||||
"index.newPad": "Nuovo Pad",
|
||||
"index.createOpenPad": "o creare o aprire un Pad con il nome:",
|
||||
"pad.toolbar.bold.title": "Grassetto (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "Corsivo (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "Sottolineato (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "Barrato",
|
||||
"pad.toolbar.ol.title": "Elenco numerato",
|
||||
"pad.toolbar.ul.title": "Elenco puntato",
|
||||
"pad.toolbar.indent.title": "Rientro",
|
||||
"pad.toolbar.unindent.title": "Riduci rientro",
|
||||
"pad.toolbar.undo.title": "Annulla (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "Ripeti (Ctrl-Y)",
|
||||
"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.timeslider.title": "Presentazione cronologia",
|
||||
"pad.toolbar.savedRevision.title": "Versione salvata",
|
||||
"pad.toolbar.settings.title": "Impostazioni",
|
||||
"pad.toolbar.embed.title": "Condividi ed incorpora questo Pad",
|
||||
"pad.toolbar.showusers.title": "Visualizza gli utenti su questo Pad",
|
||||
"pad.colorpicker.save": "Salva",
|
||||
"pad.colorpicker.cancel": "Annulla",
|
||||
"pad.loading": "Caricamento in corso\u2026",
|
||||
"pad.passwordRequired": "Per accedere a questo Pad \u00e8 necessaria una password",
|
||||
"pad.permissionDenied": "Non si dispone dei permessi necessari per accedere a questo Pad",
|
||||
"pad.wrongPassword": "La password \u00e8 sbagliata",
|
||||
"pad.settings.padSettings": "Impostazioni del Pad",
|
||||
"pad.settings.myView": "Mia visualizzazione",
|
||||
"pad.settings.stickychat": "Chat sempre sullo schermo",
|
||||
"pad.settings.colorcheck": "Colori che indicano gli autori",
|
||||
"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.normal": "Normale",
|
||||
"pad.settings.fontType.monospaced": "A larghezza fissa",
|
||||
"pad.settings.globalView": "Visualizzazione globale",
|
||||
"pad.settings.language": "Lingua:",
|
||||
"pad.importExport.import_export": "Importazione/esportazione",
|
||||
"pad.importExport.import": "Carica un file di testo o un documento",
|
||||
"pad.importExport.importSuccessful": "Riuscito!",
|
||||
"pad.importExport.export": "Esportare il Pad corrente come:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Solo testo",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "\u00c8 possibile importare solo i formati di testo semplice o HTML. Per metodi pi\u00f9 avanzati di importazione \u003Ca href=https://github.com/broadcast/etherpad-lite/wiki/How-to-enable-importing and exporting-different file formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\u003Einstallare Abiword\u003C/a\u003E.",
|
||||
"pad.modals.connected": "Connesso.",
|
||||
"pad.modals.reconnecting": "Riconnessione al pad in corso...",
|
||||
"pad.modals.forcereconnect": "Forza la riconnessione",
|
||||
"pad.modals.userdup": "Aperto in un'altra finestra",
|
||||
"pad.modals.userdup.explanation": "Questo Pad sembra essere aperto in pi\u00f9 di una finestra del browser su questo computer.",
|
||||
"pad.modals.userdup.advice": "Riconnettiti per utilizzare invece questa finestra.",
|
||||
"pad.modals.unauth": "Non autorizzato",
|
||||
"pad.modals.unauth.explanation": "Le tue autorizzazioni sono state modificate durante la visualizzazione di questa pagina. Prova a riconnetterti.",
|
||||
"pad.modals.looping.explanation": "Ci sono problemi di comunicazione con il server di sincronizzazione.",
|
||||
"pad.modals.looping.cause": "Forse sei connesso attraverso un firewall o un server proxy non compatibili.",
|
||||
"pad.modals.initsocketfail": "Il server non \u00e8 raggiungibile.",
|
||||
"pad.modals.initsocketfail.explanation": "Impossibile connettersi al server di sincronizzazione.",
|
||||
"pad.modals.initsocketfail.cause": "Questo probabilmente \u00e8 dovuto a un problema con il tuo browser o con la tua connessione a internet.",
|
||||
"pad.modals.slowcommit.explanation": "Il server non risponde.",
|
||||
"pad.modals.slowcommit.cause": "Questo potrebbe essere dovuto a problemi con la connettivit\u00e0 di rete.",
|
||||
"pad.modals.badChangeset.explanation": "Una modifica che hai fatto \u00e8 stata considerata illegale dal server di sincronizzazione.",
|
||||
"pad.modals.badChangeset.cause": "Ci\u00f2 potrebbe essere causato da una errata configurazione del server o qualche altro comportamento imprevisto. Si prega di contattare l'amministratore del servizio, se si ritiene che questo sia un errore. Prova a riconnetterti per tentare di continuare a modificare.",
|
||||
"pad.modals.corruptPad.explanation": "Il pad a cui stai tentando di accedere \u00e8 danneggiato.",
|
||||
"pad.modals.corruptPad.cause": "Ci\u00f2 potrebbe essere causato da una errata configurazione del server o qualche altro comportamento imprevisto. Si prega di contattare l'amministratore del servizio.",
|
||||
"pad.modals.deleted": "Cancellato.",
|
||||
"pad.modals.deleted.explanation": "Questo Pad \u00e8 stato rimosso.",
|
||||
"pad.modals.disconnected": "Sei stato disconnesso.",
|
||||
"pad.modals.disconnected.explanation": "La connessione al server \u00e8 stata persa",
|
||||
"pad.modals.disconnected.cause": "Il server potrebbe essere non disponibile. Informa l'amministrazione del servizio se il problema persiste.",
|
||||
"pad.share": "Condividi questo Pad",
|
||||
"pad.share.readonly": "Sola lettura",
|
||||
"pad.share.link": "Link",
|
||||
"pad.share.emebdcode": "Incorpora URL",
|
||||
"pad.chat": "Chat",
|
||||
"pad.chat.title": "Apri la chat per questo Pad.",
|
||||
"pad.chat.loadmessages": "Carica altri messaggi",
|
||||
"timeslider.pageTitle": "Cronologia {{appTitle}}",
|
||||
"timeslider.toolbar.returnbutton": "Ritorna al Pad",
|
||||
"timeslider.toolbar.authors": "Autori:",
|
||||
"timeslider.toolbar.authorsList": "Nessun autore",
|
||||
"timeslider.toolbar.exportlink.title": "esporta",
|
||||
"timeslider.exportCurrent": "Esporta la versione corrente come:",
|
||||
"timeslider.version": "Versione {{version}}",
|
||||
"timeslider.saved": "Salvato {{day}} {{month}} {{year}}",
|
||||
"timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "gennaio",
|
||||
"timeslider.month.february": "febbraio",
|
||||
"timeslider.month.march": "marzo",
|
||||
"timeslider.month.april": "aprile",
|
||||
"timeslider.month.may": "maggio",
|
||||
"timeslider.month.june": "giugno",
|
||||
"timeslider.month.july": "luglio",
|
||||
"timeslider.month.august": "agosto",
|
||||
"timeslider.month.september": "settembre",
|
||||
"timeslider.month.october": "ottobre",
|
||||
"timeslider.month.november": "novembre",
|
||||
"timeslider.month.december": "dicembre",
|
||||
"timeslider.unnamedauthors": "{{num}} {[plural(num) one: autore, other: autori ]} senza nome",
|
||||
"pad.savedrevs.marked": "Questa revisione \u00e8 ora contrassegnata come una versione salvata",
|
||||
"pad.userlist.entername": "Inserisci il tuo nome",
|
||||
"pad.userlist.unnamed": "senza nome",
|
||||
"pad.userlist.guest": "Ospite",
|
||||
"pad.userlist.deny": "Nega",
|
||||
"pad.userlist.approve": "Approva",
|
||||
"pad.editbar.clearcolors": "Eliminare i colori degli autori sull'intero documento?",
|
||||
"pad.impexp.importbutton": "Importa ora",
|
||||
"pad.impexp.importing": "Importazione in corso...",
|
||||
"pad.impexp.confirmimport": "L'importazione del file sovrascriver\u00e0 il testo attuale del Pad. Sei sicuro di voler procedere?",
|
||||
"pad.impexp.convertFailed": "Non \u00e8 stato possibile importare questo file. Utilizzare un formato differente o copiare ed incollare a mano",
|
||||
"pad.impexp.uploadFailed": "Caricamento non riuscito, riprovare",
|
||||
"pad.impexp.importfailed": "Importazione fallita",
|
||||
"pad.impexp.copypaste": "Si prega di copiare e incollare",
|
||||
"pad.impexp.exportdisabled": "L'esportazione come {{type}} \u00e8 disabilitata. Contattare l'amministratore per i dettagli."
|
||||
}
|
119
sources/src/locales/ja.json
Normal file
119
sources/src/locales/ja.json
Normal file
|
@ -0,0 +1,119 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Shirayuki"
|
||||
]
|
||||
},
|
||||
"index.newPad": "\u65b0\u898f\u4f5c\u6210",
|
||||
"index.createOpenPad": "\u307e\u305f\u306f\u4f5c\u6210/\u7de8\u96c6\u3059\u308b\u30d1\u30c3\u30c9\u540d\u3092\u5165\u529b:",
|
||||
"pad.toolbar.bold.title": "\u592a\u5b57 (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "\u659c\u4f53 (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "\u4e0b\u7dda (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "\u53d6\u308a\u6d88\u3057\u7dda",
|
||||
"pad.toolbar.ol.title": "\u756a\u53f7\u4ed8\u304d\u30ea\u30b9\u30c8",
|
||||
"pad.toolbar.ul.title": "\u756a\u53f7\u306a\u3057\u30ea\u30b9\u30c8",
|
||||
"pad.toolbar.indent.title": "\u30a4\u30f3\u30c7\u30f3\u30c8",
|
||||
"pad.toolbar.unindent.title": "\u30a4\u30f3\u30c7\u30f3\u30c8\u89e3\u9664",
|
||||
"pad.toolbar.undo.title": "\u5143\u306b\u623b\u3059 (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "\u3084\u308a\u76f4\u3057 (Ctrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "\u4f5c\u8005\u306e\u8272\u5206\u3051\u3092\u6d88\u53bb",
|
||||
"pad.toolbar.import_export.title": "\u4ed6\u306e\u5f62\u5f0f\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u30a4\u30f3\u30dd\u30fc\u30c8/\u30a8\u30af\u30b9\u30dd\u30fc\u30c8",
|
||||
"pad.toolbar.timeslider.title": "\u30bf\u30a4\u30e0\u30b9\u30e9\u30a4\u30c0\u30fc",
|
||||
"pad.toolbar.savedRevision.title": "\u7248\u3092\u4fdd\u5b58",
|
||||
"pad.toolbar.settings.title": "\u8a2d\u5b9a",
|
||||
"pad.toolbar.embed.title": "\u3053\u306e\u30d1\u30c3\u30c9\u3092\u5171\u6709\u3059\u308b/\u57cb\u3081\u8fbc\u3080",
|
||||
"pad.toolbar.showusers.title": "\u3053\u306e\u30d1\u30c3\u30c9\u306e\u30e6\u30fc\u30b6\u30fc\u3092\u8868\u793a",
|
||||
"pad.colorpicker.save": "\u4fdd\u5b58",
|
||||
"pad.colorpicker.cancel": "\u30ad\u30e3\u30f3\u30bb\u30eb",
|
||||
"pad.loading": "\u8aad\u307f\u8fbc\u307f\u4e2d...",
|
||||
"pad.passwordRequired": "\u3053\u306e\u30d1\u30c3\u30c9\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u306b\u306f\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u5fc5\u8981\u3067\u3059",
|
||||
"pad.permissionDenied": "\u3042\u306a\u305f\u306b\u306f\u3053\u306e\u30d1\u30c3\u30c9\u3078\u306e\u30a2\u30af\u30bb\u30b9\u8a31\u53ef\u304c\u3042\u308a\u307e\u305b\u3093",
|
||||
"pad.wrongPassword": "\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u9593\u9055\u3063\u3066\u3044\u307e\u3059",
|
||||
"pad.settings.padSettings": "\u30d1\u30c3\u30c9\u306e\u8a2d\u5b9a",
|
||||
"pad.settings.myView": "\u500b\u4eba\u8a2d\u5b9a",
|
||||
"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.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.normal": "\u901a\u5e38",
|
||||
"pad.settings.fontType.monospaced": "\u56fa\u5b9a\u5e45",
|
||||
"pad.settings.globalView": "\u30b0\u30ed\u30fc\u30d0\u30eb\u8a2d\u5b9a",
|
||||
"pad.settings.language": "\u8a00\u8a9e:",
|
||||
"pad.importExport.import_export": "\u30a4\u30f3\u30dd\u30fc\u30c8/\u30a8\u30af\u30b9\u30dd\u30fc\u30c8",
|
||||
"pad.importExport.import": "\u3042\u3089\u3086\u308b\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u3084\u6587\u66f8\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3067\u304d\u307e\u3059",
|
||||
"pad.importExport.importSuccessful": "\u5b8c\u4e86\u3057\u307e\u3057\u305f\u3002",
|
||||
"pad.importExport.export": "\u73fe\u5728\u306e\u30d1\u30c3\u30c9\u3092\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u3059\u308b\u5f62\u5f0f:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "\u30d7\u30ec\u30fc\u30f3\u30c6\u30ad\u30b9\u30c8",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "\u30d7\u30ec\u30fc\u30f3\u30c6\u30ad\u30b9\u30c8\u307e\u305f\u306f HTML \u30d5\u30a1\u30a4\u30eb\u304b\u3089\u306e\u307f\u30a4\u30f3\u30dd\u30fc\u30c8\u3067\u304d\u307e\u3059\u3002\u3088\u308a\u9ad8\u5ea6\u306a\u30a4\u30f3\u30dd\u30fc\u30c8\u6a5f\u80fd\u3092\u4f7f\u7528\u3059\u308b\u306b\u306f\u3001\u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003Eabiword \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u003C/a\u003E\u3057\u3066\u304f\u3060\u3055\u3044\u3002",
|
||||
"pad.modals.connected": "\u63a5\u7d9a\u3055\u308c\u307e\u3057\u305f\u3002",
|
||||
"pad.modals.reconnecting": "\u30d1\u30c3\u30c9\u306b\u518d\u63a5\u7d9a\u4e2d...",
|
||||
"pad.modals.forcereconnect": "\u5f37\u5236\u7684\u306b\u518d\u63a5\u7d9a",
|
||||
"pad.modals.userdup": "\u5225\u306e\u30a6\u30a3\u30f3\u30c9\u30a6\u3067\u958b\u304b\u308c\u3066\u3044\u307e\u3059",
|
||||
"pad.modals.userdup.explanation": "\u3053\u306e\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u30fc\u306e\u8907\u6570\u306e\u30d6\u30e9\u30a6\u30b6\u30fc\u30a6\u30a3\u30f3\u30c9\u30a6\u3067\u3001\u3053\u306e\u30d1\u30c3\u30c9\u3092\u958b\u3044\u3066\u3044\u308b\u3088\u3046\u3067\u3059\u3002",
|
||||
"pad.modals.userdup.advice": "\u4ee3\u308f\u308a\u306b\u3053\u306e\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u518d\u63a5\u7d9a\u3057\u307e\u3059\u3002",
|
||||
"pad.modals.unauth": "\u6a29\u9650\u304c\u3042\u308a\u307e\u305b\u3093",
|
||||
"pad.modals.unauth.explanation": "\u3053\u306e\u30da\u30fc\u30b8\u306e\u95b2\u89a7\u4e2d\u306b\u3042\u306a\u305f\u306e\u6a29\u9650\u304c\u5909\u66f4\u3055\u308c\u307e\u3057\u305f\u3002\u518d\u63a5\u7d9a\u3092\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002",
|
||||
"pad.modals.looping.explanation": "\u540c\u671f\u30b5\u30fc\u30d0\u30fc\u3068\u306e\u901a\u4fe1\u306b\u554f\u984c\u70b9\u304c\u3042\u308a\u307e\u3059\u3002",
|
||||
"pad.modals.looping.cause": "\u3054\u4f7f\u7528\u4e2d\u306e\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u307e\u305f\u306f\u30d7\u30ed\u30ad\u30b7\u3068\u306f\u4e92\u63db\u6027\u304c\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002",
|
||||
"pad.modals.initsocketfail": "\u30b5\u30fc\u30d0\u30fc\u306b\u5230\u9054\u3067\u304d\u307e\u305b\u3093\u3002",
|
||||
"pad.modals.initsocketfail.explanation": "\u540c\u671f\u30b5\u30fc\u30d0\u30fc\u306b\u63a5\u7d9a\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002",
|
||||
"pad.modals.initsocketfail.cause": "\u3053\u308c\u306f\u3054\u4f7f\u7528\u4e2d\u306e\u30d6\u30e9\u30a6\u30b6\u30fc\u3084\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u63a5\u7d9a\u306e\u554f\u984c\u304c\u539f\u56e0\u3067\u3042\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002",
|
||||
"pad.modals.slowcommit.explanation": "\u30b5\u30fc\u30d0\u30fc\u304c\u5fdc\u7b54\u3057\u307e\u305b\u3093\u3002",
|
||||
"pad.modals.slowcommit.cause": "\u3053\u308c\u306f\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u63a5\u7d9a\u306e\u554f\u984c\u304c\u539f\u56e0\u3067\u3042\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002",
|
||||
"pad.modals.corruptPad.explanation": "\u30a2\u30af\u30bb\u30b9\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u30d1\u30c3\u30c9\u306f\u7834\u640d\u3057\u3066\u3044\u307e\u3059\u3002",
|
||||
"pad.modals.deleted": "\u524a\u9664\u3055\u308c\u307e\u3057\u305f\u3002",
|
||||
"pad.modals.deleted.explanation": "\u3053\u306e\u30d1\u30c3\u30c9\u306f\u524a\u9664\u3055\u308c\u307e\u3057\u305f\u3002",
|
||||
"pad.modals.disconnected": "\u5207\u65ad\u3055\u308c\u307e\u3057\u305f\u3002",
|
||||
"pad.modals.disconnected.explanation": "\u30b5\u30fc\u30d0\u30fc\u3068\u306e\u63a5\u7d9a\u304c\u5931\u308f\u308c\u307e\u3057\u305f",
|
||||
"pad.modals.disconnected.cause": "\u30b5\u30fc\u30d0\u30fc\u3092\u5229\u7528\u3067\u304d\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u306e\u554f\u984c\u304c\u89e3\u6c7a\u3057\u306a\u3044\u5834\u5408\u306f\u30b5\u30fc\u30d3\u30b9\u306e\u7ba1\u7406\u8005\u306b\u304a\u77e5\u3089\u305b\u304f\u3060\u3055\u3044\u3002",
|
||||
"pad.share": "\u3053\u306e\u30d1\u30c3\u30c9\u3092\u5171\u6709",
|
||||
"pad.share.readonly": "\u8aad\u307f\u53d6\u308a\u5c02\u7528",
|
||||
"pad.share.link": "\u30ea\u30f3\u30af",
|
||||
"pad.share.emebdcode": "\u57cb\u3081\u8fbc\u307f\u7528 URL",
|
||||
"pad.chat": "\u30c1\u30e3\u30c3\u30c8",
|
||||
"pad.chat.title": "\u3053\u306e\u30d1\u30c3\u30c9\u306e\u30c1\u30e3\u30c3\u30c8\u3092\u958b\u304d\u307e\u3059\u3002",
|
||||
"pad.chat.loadmessages": "\u305d\u306e\u4ed6\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8aad\u307f\u8fbc\u3080",
|
||||
"timeslider.pageTitle": "{{appTitle}} \u30bf\u30a4\u30e0\u30b9\u30e9\u30a4\u30c0\u30fc",
|
||||
"timeslider.toolbar.returnbutton": "\u30d1\u30c3\u30c9\u306b\u623b\u308b",
|
||||
"timeslider.toolbar.authors": "\u4f5c\u8005:",
|
||||
"timeslider.toolbar.authorsList": "\u4f5c\u8005\u306a\u3057",
|
||||
"timeslider.toolbar.exportlink.title": "\u30a8\u30af\u30b9\u30dd\u30fc\u30c8",
|
||||
"timeslider.exportCurrent": "\u73fe\u5728\u306e\u7248\u3092\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u3059\u308b\u5f62\u5f0f:",
|
||||
"timeslider.version": "\u30d0\u30fc\u30b8\u30e7\u30f3 {{version}}",
|
||||
"timeslider.saved": "| {{year}}\u5e74{{month}}{{day}}\u65e5\u306b\u4fdd\u5b58",
|
||||
"timeslider.dateformat": "{{year}}\u5e74{{month}}\u6708{{day}}\u65e5 {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "1\u6708",
|
||||
"timeslider.month.february": "2\u6708",
|
||||
"timeslider.month.march": "3\u6708",
|
||||
"timeslider.month.april": "4\u6708",
|
||||
"timeslider.month.may": "5\u6708",
|
||||
"timeslider.month.june": "6\u6708",
|
||||
"timeslider.month.july": "7\u6708",
|
||||
"timeslider.month.august": "8\u6708",
|
||||
"timeslider.month.september": "9\u6708",
|
||||
"timeslider.month.october": "10\u6708",
|
||||
"timeslider.month.november": "11\u6708",
|
||||
"timeslider.month.december": "12\u6708",
|
||||
"timeslider.unnamedauthors": "{{num}} \u4eba\u306e\u533f\u540d\u306e{[plural(num) other: \u4f5c\u8005 ]}",
|
||||
"pad.savedrevs.marked": "\u3053\u306e\u7248\u3092\u3001\u4fdd\u5b58\u6e08\u307f\u306e\u7248\u3068\u3057\u3066\u30de\u30fc\u30af\u3057\u307e\u3057\u305f\u3002",
|
||||
"pad.userlist.entername": "\u540d\u524d\u3092\u5165\u529b",
|
||||
"pad.userlist.unnamed": "\u540d\u524d\u306a\u3057",
|
||||
"pad.userlist.guest": "\u30b2\u30b9\u30c8",
|
||||
"pad.userlist.deny": "\u62d2\u5426",
|
||||
"pad.userlist.approve": "\u627f\u8a8d",
|
||||
"pad.editbar.clearcolors": "\u6587\u66f8\u5168\u4f53\u306e\u4f5c\u8005\u306e\u8272\u5206\u3051\u3092\u6d88\u53bb\u3057\u307e\u3059\u304b?",
|
||||
"pad.impexp.importbutton": "\u30a4\u30f3\u30dd\u30fc\u30c8\u3059\u308b",
|
||||
"pad.impexp.importing": "\u30a4\u30f3\u30dd\u30fc\u30c8\u4e2d...",
|
||||
"pad.impexp.confirmimport": "\u30d5\u30a1\u30a4\u30eb\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3059\u308b\u3068\u3001\u30d1\u30c3\u30c9\u306e\u73fe\u5728\u306e\u30c6\u30ad\u30b9\u30c8\u304c\u4e0a\u66f8\u304d\u3055\u308c\u307e\u3059\u3002\u672c\u5f53\u306b\u7d9a\u884c\u3057\u307e\u3059\u304b?",
|
||||
"pad.impexp.convertFailed": "\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4ed6\u306e\u6587\u66f8\u5f62\u5f0f\u3092\u4f7f\u7528\u3059\u308b\u304b\u3001\u624b\u4f5c\u696d\u3067\u30b3\u30d4\u30fc \u0026 \u30da\u30fc\u30b9\u30c8\u3057\u3066\u304f\u3060\u3055\u3044",
|
||||
"pad.impexp.uploadFailed": "\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u3082\u3046\u4e00\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044",
|
||||
"pad.impexp.importfailed": "\u30a4\u30f3\u30dd\u30fc\u30c8\u306b\u5931\u6557\u3057\u307e\u3057\u305f",
|
||||
"pad.impexp.copypaste": "\u30b3\u30d4\u30fc \u0026 \u30da\u30fc\u30b9\u30c8\u3057\u3066\u304f\u3060\u3055\u3044",
|
||||
"pad.impexp.exportdisabled": "{{type}}\u5f62\u5f0f\u3067\u306e\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u306f\u7121\u52b9\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002\u8a73\u7d30\u306f\u30b7\u30b9\u30c6\u30e0\u7ba1\u7406\u8005\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002"
|
||||
}
|
52
sources/src/locales/km.json
Normal file
52
sources/src/locales/km.json
Normal file
|
@ -0,0 +1,52 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"\u179c\u17d0\u178e\u1790\u17b6\u179a\u17b7\u1791\u17d2\u1792"
|
||||
]
|
||||
},
|
||||
"index.newPad": "\u1795\u17c1\u178f\u1790\u17d2\u1798\u17b8",
|
||||
"index.createOpenPad": "\u17ac\u1794\u1784\u17d2\u1780\u17be\u178f/\u1794\u17be\u1780\u1795\u17c1\u178f\u178a\u17c2\u179b\u1798\u17b6\u1793\u1788\u17d2\u1798\u17c4\u17c7\u17d6",
|
||||
"pad.toolbar.bold.title": "\u178a\u17b7\u178f (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "\u1791\u17d2\u179a\u17c1\u178f (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "\u1782\u17bc\u179f\u1794\u1793\u17d2\u1791\u17b6\u178f\u17cb (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "\u1786\u17bc\u178f\u1785\u17c4\u179b",
|
||||
"pad.toolbar.ol.title": "\u1794\u1789\u17d2\u1787\u17b8\u178f\u17b6\u1798\u178f\u1798\u17d2\u179a\u17c0\u1794",
|
||||
"pad.toolbar.ul.title": "\u1794\u1789\u17d2\u1787\u17b8\u1798\u17b7\u1793\u178f\u17b6\u1798\u178f\u1798\u17d2\u179a\u17c0\u1794",
|
||||
"pad.toolbar.indent.title": "\u1781\u17b7\u178f\u1785\u17bc\u179b\u1780\u17d2\u1793\u17bb\u1784",
|
||||
"pad.toolbar.unindent.title": "\u1781\u17b7\u178f\u1785\u17c1\u1789\u1780\u17d2\u179a\u17c5",
|
||||
"pad.toolbar.undo.title": "\u17a2\u17b6\u1793\u17cb\u178c\u17bc (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "\u179a\u17b8\u178c\u17bc (Ctrl-Y)",
|
||||
"pad.toolbar.import_export.title": "\u1793\u17b6\u17c6\u1785\u17bc\u179b/\u1793\u17b6\u17c6\u1785\u17c1\u1789 \u1796\u17b8/\u1791\u17c5\u1794\u17d2\u179a\u1797\u17c1\u1791\u17af\u1780\u179f\u17b6\u179a\u1795\u17d2\u179f\u17c1\u1784\u1791\u17c0\u178f",
|
||||
"pad.toolbar.settings.title": "\u1780\u17b6\u179a\u1780\u17c6\u178e\u178f\u17cb\u200b",
|
||||
"pad.colorpicker.save": "\u179a\u1780\u17d2\u179f\u17b6\u1791\u17bb\u1780",
|
||||
"pad.colorpicker.cancel": "\u1794\u17c4\u17c7\u1794\u1784\u17cb",
|
||||
"pad.loading": "\u1780\u17c6\u1796\u17bb\u1784\u1795\u17d2\u1791\u17bb\u1780\u2026",
|
||||
"pad.settings.fontType": "\u1794\u17d2\u179a\u1797\u17c1\u1791\u1796\u17bb\u1798\u17d2\u1796\u17a2\u1780\u17d2\u179f\u179a\u17d6",
|
||||
"pad.settings.fontType.normal": "\u1792\u1798\u17d2\u1798\u178f\u17b6",
|
||||
"pad.settings.language": "\u1797\u17b6\u179f\u17b6\u17d6",
|
||||
"pad.importExport.import_export": "\u1793\u17b6\u17c6\u1785\u17bc\u179b/\u1793\u17b6\u17c6\u1785\u17c1\u1789",
|
||||
"pad.importExport.importSuccessful": "\u178a\u17c4\u1799\u1787\u17c4\u1782\u1787\u17d0\u1799!",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Plain text",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.modals.connected": "\u1794\u17b6\u1793\u200b\u178f\u1797\u17d2\u1787\u17b6\u1794\u17cb\u200b\u17d4",
|
||||
"pad.share.link": "\u178f\u17c6\u178e\u200b\u1797\u17d2\u1787\u17b6\u1794\u17cb",
|
||||
"timeslider.month.january": "\u1798\u1780\u179a\u17b6",
|
||||
"timeslider.month.february": "\u1780\u17bb\u1798\u17d2\u1797\u17c8",
|
||||
"timeslider.month.march": "\u1798\u17b7\u1793\u17b6",
|
||||
"timeslider.month.april": "\u1798\u17c1\u179f\u17b6",
|
||||
"timeslider.month.may": "\u17a7\u179f\u1797\u17b6",
|
||||
"timeslider.month.june": "\u1798\u17b7\u1790\u17bb\u1793\u17b6\u200b",
|
||||
"timeslider.month.july": "\u1780\u1780\u17d2\u178a\u178a\u17b6\u200b",
|
||||
"timeslider.month.august": "\u179f\u17b8\u17a0\u17b6",
|
||||
"timeslider.month.september": "\u1780\u1789\u17d2\u1789\u17b6",
|
||||
"timeslider.month.october": "\u178f\u17bb\u179b\u17b6",
|
||||
"timeslider.month.november": "\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6",
|
||||
"timeslider.month.december": "\u1792\u17d2\u1793\u17bc",
|
||||
"pad.userlist.guest": "\u1797\u17d2\u1789\u17c0\u179c",
|
||||
"pad.impexp.importbutton": "\u1793\u17b6\u17c6\u1785\u17bc\u179b\u17a5\u17a1\u17bc\u179c\u1793\u17c1\u17c7",
|
||||
"pad.impexp.importing": "\u1780\u17c6\u1796\u17bb\u1784\u1793\u17b6\u17c6\u1785\u17bc\u179b\u200b..."
|
||||
}
|
118
sources/src/locales/ko.json
Normal file
118
sources/src/locales/ko.json
Normal file
|
@ -0,0 +1,118 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": {
|
||||
"1": "\uc544\ub77c"
|
||||
}
|
||||
},
|
||||
"index.newPad": "\uc0c8 \ud328\ub4dc",
|
||||
"index.createOpenPad": "\ub610\ub294 \ub2e4\uc74c \uc774\ub984\uc73c\ub85c \ud328\ub4dc \ub9cc\ub4e4\uae30/\uc5f4\uae30:",
|
||||
"pad.toolbar.bold.title": "\uad75\uac8c (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "\uae30\uc6b8\uc784 (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "\ubc11\uc904 (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "\ucde8\uc18c\uc120",
|
||||
"pad.toolbar.ol.title": "\uc21c\uc11c \uc788\ub294 \ubaa9\ub85d",
|
||||
"pad.toolbar.ul.title": "\uc21c\uc11c \uc5c6\ub294 \ubaa9\ub85d",
|
||||
"pad.toolbar.indent.title": "\ub4e4\uc5ec\uc4f0\uae30",
|
||||
"pad.toolbar.unindent.title": "\ub0b4\uc5b4\uc4f0\uae30",
|
||||
"pad.toolbar.undo.title": "\uc2e4\ud589 \ucde8\uc18c (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "\ub2e4\uc2dc \uc2e4\ud589 (Ctrl-Y)",
|
||||
"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.timeslider.title": "\uc2dc\uac04\uc2ac\ub77c\uc774\ub354",
|
||||
"pad.toolbar.savedRevision.title": "\ud310 \uc800\uc7a5",
|
||||
"pad.toolbar.settings.title": "\uc124\uc815",
|
||||
"pad.toolbar.embed.title": "\uc774 \ud328\ub4dc\ub97c \uacf5\uc720\ud558\uace0 \ud3ec\ud568\ud558\uae30",
|
||||
"pad.toolbar.showusers.title": "\uc774 \ud328\ub4dc\uc5d0 \uc0ac\uc6a9\uc790 \ubcf4\uae30",
|
||||
"pad.colorpicker.save": "\uc800\uc7a5",
|
||||
"pad.colorpicker.cancel": "\ucde8\uc18c",
|
||||
"pad.loading": "\ubd88\ub7ec\uc624\ub294 \uc911...",
|
||||
"pad.passwordRequired": "\uc774 \ud328\ub4dc\uc5d0 \uc811\uadfc\ud558\ub824\uba74 \ube44\ubc00\ubc88\ud638\uac00 \ud544\uc694\ud569\ub2c8\ub2e4",
|
||||
"pad.permissionDenied": "\uc774 \ud328\ub4dc\uc5d0 \uc811\uadfc\ud560 \uad8c\ud55c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4",
|
||||
"pad.wrongPassword": "\ube44\ubc00\ubc88\ud638\uac00 \uc798\ubabb\ub418\uc5c8\uc2b5\ub2c8\ub2e4",
|
||||
"pad.settings.padSettings": "\ud328\ub4dc \uc124\uc815",
|
||||
"pad.settings.myView": "\ub0b4 \ubcf4\uae30",
|
||||
"pad.settings.stickychat": "\ud654\uba74\uc5d0 \ud56d\uc0c1 \ub300\ud654 \ubcf4\uae30",
|
||||
"pad.settings.colorcheck": "\uc800\uc790 \uc0c9",
|
||||
"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.normal": "\ubcf4\ud1b5",
|
||||
"pad.settings.fontType.monospaced": "\uace0\uc815 \ud3ed",
|
||||
"pad.settings.globalView": "\uc804\uc5ed \ubcf4\uae30",
|
||||
"pad.settings.language": "\uc5b8\uc5b4:",
|
||||
"pad.importExport.import_export": "\uac00\uc838\uc624\uae30/\ub0b4\ubcf4\ub0b4\uae30",
|
||||
"pad.importExport.import": "\ud14d\uc2a4\ud2b8 \ud30c\uc77c\uc774\ub098 \ubb38\uc11c \uc62c\ub9ac\uae30",
|
||||
"pad.importExport.importSuccessful": "\uc131\uacf5!",
|
||||
"pad.importExport.export": "\ub2e4\uc74c\uc73c\ub85c \ud604\uc7ac \ud328\ub4dc \ub0b4\ubcf4\ub0b4\uae30:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "\uc77c\ubc18 \ud14d\uc2a4\ud2b8",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "\uc77c\ubc18 \ud14d\uc2a4\ud2b8\ub098 html \ud615\uc2dd\uc73c\ub85c\ub9cc \uac00\uc838\uc62c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uace0\uae09 \uac00\uc838\uc624\uae30 \uae30\ub2a5\uc5d0 \ub300\ud574\uc11c\ub294 \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003Eabiword\ub97c \uc124\uce58\u003C/a\u003E\ud558\uc138\uc694.",
|
||||
"pad.modals.connected": "\uc5f0\uacb0\ud588\uc2b5\ub2c8\ub2e4.",
|
||||
"pad.modals.reconnecting": "\ud328\ub4dc\uc5d0 \ub2e4\uc2dc \uc5f0\uacb0 \uc911..",
|
||||
"pad.modals.forcereconnect": "\uac15\uc81c\ub85c \ub2e4\uc2dc \uc5f0\uacb0",
|
||||
"pad.modals.userdup": "\ub2e4\ub978 \ucc3d\uc5d0\uc11c \uc5f4\ub9ac\uace0 \uc788\uc2b5\ub2c8\ub2e4",
|
||||
"pad.modals.userdup.explanation": "\uc774 \ud328\ub4dc\ub294 \uc774 \ucef4\ud4e8\ud130\uc5d0 \ud558\ub098\ubcf4\ub2e4 \ub9ce\uc774 \ube0c\ub77c\uc6b0\uc800 \ucc3d\uc5d0\uc11c \uc5f4\ub9b0 \uac83 \uac19\uc2b5\ub2c8\ub2e4.",
|
||||
"pad.modals.userdup.advice": "\ub300\uc2e0 \uc774 \ucc3d\uc744 \uc0ac\uc6a9\ud574 \ub2e4\uc2dc \uc5f0\uacb0\ud569\ub2c8\ub2e4.",
|
||||
"pad.modals.unauth": "\uad8c\ud55c\uc774 \uc5c6\uc74c",
|
||||
"pad.modals.unauth.explanation": "\uc774 \ubb38\uc11c\ub97c \ubcf4\ub294 \ub3d9\uc548 \uad8c\ud55c\uc774 \ubc14\ub00c\uc5c8\uc2b5\ub2c8\ub2e4. \ub2e4\uc2dc \uc5f0\uacb0\uc744 \uc2dc\ub3c4\ud558\uc138\uc694.",
|
||||
"pad.modals.looping.explanation": "\ub3d9\uae30 \uc11c\ubc84\uc640\uc758 \ud1b5\uc2e0 \ubb38\uc81c\uac00 \uc788\uc2b5\ub2c8\ub2e4.",
|
||||
"pad.modals.looping.cause": "\uc544\ub9c8 \ud638\ud658\ub418\uc9c0 \uc54a\ub294 \ubc29\ud654\ubcbd\uc774\ub098 \ud504\ub85d\uc2dc\ub97c \ud1b5\ud574 \uc5f0\uacb0\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.",
|
||||
"pad.modals.initsocketfail": "\uc11c\ubc84\uc5d0 \uc5f0\uacb0\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.",
|
||||
"pad.modals.initsocketfail.explanation": "\ub3d9\uae30 \uc11c\ubc84\uc5d0 \uc5f0\uacb0\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.",
|
||||
"pad.modals.initsocketfail.cause": "\uc544\ub9c8\ub3c4 \ube0c\ub77c\uc6b0\uc800\ub098 \uc778\ud130\ub137 \uc5f0\uacb0\uc5d0 \ubb38\uc81c\uac00 \uc788\uae30 \ub54c\ubb38\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4.",
|
||||
"pad.modals.slowcommit.explanation": "\uc11c\ubc84\uac00 \uc751\ub2f5\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.",
|
||||
"pad.modals.slowcommit.cause": "\ub124\ud2b8\uc6cc\ud06c \uc5f0\uacb0\uc5d0 \ubb38\uc81c\uac00 \uc788\uae30 \ub54c\ubb38\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4.",
|
||||
"pad.modals.deleted": "\uc0ad\uc81c\ub418\uc5c8\uc2b5\ub2c8\ub2e4.",
|
||||
"pad.modals.deleted.explanation": "\uc774 \ud328\ub4dc\ub97c \uc81c\uac70\ud588\uc2b5\ub2c8\ub2e4.",
|
||||
"pad.modals.disconnected": "\uc5f0\uacb0\uc774 \ub04a\uc5b4\uc84c\uc2b5\ub2c8\ub2e4.",
|
||||
"pad.modals.disconnected.explanation": "\uc11c\ubc84\uc5d0\uc11c \uc5f0\uacb0\uc744 \uc783\uc5c8\uc2b5\ub2c8\ub2e4",
|
||||
"pad.modals.disconnected.cause": "\uc11c\ubc84\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc774 \ubb38\uc81c\uac00 \uacc4\uc18d \ubc1c\uc0dd\ud558\uba74 \uc11c\ube44\uc2a4 \uad00\ub9ac\uc790\uc5d0\uac8c \uc54c\ub824\uc8fc\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4.",
|
||||
"pad.share": "\uc774 \ud328\ub4dc \uacf5\uc720\ud558\uae30",
|
||||
"pad.share.readonly": "\uc77d\uae30 \uc804\uc6a9",
|
||||
"pad.share.link": "\ub9c1\ud06c",
|
||||
"pad.share.emebdcode": "URL \ud3ec\ud568",
|
||||
"pad.chat": "\ub300\ud654",
|
||||
"pad.chat.title": "\uc774 \ud328\ub4dc\uc5d0 \ub300\ud654\ub97c \uc5fd\ub2c8\ub2e4.",
|
||||
"pad.chat.loadmessages": "\ub354 \ub9ce\uc740 \uba54\uc2dc\uc9c0 \ubd88\ub7ec\uc624\uae30",
|
||||
"timeslider.pageTitle": "{{appTitle}} \uc2dc\uac04\uc2ac\ub77c\uc774\ub354",
|
||||
"timeslider.toolbar.returnbutton": "\ud328\ub4dc\ub85c \ub3cc\uc544\uac00\uae30",
|
||||
"timeslider.toolbar.authors": "\uc800\uc790:",
|
||||
"timeslider.toolbar.authorsList": "\uc800\uc790 \uc5c6\uc74c",
|
||||
"timeslider.toolbar.exportlink.title": "\ub0b4\ubcf4\ub0b4\uae30",
|
||||
"timeslider.exportCurrent": "\ud604\uc7ac \ubc84\uc804\uc73c\ub85c \ub0b4\ubcf4\ub0b4\uae30:",
|
||||
"timeslider.version": "\ubc84\uc804 {{version}}",
|
||||
"timeslider.saved": "{{year}}\ub144 {{month}} {{day}}\uc77c\uc5d0 \uc800\uc7a5\ud568",
|
||||
"timeslider.dateformat": "{{year}}\ub144/{{month}}/{{day}}\uc77c {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "1\uc6d4",
|
||||
"timeslider.month.february": "2\uc6d4",
|
||||
"timeslider.month.march": "3\uc6d4",
|
||||
"timeslider.month.april": "4\uc6d4",
|
||||
"timeslider.month.may": "5\uc6d4",
|
||||
"timeslider.month.june": "6\uc6d4",
|
||||
"timeslider.month.july": "7\uc6d4",
|
||||
"timeslider.month.august": "8\uc6d4",
|
||||
"timeslider.month.september": "9\uc6d4",
|
||||
"timeslider.month.october": "10\uc6d4",
|
||||
"timeslider.month.november": "11\uc6d4",
|
||||
"timeslider.month.december": "12\uc6d4",
|
||||
"timeslider.unnamedauthors": "\uc774\ub984 \uc5c6\ub294 {[plural(num) one: \uc800\uc790, other: \uc800\uc790 ]} {{num}}\uba85",
|
||||
"pad.savedrevs.marked": "\uc774 \ud310\uc740 \uc774\uc81c \uc800\uc7a5\ud55c \ud310\uc73c\ub85c \ud45c\uc2dc\ud569\ub2c8\ub2e4.",
|
||||
"pad.userlist.entername": "\uc774\ub984\uc744 \uc785\ub825\ud558\uc138\uc694",
|
||||
"pad.userlist.unnamed": "\uc774\ub984\uc5c6\uc74c",
|
||||
"pad.userlist.guest": "\uc190\ub2d8",
|
||||
"pad.userlist.deny": "\uac70\ubd80",
|
||||
"pad.userlist.approve": "\uc2b9\uc778",
|
||||
"pad.editbar.clearcolors": "\uc804\uccb4 \ubb38\uc11c\uc758 \uc800\uc790 \uc0c9\uc744 \uc9c0\uc6b0\uc2dc\uaca0\uc2b5\ub2c8\uae4c?",
|
||||
"pad.impexp.importbutton": "\uc9c0\uae08 \uac00\uc838\uc624\uae30",
|
||||
"pad.impexp.importing": "\uac00\uc838\uc624\ub294 \uc911...",
|
||||
"pad.impexp.confirmimport": "\ud30c\uc77c\uc744 \uac00\uc838\uc624\uba74 \ud328\ub4dc\uc758 \ud604\uc7ac \ud14d\uc2a4\ud2b8\ub97c \ub36e\uc5b4\uc4f0\uac8c \ub429\ub2c8\ub2e4. \uc9c4\ud589\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?",
|
||||
"pad.impexp.convertFailed": "\uc774 \ud30c\uc77c\uc744 \uac00\uc838\uc62c \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \ub2e4\ub978 \ubb38\uc11c \ud615\uc2dd\uc744 \uc0ac\uc6a9\ud558\uac70\ub098 \uc218\ub3d9\uc73c\ub85c \ubcf5\uc0ac\ud558\uc5ec \ubd99\uc5ec\ub123\uc73c\uc138\uc694",
|
||||
"pad.impexp.uploadFailed": "\uc62c\ub9ac\uae30\ub97c \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4. \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uc138\uc694",
|
||||
"pad.impexp.importfailed": "\uac00\uc838\uc624\uae30\ub97c \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4",
|
||||
"pad.impexp.copypaste": "\ubcf5\uc0ac\ud558\uc5ec \ubd99\uc5ec\ub123\uc73c\uc138\uc694",
|
||||
"pad.impexp.exportdisabled": "{{type}} \ud615\uc2dd\uc73c\ub85c \ub0b4\ubcf4\ub0b4\uae30\uac00 \ube44\ud65c\uc131\ud654\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 \uc2dc\uc2a4\ud15c \uad00\ub9ac\uc790\uc5d0\uac8c \ubb38\uc758\ud558\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4."
|
||||
}
|
118
sources/src/locales/ksh.json
Normal file
118
sources/src/locales/ksh.json
Normal file
|
@ -0,0 +1,118 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": {
|
||||
"1": "Purodha"
|
||||
}
|
||||
},
|
||||
"index.newPad": "Neu Padd",
|
||||
"index.createOpenPad": "udder maach e Padd op med d\u00e4m Naame:",
|
||||
"pad.toolbar.bold.title": "F\u00e4ttschreff (Strg-B)",
|
||||
"pad.toolbar.italic.title": "Scheive Schreff (Strg-I)",
|
||||
"pad.toolbar.underline.title": "Ongerstresche (Strg-U)",
|
||||
"pad.toolbar.strikethrough.title": "Dorschjeschtresche",
|
||||
"pad.toolbar.ol.title": "Le\u00df met Nommere",
|
||||
"pad.toolbar.ul.title": "Le\u00df met Pongkte",
|
||||
"pad.toolbar.indent.title": "Enjer\u00f6k",
|
||||
"pad.toolbar.unindent.title": "U\u00dfjer\u00f6k",
|
||||
"pad.toolbar.undo.title": "Retuur n\u00e4mme (Strg-Z)",
|
||||
"pad.toolbar.redo.title": "Norrens (Strg-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "d\u00e4 Schriiver ier F\u00e4rve fottn\u00e4mme",
|
||||
"pad.toolbar.import_export.title": "Vun ongerscheidlijje Dattei_Fommaate empotteere udder \u00e4xpotteere",
|
||||
"pad.toolbar.timeslider.title": "Verjangeheid afschpelle",
|
||||
"pad.toolbar.savedRevision.title": "de Versjohn fa\u00dfhallde",
|
||||
"pad.toolbar.settings.title": "Enscht\u00e4llonge",
|
||||
"pad.toolbar.embed.title": "Donn dat Padd \u00f6ffentlesch maache un enbenge",
|
||||
"pad.toolbar.showusers.title": "Verbonge Metschriiver aanzeije",
|
||||
"pad.colorpicker.save": "Fa\u00dfhallde",
|
||||
"pad.colorpicker.cancel": "Oph\u00fc\u00fcre",
|
||||
"pad.loading": "Ben aam Laade\u0026nbsp;\u0026hellip;",
|
||||
"pad.passwordRequired": "Do bruchs e Pa\u00dfwoot f\u00f6r heh dat P\u00e4dd.",
|
||||
"pad.permissionDenied": "Do h\u00e4s nit dat R\u00e4\u00e4sch, op heh dat P\u00e4dd zohzejriife.",
|
||||
"pad.wrongPassword": "Ding Pa\u00dfwoot wohr verkeht.",
|
||||
"pad.settings.padSettings": "Dam P\u00e4dd sin Enscht\u00e4llonge",
|
||||
"pad.settings.myView": "Anseesch",
|
||||
"pad.settings.stickychat": "Donn der Klaaf emmer aanzeije",
|
||||
"pad.settings.colorcheck": "F\u00e4rve f\u00f6r de Schriiver",
|
||||
"pad.settings.linenocheck": "Nommere f\u00f6r de Reije",
|
||||
"pad.settings.rtlcheck": "Schreff vun R\u00e4\u00e4sch\u00df noh Lenks?",
|
||||
"pad.settings.fontType": "Zoot Schreff",
|
||||
"pad.settings.fontType.normal": "Nomaal",
|
||||
"pad.settings.fontType.monospaced": "einheidlesch brejde Zeische",
|
||||
"pad.settings.globalView": "Et U\u00dfsin f\u00f6r Alle",
|
||||
"pad.settings.language": "Schprooch:",
|
||||
"pad.importExport.import_export": "Empoot/\u00c4xpoot",
|
||||
"pad.importExport.import": "Donn jeede T\u00e4x udder jeede Zoot Dokem\u00e4nt huhlaade",
|
||||
"pad.importExport.importSuccessful": "Jeschaff!",
|
||||
"pad.importExport.export": "Don dat P\u00e4dd \u00e4xpoteere al\u00df:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Eijfach T\u00e4x",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF (Poteerbaa Dokem\u00e4nte Fommaat)",
|
||||
"pad.importExport.exportopen": "ODF (Offe Dokem\u00e4nte-Fommaat)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "Mer k\u00fcnne blo\u00df eijfaache T\u00e4xte udder HTML_Fommaate empoteere. Opw\u00e4ndejere M\u00fcjjeleschkeite f\u00f6 der Empoot jon och, dof\u00f6r bruch mer en \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003EEnschtallazjuhn met \u003Ci lang=\"en\"\u003EAbiword\u003C/i\u003E\u003C/a\u003E.",
|
||||
"pad.modals.connected": "Verbonge.",
|
||||
"pad.modals.reconnecting": "Ben wider aam Verbenge\u0026nbsp;\u0026hellip;",
|
||||
"pad.modals.forcereconnect": "Wider verbenge",
|
||||
"pad.modals.userdup": "En enem andere Finster en \u00c4rbeid",
|
||||
"pad.modals.userdup.explanation": "Heh dat Padd schingk en mieh wi einem Finster vun enem Brauser op heh d\u00e4m R\u00e4\u00e4schner op ze sin.",
|
||||
"pad.modals.userdup.advice": "En heh d\u00e4m Finster wider verbenge.",
|
||||
"pad.modals.unauth": "Nit ber\u00e4\u00e4schtesch",
|
||||
"pad.modals.unauth.explanation": "Ding Ber\u00e4\u00e4schtejong h\u00e4t sesch je\u00e4ndert, derwiehl De di Sigg aam beloore wohr\u00df. Vers\u00f6hk en neu Verbendong ze maache.",
|
||||
"pad.modals.looping.explanation": "Et jitt Probleeme met d\u00e4 Verbendong mem \u1e9e\u00f6\u00f6ver f\u00f6r de Schriiver ier Aandeile zesamme_ze_br\u00e4nge.",
|
||||
"pad.modals.looping.cause": "K\u00fcnnt sin, Ding Verbendong jeiht dorj_ene onzopa\u00df proxy-\u1e9e\u00f6\u00f6ver udder firewall.",
|
||||
"pad.modals.initsocketfail": "D\u00e4 \u1e9e\u00f6\u00f6ver es nit ze \u00e4reische.",
|
||||
"pad.modals.initsocketfail.explanation": "Kein Verbendong met d\u00e4m \u1e9e\u00f6\u00f6ver ze krijje.",
|
||||
"pad.modals.initsocketfail.cause": "Dat k\u00fcnnt aam Brauser udder aan d\u00e4m singer Verbendong \u00f6vver et Internet lijje.",
|
||||
"pad.modals.slowcommit.explanation": "D\u00e4 \u1e9e\u00f6\u00f6ver antwoot nit.",
|
||||
"pad.modals.slowcommit.cause": "Dat k\u00fcnnt aan Probleeme met Verbendonge em N\u00e4zw\u00e4rrek lijje.",
|
||||
"pad.modals.deleted": "Fottjeschme\u00dfe.",
|
||||
"pad.modals.deleted.explanation": "Dat P\u00e4dd es fottjeschme\u00dfe woode.",
|
||||
"pad.modals.disconnected": "Do bes nit mieh verbonge.",
|
||||
"pad.modals.disconnected.explanation": "De Verbendong mem \u1e9e\u00f6\u00f6ver es fott.",
|
||||
"pad.modals.disconnected.cause": "D\u00e4 \u1e9e\u00f6\u00f6ver k\u00fcnnt nit loufe.\nSidd_esu jood und saat ons Bescheid, wann dat \u00f6fters pa\u00dfeet.",
|
||||
"pad.share": "Maach heh dat Padd \u00f6ffentlesch",
|
||||
"pad.share.readonly": "Nor zom L\u00e4sse",
|
||||
"pad.share.link": "Lengk",
|
||||
"pad.share.emebdcode": "URL enboue",
|
||||
"pad.chat": "Klaaf",
|
||||
"pad.chat.title": "Maach d\u00e4 Klaaf f\u00f6r heh dat P\u00e4dd op",
|
||||
"pad.chat.loadmessages": "Mieh Nohresschte laade...",
|
||||
"timeslider.pageTitle": "{{appTitle}} - Verjangeheid affschpelle",
|
||||
"timeslider.toolbar.returnbutton": "Jangk retuur nohm P\u00e4dd",
|
||||
"timeslider.toolbar.authors": "Schriiver:",
|
||||
"timeslider.toolbar.authorsList": "Kein Schriivere",
|
||||
"timeslider.toolbar.exportlink.title": "\u00c4xpooteere",
|
||||
"timeslider.exportCurrent": "Donn de meu\u00dfte V\u00e4sjohn \u00e4xpotteere al\u00df:",
|
||||
"timeslider.version": "V\u00e4sjon {{version}}",
|
||||
"timeslider.saved": "Fa\u00dfjehallde aam {{day}}. {{month}} {{year}}",
|
||||
"timeslider.dateformat": "amm {{day}}. {{month}} {{year}} \u00f6m {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "Jannewaa",
|
||||
"timeslider.month.february": "F\u00e4\u00e4browaa",
|
||||
"timeslider.month.march": "M\u00e4\u00e4z",
|
||||
"timeslider.month.april": "Apprell",
|
||||
"timeslider.month.may": "Mai",
|
||||
"timeslider.month.june": "Juuni",
|
||||
"timeslider.month.july": "Juuli",
|
||||
"timeslider.month.august": "Oujo\u00df",
|
||||
"timeslider.month.september": "S\u00e4pt\u00e4mber",
|
||||
"timeslider.month.october": "Oktoober",
|
||||
"timeslider.month.november": "Nov\u00e4mber",
|
||||
"timeslider.month.december": "Dez\u00e4mber",
|
||||
"timeslider.unnamedauthors": "{[plural(num) one: eine, other: {{num}} ]} naameloose Schriever",
|
||||
"pad.savedrevs.marked": "Heh di V\u00e4sjohn es j\u00e4z fa\u00dfjehallde.",
|
||||
"pad.userlist.entername": "Jif Dinge Naame en",
|
||||
"pad.userlist.unnamed": "naamelo\u00df\u00df",
|
||||
"pad.userlist.guest": "Ja\u00df\u00df",
|
||||
"pad.userlist.deny": "Aflehne",
|
||||
"pad.userlist.approve": "Joodhei\u00dfe",
|
||||
"pad.editbar.clearcolors": "Sulle mer de F\u00e4rve f\u00f6r de Schriiver uss_em janze T\u00e4x fott maache?",
|
||||
"pad.impexp.importbutton": "J\u00e4z empoteere",
|
||||
"pad.impexp.importing": "Ben aam Empotteere\u0026nbsp;\u0026hellip;",
|
||||
"pad.impexp.confirmimport": "En Dattei ze empotteere m\u00e4\u00e4t der janze T\u00e4x em P\u00e4dd fott. Wess De dat verfaftesch hann?",
|
||||
"pad.impexp.convertFailed": "Mer kunnte di Dattei nit empoteere. Nemm en ander Dattei-Fommaat udder donn d\u00e4 T\u00e4x vun Hand kopeere un ennf\u00f6\u00f6je.",
|
||||
"pad.impexp.uploadFailed": "Et Huhlaade es don\u00e4vve jejange, bes esu jood un probeer et norr_ens",
|
||||
"pad.impexp.importfailed": "Et Empoteere es don\u00e4vve jejange",
|
||||
"pad.impexp.copypaste": "Bes esu jood un donn et koppeere un enf\u00f6\u00f6je",
|
||||
"pad.impexp.exportdisabled": "Et \u00c4xpotteere em {{type}}-Formmaat es affjeschalldt. De Verwallder vun heh d\u00e4 Sigge k\u00fcnne doh velleisch wiggerh\u00e4llefe."
|
||||
}
|
54
sources/src/locales/lb.json
Normal file
54
sources/src/locales/lb.json
Normal file
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": {
|
||||
"0": "Robby",
|
||||
"2": "Soued031"
|
||||
}
|
||||
},
|
||||
"index.newPad": "Neie Pad",
|
||||
"pad.toolbar.ol.title": "Numer\u00e9iert L\u00ebscht",
|
||||
"pad.toolbar.ul.title": "Net-numer\u00e9iert L\u00ebscht",
|
||||
"pad.toolbar.undo.title": "R\u00e9ckg\u00e4ngeg (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "Widderhuelen (Ctrl-Y)",
|
||||
"pad.toolbar.savedRevision.title": "Versioun sp\u00e4icheren",
|
||||
"pad.toolbar.settings.title": "Astellungen",
|
||||
"pad.colorpicker.save": "Sp\u00e4icheren",
|
||||
"pad.colorpicker.cancel": "Ofbriechen",
|
||||
"pad.loading": "Lueden...",
|
||||
"pad.wrongPassword": "\u00c4ert Passwuert ass falsch",
|
||||
"pad.settings.fontType.normal": "Normal",
|
||||
"pad.settings.language": "Sprooch:",
|
||||
"pad.importExport.importSuccessful": "Erfollegr\u00e4ich",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.modals.unauth": "Net autoris\u00e9iert",
|
||||
"pad.modals.slowcommit.explanation": "De Server \u00e4ntwert net.",
|
||||
"pad.modals.deleted": "Gel\u00e4scht.",
|
||||
"pad.share.readonly": "N\u00ebmme liesen",
|
||||
"pad.share.link": "Link",
|
||||
"pad.chat.loadmessages": "M\u00e9i Message lueden",
|
||||
"timeslider.toolbar.authors": "Auteuren:",
|
||||
"timeslider.toolbar.authorsList": "Keng Auteuren",
|
||||
"timeslider.exportCurrent": "Export\u00e9iert d\u00e9i aktuell Versioun als:",
|
||||
"timeslider.version": "Versioun {{version}}",
|
||||
"timeslider.saved": "Gesp\u00e4ichert de(n) {{day}} {{month}} {{year}}",
|
||||
"timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "Januar",
|
||||
"timeslider.month.february": "Februar",
|
||||
"timeslider.month.march": "M\u00e4erz",
|
||||
"timeslider.month.april": "Abr\u00ebll",
|
||||
"timeslider.month.may": "Mee",
|
||||
"timeslider.month.june": "Juni",
|
||||
"timeslider.month.july": "Juli",
|
||||
"timeslider.month.august": "August",
|
||||
"timeslider.month.september": "September",
|
||||
"timeslider.month.october": "Oktober",
|
||||
"timeslider.month.november": "November",
|
||||
"timeslider.month.december": "Dezember",
|
||||
"pad.userlist.entername": "Gitt \u00c4ren Numm an",
|
||||
"pad.userlist.guest": "Gaascht",
|
||||
"pad.impexp.importbutton": "Elo import\u00e9ieren",
|
||||
"pad.impexp.importing": "Import\u00e9ieren..."
|
||||
}
|
73
sources/src/locales/lt.json
Normal file
73
sources/src/locales/lt.json
Normal file
|
@ -0,0 +1,73 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Eitvys200",
|
||||
"Mantak111"
|
||||
]
|
||||
},
|
||||
"pad.toolbar.bold.title": "Pary\u0161kintasis (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "Pasvirasis (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "Pabraukimas (Ctrl-U)",
|
||||
"pad.toolbar.undo.title": "Anuliuoti (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "Perdaryti (Ctrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "Tvarkyti autoryst\u0117s spalvas",
|
||||
"pad.toolbar.settings.title": "Nustatymai",
|
||||
"pad.colorpicker.save": "I\u0161saugoti",
|
||||
"pad.colorpicker.cancel": "At\u0161aukti",
|
||||
"pad.loading": "\u012ekraunama...",
|
||||
"pad.settings.myView": "Mano Vaizdas",
|
||||
"pad.settings.fontType": "\u0160rifto tipas:",
|
||||
"pad.settings.fontType.normal": "Normalus",
|
||||
"pad.settings.globalView": "Bendras Vaizdas",
|
||||
"pad.settings.language": "Kalba:",
|
||||
"pad.importExport.import_export": "Importuoti/Eksportuoti",
|
||||
"pad.importExport.import": "\u012ekelkite bet kok\u012f tekstin\u012f fail\u0105 arba dokument\u0105",
|
||||
"pad.importExport.importSuccessful": "Pavyko!",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Paprastasis tekstas",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Atvirasis dokumento formatas)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.modals.connected": "Prisijungta.",
|
||||
"pad.modals.unauth": "Neleid\u017eiama",
|
||||
"pad.modals.initsocketfail": "Serveris yra nepasiekiamas.",
|
||||
"pad.modals.slowcommit.explanation": "Serveris neatsako.",
|
||||
"pad.modals.deleted": "I\u0161trintas.",
|
||||
"pad.modals.disconnected": "J\u016bs atsijung\u0117te.",
|
||||
"pad.share.readonly": "Tik skaityti",
|
||||
"pad.share.link": "Nuoroda",
|
||||
"pad.share.emebdcode": "\u012eterptasis URL",
|
||||
"pad.chat": "Pokalbiai",
|
||||
"pad.chat.loadmessages": "\u012ekrauti daugiau prane\u0161im\u0173",
|
||||
"timeslider.toolbar.authors": "Autoriai:",
|
||||
"timeslider.toolbar.authorsList": "N\u0117ra autori\u0173",
|
||||
"timeslider.toolbar.exportlink.title": "Eksportuoti",
|
||||
"timeslider.exportCurrent": "Eksportuoti dabartin\u0119 versij\u0105 kaip:",
|
||||
"timeslider.version": "Versija {{version}}",
|
||||
"timeslider.saved": "I\u0161saugota {{year}},{{month}} {{day}}",
|
||||
"timeslider.dateformat": "{{year}}-{{month}}-{{day}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "Sausis",
|
||||
"timeslider.month.february": "Vasaris",
|
||||
"timeslider.month.march": "Kovas",
|
||||
"timeslider.month.april": "Balandis",
|
||||
"timeslider.month.may": "Gegu\u017e\u0117",
|
||||
"timeslider.month.june": "Bir\u017eelis",
|
||||
"timeslider.month.july": "Liepa",
|
||||
"timeslider.month.august": "Rugpj\u016btis",
|
||||
"timeslider.month.september": "Rugs\u0117jis",
|
||||
"timeslider.month.october": "Spalis",
|
||||
"timeslider.month.november": "Lapkritis",
|
||||
"timeslider.month.december": "Gruodis",
|
||||
"timeslider.unnamedauthors": "{{num}} bevard\u017eiai(-i\u0173) autoriai(-i\u0173)",
|
||||
"pad.userlist.entername": "\u012eveskite savo vard\u0105",
|
||||
"pad.userlist.unnamed": "bevardis",
|
||||
"pad.userlist.guest": "Sve\u010dias",
|
||||
"pad.userlist.deny": "Neigti",
|
||||
"pad.userlist.approve": "Patvirtinti",
|
||||
"pad.impexp.importbutton": "Importuoti dabar",
|
||||
"pad.impexp.importing": "Importuojama...",
|
||||
"pad.impexp.uploadFailed": "\u012ek\u0117limas nepavyko, bandykite dar kart\u0105",
|
||||
"pad.impexp.importfailed": "Importuoti nepavyko",
|
||||
"pad.impexp.copypaste": "Pra\u0161ome nukopijuoti ir \u012fklijuoti"
|
||||
}
|
84
sources/src/locales/lv.json
Normal file
84
sources/src/locales/lv.json
Normal file
|
@ -0,0 +1,84 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Admresdeserv.",
|
||||
"Jmg.cmdi",
|
||||
"Papuass"
|
||||
]
|
||||
},
|
||||
"pad.toolbar.bold.title": "Treknrakst\u0101 (CTRL + B)",
|
||||
"pad.toolbar.italic.title": "Sl\u012bpraksta (Ctrl-es)",
|
||||
"pad.toolbar.underline.title": "Pasv\u012btrojuma (CTRL + U)",
|
||||
"pad.toolbar.strikethrough.title": "P\u0101rsv\u012btrojums",
|
||||
"pad.toolbar.ol.title": "Sak\u0101rtots saraksts",
|
||||
"pad.toolbar.ul.title": "Nesak\u0101rtots saraksts",
|
||||
"pad.toolbar.indent.title": "Atk\u0101pe",
|
||||
"pad.toolbar.unindent.title": "Izk\u0101pe",
|
||||
"pad.toolbar.undo.title": "Atsaukt (CTRL + Z)",
|
||||
"pad.toolbar.redo.title": "Atcelt atsauk\u0161anu (CTRL + Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "Not\u012brit autoru kr\u0101sas",
|
||||
"pad.toolbar.import_export.title": "Import\u0113\u0161anas/eksport\u0113\u0161anas no un uz citu failu form\u0101tiem",
|
||||
"pad.toolbar.savedRevision.title": "Saglab\u0101t p\u0101rskat\u012b\u0161anu",
|
||||
"pad.toolbar.settings.title": "Iestat\u012bjumi",
|
||||
"pad.toolbar.embed.title": "Koplietot un iegut \u0161o pad",
|
||||
"pad.toolbar.showusers.title": "Par\u0101d\u012bt \u0161o padu lietot\u0101jus",
|
||||
"pad.colorpicker.save": "Saglab\u0101t",
|
||||
"pad.colorpicker.cancel": "Atcelt",
|
||||
"pad.loading": "Iel\u0101d\u0113\u2026",
|
||||
"pad.passwordRequired": "Ir nepiecie\u0161ama parole, lai piek\u013c\u016btu \u0161im pad",
|
||||
"pad.permissionDenied": "Atvaino, bet tev nav pieejas \u0161im pad.",
|
||||
"pad.wrongPassword": "J\u016bsu parole bija nepareiza",
|
||||
"pad.settings.padSettings": "Pad Iestatijumi",
|
||||
"pad.settings.myView": "Mans viedoklis",
|
||||
"pad.settings.stickychat": "\u010cats vienm\u0113r ekr\u0101n\u0101",
|
||||
"pad.settings.colorcheck": "Autor\u012bbas kr\u0101sas",
|
||||
"pad.settings.linenocheck": "Rindi\u0146u numurus",
|
||||
"pad.settings.rtlcheck": "Las\u012bt saturu no lab\u0101s puses uz kreiso?",
|
||||
"pad.settings.fontType": "Fonta tips:",
|
||||
"pad.settings.fontType.normal": "Norm\u0101ls",
|
||||
"pad.settings.globalView": "Glob\u0101lu skat\u012bjumu",
|
||||
"pad.settings.language": "Valoda:",
|
||||
"pad.importExport.import_export": "Importet/Eksportet",
|
||||
"pad.importExport.import": "Aug\u0161upiel\u0101d\u0113t jebkuru teksta failu vai dokumentu",
|
||||
"pad.importExport.importSuccessful": "Veiksm\u012bgi!",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Vienk\u0101r\u0161a teksta",
|
||||
"pad.importExport.exportword": "Programma Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open dokumenta form\u0101ts)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.modals.userdup": "Atv\u0113rts cit\u0101 log\u0101",
|
||||
"pad.modals.unauth": "Nav at\u013cauts",
|
||||
"pad.modals.looping.explanation": "Past\u0101v sakaru probl\u0113mas ar sinhroniz\u0101cijas servera.",
|
||||
"pad.modals.initsocketfail": "Serveris nav sasniedzams.",
|
||||
"pad.modals.initsocketfail.explanation": "Nevar\u0113ja izveidot savienojumu ar sinhroniz\u0101cijas serveri.",
|
||||
"pad.modals.slowcommit.explanation": "Serveris nerea\u0123\u0113.",
|
||||
"pad.modals.deleted": "Dz\u0113sts",
|
||||
"pad.modals.disconnected": "J\u016bs esat atvienots.",
|
||||
"pad.modals.disconnected.explanation": "Tika zaud\u0113ts savienojums ar serveri",
|
||||
"pad.modals.disconnected.cause": "Iesp\u0113jams, ka serveris nav pieejams. L\u016bgums pazi\u0146ot mums, ja tas turpina notikt.",
|
||||
"pad.share": "Koplietot \u0161o pad",
|
||||
"pad.share.readonly": "Tikai las\u0101ms",
|
||||
"pad.share.link": "Saite",
|
||||
"timeslider.toolbar.authors": "Autori:",
|
||||
"timeslider.toolbar.authorsList": "Nav autoru",
|
||||
"timeslider.toolbar.exportlink.title": "Eksport\u0113t",
|
||||
"timeslider.month.january": "Janv\u0101ris",
|
||||
"timeslider.month.february": "Febru\u0101ris",
|
||||
"timeslider.month.march": "Marts",
|
||||
"timeslider.month.april": "Apr\u012blis",
|
||||
"timeslider.month.may": "Maijs",
|
||||
"timeslider.month.june": "J\u016bnijs",
|
||||
"timeslider.month.july": "J\u016blijs",
|
||||
"timeslider.month.august": "Augusts",
|
||||
"timeslider.month.september": "Septembris",
|
||||
"timeslider.month.october": "Oktobris",
|
||||
"timeslider.month.november": "Novembris",
|
||||
"timeslider.month.december": "Decembris",
|
||||
"pad.userlist.entername": "Ievadiet savu v\u0101rdu",
|
||||
"pad.userlist.unnamed": "nenosaukts",
|
||||
"pad.userlist.guest": "Viesis",
|
||||
"pad.impexp.importbutton": "Import\u0113t t\u016bl\u012bt",
|
||||
"pad.impexp.importing": "Import\u0113...",
|
||||
"pad.impexp.importfailed": "Imports neizdev\u0101s"
|
||||
}
|
118
sources/src/locales/map-bms.json
Normal file
118
sources/src/locales/map-bms.json
Normal file
|
@ -0,0 +1,118 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"StefanusRA"
|
||||
]
|
||||
},
|
||||
"index.newPad": "Pad Anyar",
|
||||
"index.createOpenPad": "utawa gawe/bukak Pad nganggo jeneng:",
|
||||
"pad.toolbar.bold.title": "Kandhel (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "Miring (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "Garisngisor (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "Corettengaeh",
|
||||
"pad.toolbar.ol.title": "Daftar nganggo nomer",
|
||||
"pad.toolbar.ul.title": "Daftar ora nganggo nomer",
|
||||
"pad.toolbar.indent.title": "Nggantung",
|
||||
"pad.toolbar.unindent.title": "nggantung njaba",
|
||||
"pad.toolbar.undo.title": "Batalna (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "Baleni (Ctrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "Busek ''Authorship Colors''",
|
||||
"pad.toolbar.import_export.title": "Impor/Ekspor sekang/maring format berkas sejen",
|
||||
"pad.toolbar.timeslider.title": "Timeslider",
|
||||
"pad.toolbar.savedRevision.title": "Simpen revisi",
|
||||
"pad.toolbar.settings.title": "Pangaturan",
|
||||
"pad.toolbar.embed.title": "Sebarna lan ''embed'' pad kiye",
|
||||
"pad.toolbar.showusers.title": "Tidokna panganggo-panganggo nang pad kiye",
|
||||
"pad.colorpicker.save": "Simpen",
|
||||
"pad.colorpicker.cancel": "Batalna",
|
||||
"pad.loading": "Muatna...",
|
||||
"pad.passwordRequired": "Rika perlu tembung sandhi kanggo ngakses pad kiye",
|
||||
"pad.permissionDenied": "Rika ora duwe idin kanggo ngakses pad kiye",
|
||||
"pad.wrongPassword": "Tembung sandhine Rika salah",
|
||||
"pad.settings.padSettings": "Pangaturan Pad",
|
||||
"pad.settings.myView": "Delengane Inyong",
|
||||
"pad.settings.stickychat": "Dopokan mesti nang layar",
|
||||
"pad.settings.colorcheck": "Authorship colors",
|
||||
"pad.settings.linenocheck": "Nomer baris",
|
||||
"pad.settings.rtlcheck": "Waca isi sekang tengen maring kiwe?",
|
||||
"pad.settings.fontType": "Tipe Font:",
|
||||
"pad.settings.fontType.normal": "Normal",
|
||||
"pad.settings.fontType.monospaced": "Monospace",
|
||||
"pad.settings.globalView": "Global View",
|
||||
"pad.settings.language": "Basa:",
|
||||
"pad.importExport.import_export": "Impor/Ekspor",
|
||||
"pad.importExport.import": "Unggahna berkas teks utawa dokumen",
|
||||
"pad.importExport.importSuccessful": "Sukses!",
|
||||
"pad.importExport.export": "Ekspor pad kiye dadi:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "t",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "Rika mung teyeng impor sekang format plain text utawa HTML. Kanggo fitur impor sing lewih maju monggo \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003Emasang abiword\u003C/a\u003E.",
|
||||
"pad.modals.connected": "Nyambung.",
|
||||
"pad.modals.reconnecting": "Mbaleli nyambung ming pad Rika...",
|
||||
"pad.modals.forcereconnect": "Maksa nyambung maning",
|
||||
"pad.modals.userdup": "Bukak nang jendela sejen",
|
||||
"pad.modals.userdup.explanation": "Pad kiye kayane dibukak nang lewih sekang siji browser nang komputer kiye.",
|
||||
"pad.modals.userdup.advice": "Nyambung maning nganggo jendela kiye baen.",
|
||||
"pad.modals.unauth": "Not authorized",
|
||||
"pad.modals.unauth.explanation": "Idin-e Rika wis diowahi dong lagi ndeleng kaca kiye. Jajal nyambung maning.",
|
||||
"pad.modals.looping.explanation": "Pra ana masalah komunikasi karo server sinkronisasi.",
|
||||
"pad.modals.looping.cause": "Ndeyan Rika gole nyambung nganggo firewall utawa proksi sing ora pas.",
|
||||
"pad.modals.initsocketfail": "Server ora teyeng dihubungi.",
|
||||
"pad.modals.initsocketfail.explanation": "Ora teyeng nyambung maring sinkronisasi server.",
|
||||
"pad.modals.initsocketfail.cause": "Kiye ndeyan ana masalah karo perambanne Rika utawa sambungan internete Rika.",
|
||||
"pad.modals.slowcommit.explanation": "Server ora respon.",
|
||||
"pad.modals.slowcommit.cause": "Kiye ndeyan ana masalah karo sambungan jaringan.",
|
||||
"pad.modals.deleted": "Dibusek.",
|
||||
"pad.modals.deleted.explanation": "Pad kiye wis dibusek.",
|
||||
"pad.modals.disconnected": "Rika wis dipedot sambungane.",
|
||||
"pad.modals.disconnected.explanation": "Sambungan maring server wis ilang",
|
||||
"pad.modals.disconnected.cause": "Servere ndeyan ora ana. Monggo tidokna inyong angger kahanan kiye terus kedaden maning.",
|
||||
"pad.share": "Sebarna pad kiye",
|
||||
"pad.share.readonly": "Waca thok",
|
||||
"pad.share.link": "Pranala",
|
||||
"pad.share.emebdcode": "Embed URL",
|
||||
"pad.chat": "Dopokan",
|
||||
"pad.chat.title": "Buka dopokan kanggo pad kiye.",
|
||||
"pad.chat.loadmessages": "Muatna pesen lewih akeh",
|
||||
"timeslider.pageTitle": "{{appTitle}} Timeslider",
|
||||
"timeslider.toolbar.returnbutton": "Mbalik ming pad",
|
||||
"timeslider.toolbar.authors": "Penulise:",
|
||||
"timeslider.toolbar.authorsList": "Ora ana penulise",
|
||||
"timeslider.toolbar.exportlink.title": "Ekspor",
|
||||
"timeslider.exportCurrent": "Ekspor versi sekiye dadi:",
|
||||
"timeslider.version": "Versi {{version}}",
|
||||
"timeslider.saved": "Simpen {{day}} {{month}} {{year}}",
|
||||
"timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "Januari",
|
||||
"timeslider.month.february": "Februari",
|
||||
"timeslider.month.march": "Maret",
|
||||
"timeslider.month.april": "April",
|
||||
"timeslider.month.may": "Mei",
|
||||
"timeslider.month.june": "Juni",
|
||||
"timeslider.month.july": "Juli",
|
||||
"timeslider.month.august": "Agustus",
|
||||
"timeslider.month.september": "September",
|
||||
"timeslider.month.october": "Oktober",
|
||||
"timeslider.month.november": "November",
|
||||
"timeslider.month.december": "Desember",
|
||||
"timeslider.unnamedauthors": "{{num}} durung dijenengi {[plural(num) one: author, other: authors ]}",
|
||||
"pad.savedrevs.marked": "Revisi kiye sekiye ditandani dadi revisi sing wis disimpen",
|
||||
"pad.userlist.entername": "Lebokna jenenge Rika",
|
||||
"pad.userlist.unnamed": "durungdijenengi",
|
||||
"pad.userlist.guest": "Dayoh",
|
||||
"pad.userlist.deny": "Ora olih",
|
||||
"pad.userlist.approve": "Sarujuk",
|
||||
"pad.editbar.clearcolors": "Busek ''authorship colors'' nang kabeh dokumen?",
|
||||
"pad.impexp.importbutton": "Impor Sekiye",
|
||||
"pad.impexp.importing": "Lagi ngimpor...",
|
||||
"pad.impexp.confirmimport": "Ngimpor berkas bakal dadi nindih teks sekiye nang pad. Apa Rika wis mantep arep mroses kiye?",
|
||||
"pad.impexp.convertFailed": "Inyong ora teyeng ngimpor berkas kiye. Jajal nganggo format dokumen sejen utawa salin-tempel manual.",
|
||||
"pad.impexp.uploadFailed": "Gole ngunggah gagal, monggo dijajal maning",
|
||||
"pad.impexp.importfailed": "Gole ngimpor gagal",
|
||||
"pad.impexp.copypaste": "Monggo salin-tempel",
|
||||
"pad.impexp.exportdisabled": "Ngekspor maring format {{type}} ora olih. Monggo takon maring administrator sisteme Rika kanggo detile."
|
||||
}
|
123
sources/src/locales/mk.json
Normal file
123
sources/src/locales/mk.json
Normal file
|
@ -0,0 +1,123 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Bjankuloski06",
|
||||
"Brest"
|
||||
]
|
||||
},
|
||||
"index.newPad": "\u041d\u043e\u0432\u0430 \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430",
|
||||
"index.createOpenPad": "\u0438\u043b\u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u0435\u0442\u0435/\u043e\u0442\u0432\u043e\u0440\u0435\u0442\u0435 \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430 \u0441\u043e \u0438\u043c\u0435\u0442\u043e:",
|
||||
"pad.toolbar.bold.title": "\u0417\u0430\u0434\u0435\u0431\u0435\u043b\u0435\u043d\u043e (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "\u041a\u043e\u0441\u043e (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "\u041f\u043e\u0434\u0432\u043b\u0435\u0447\u0435\u043d\u043e (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "\u041f\u0440\u0435\u0446\u0440\u0442\u0430\u043d\u043e",
|
||||
"pad.toolbar.ol.title": "\u041f\u043e\u0434\u0440\u0435\u0434\u0435\u043d \u0441\u043f\u0438\u0441\u043e\u043a",
|
||||
"pad.toolbar.ul.title": "\u041d\u0435\u043f\u043e\u0434\u0440\u0435\u0434\u0435\u043d \u0441\u043f\u0438\u0441\u043e\u043a",
|
||||
"pad.toolbar.indent.title": "\u0412\u043e\u0432\u043b\u0435\u043a\u0443\u0432\u0430\u045a\u0435",
|
||||
"pad.toolbar.unindent.title": "\u041e\u0442\u0441\u0442\u0430\u043f",
|
||||
"pad.toolbar.undo.title": "\u0412\u0440\u0430\u0442\u0438 (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "\u041f\u043e\u0432\u0442\u043e\u0440\u0438 (Ctrl-Y)",
|
||||
"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.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\u0458 \u0440\u0435\u0432\u0438\u0437\u0438\u0458\u0430",
|
||||
"pad.toolbar.settings.title": "\u041f\u043e\u0441\u0442\u0430\u0432\u043a\u0438",
|
||||
"pad.toolbar.embed.title": "\u0421\u043f\u043e\u0434\u0435\u043b\u0435\u0442\u0435 \u0438 \u0432\u043c\u0435\u0442\u043d\u0435\u0442\u0435 \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.colorpicker.save": "\u0417\u0430\u0447\u0443\u0432\u0430\u0458",
|
||||
"pad.colorpicker.cancel": "\u041e\u0442\u043a\u0430\u0436\u0438",
|
||||
"pad.loading": "\u0412\u0447\u0438\u0442\u0443\u0432\u0430\u043c...",
|
||||
"pad.passwordRequired": "\u041f\u043e\u0442\u0440\u0435\u0431\u043d\u0430 \u0435 \u043b\u043e\u0437\u0438\u043d\u043a\u0430 \u0437\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u043f",
|
||||
"pad.permissionDenied": "\u0417\u0430 \u043e\u0432\u0434\u0435 \u043d\u0435 \u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u0430 \u0434\u043e\u0437\u0432\u043e\u043b\u0430 \u0437\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u043f",
|
||||
"pad.wrongPassword": "\u041f\u043e\u0433\u0440\u0435\u0448\u043d\u0430 \u043b\u043e\u0437\u0438\u043d\u043a\u0430",
|
||||
"pad.settings.padSettings": "\u041f\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043d\u0430 \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430\u0442\u0430",
|
||||
"pad.settings.myView": "\u041c\u043e\u0458 \u043f\u043e\u0433\u043b\u0435\u0434",
|
||||
"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.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.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.globalView": "\u0413\u043e\u0431\u0430\u043b\u0435\u043d \u043f\u043e\u0433\u043b\u0435\u0434",
|
||||
"pad.settings.language": "\u0408\u0430\u0437\u0438\u043a:",
|
||||
"pad.importExport.import_export": "\u0423\u0432\u043e\u0437/\u0418\u0437\u0432\u043e\u0437",
|
||||
"pad.importExport.import": "\u041f\u043e\u0434\u0438\u0433\u0430\u045a\u0435 \u043d\u0430 \u0431\u0438\u043b\u043e \u043a\u0430\u043a\u0432\u0430 \u0442\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u0430 \u043f\u043e\u0434\u0430\u0442\u043e\u0442\u0435\u043a\u0430 \u0438\u043b\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",
|
||||
"pad.importExport.importSuccessful": "\u0423\u0441\u043f\u0435\u0448\u043d\u043e!",
|
||||
"pad.importExport.export": "\u0418\u0437\u0432\u0435\u0437\u0438 \u0458\u0430 \u0442\u0435\u043a\u043e\u0432\u043d\u0430\u0442\u0430 \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430 \u043a\u0430\u043a\u043e",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "\u041f\u0440\u043e\u0441\u0442 \u0442\u0435\u043a\u0441\u0442",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "\u041c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u0443\u0432\u0435\u0437\u0443\u0432\u0430\u0442\u0435 \u0441\u0430\u043c\u043e \u043e\u0434 \u043f\u0440\u043e\u0441\u0442 \u0442\u0435\u043a\u0441\u0442 \u0438 html-\u0444\u043e\u0440\u043c\u0430\u0442. \u041f\u043e\u043d\u0430\u043f\u0440\u0435\u0434\u043d\u0438 \u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u0443\u0432\u043e\u0437 \u045c\u0435 \u0434\u043e\u0431\u0438\u0435\u0442\u0435 \u0430\u043a\u043e \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003E\u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u0442\u0435 AbiWord\u003C/a\u003E.",
|
||||
"pad.modals.connected": "\u041f\u043e\u0432\u0440\u0437\u0430\u043d\u043e.",
|
||||
"pad.modals.reconnecting": "\u0412\u0435 \u043f\u0440\u0435\u043f\u043e\u0432\u0440\u0437\u0443\u0432\u0430\u043c \u0441\u043e \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430\u0442\u0430...",
|
||||
"pad.modals.forcereconnect": "\u041d\u0430\u043c\u0435\u0442\u043d\u0438 \u043f\u0440\u0435\u043f\u043e\u0432\u0440\u0437\u0443\u0432\u0430\u045a\u0435",
|
||||
"pad.modals.userdup": "\u041e\u0442\u0432\u043e\u0440\u0435\u043d\u043e \u0432\u043e \u0434\u0440\u0443\u0433 \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446",
|
||||
"pad.modals.userdup.explanation": "\u041e\u0432\u0430\u0430 \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430 \u0435 \u043e\u0442\u0432\u043e\u0440\u0435\u043d\u0430 \u043d\u0430 \u043f\u043e\u0432\u0435\u045c\u0435 \u043e\u0434 \u0435\u0434\u0435\u043d \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446 (\u0432\u043e \u043f\u0440\u0435\u043b\u0438\u0441\u0442\u0443\u0432\u0430\u0447) \u043d\u0430 \u0441\u043c\u0435\u0442\u0430\u0447\u043e\u0442.",
|
||||
"pad.modals.userdup.advice": "\u041f\u0440\u0435\u043f\u043e\u0432\u0440\u0437\u0435\u0442\u0435 \u0441\u0435 \u0437\u0430 \u0434\u0430 \u0433\u043e \u043a\u043e\u0440\u0438\u0441\u0442\u0438\u0442\u0435 \u043e\u0432\u043e\u0458 \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446.",
|
||||
"pad.modals.unauth": "\u041d\u0435\u043e\u0432\u043b\u0430\u0441\u0442\u0435\u043d\u043e",
|
||||
"pad.modals.unauth.explanation": "\u0412\u0430\u0448\u0438\u0442\u0435 \u0434\u043e\u0437\u0432\u043e\u043b\u0438 \u0441\u0435 \u0438\u043c\u0430\u0430\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u0442\u043e \u0434\u043e\u0434\u0435\u043a\u0430 \u0458\u0430 \u0433\u043b\u0435\u0434\u0430\u0432\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0432\u0430. \u041e\u0431\u0438\u0434\u0435\u0442\u0435 \u0441\u0435 \u0434\u0430 \u0441\u0435 \u043f\u0440\u0435\u043f\u043e\u0432\u0440\u0437\u0435\u0442\u0435.",
|
||||
"pad.modals.looping.explanation": "\u0421\u0435 \u0458\u0430\u0432\u0438\u0458\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0438 \u0441\u043e \u0432\u0440\u0441\u043a\u0430\u0442\u0430 \u0441\u043e \u0443\u0441\u043e\u0433\u043b\u0430\u0441\u0438\u0442\u0435\u043b\u043d\u0438\u043e\u0442 \u043e\u043f\u0441\u043b\u0443\u0436\u0443\u0432\u0430\u0447.",
|
||||
"pad.modals.looping.cause": "\u041c\u043e\u0436\u0435\u0431\u0438 \u0441\u0442\u0435 \u043f\u043e\u0432\u0440\u0437\u0430\u043d\u0438 \u043f\u0440\u0435\u043a\u0443 \u043d\u0435\u0441\u043a\u043b\u0430\u0434\u0435\u043d \u043e\u0433\u043d\u0435\u043d \u0455\u0438\u0434 \u0438\u043b\u0438 \u0437\u0430\u0441\u0442\u0430\u043f\u043d\u0438\u043a.",
|
||||
"pad.modals.initsocketfail": "\u041e\u043f\u0441\u043b\u0443\u0436\u0443\u0432\u0430\u0447\u043e\u0442 \u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u043f\u0435\u043d.",
|
||||
"pad.modals.initsocketfail.explanation": "\u041d\u0435 \u043c\u043e\u0436\u0435\u0432 \u0434\u0430 \u0441\u0435 \u043f\u043e\u0432\u0440\u0437\u0430\u043c \u0441\u043e \u0443\u0441\u043e\u0433\u043b\u0430\u0441\u0438\u0442\u0435\u043b\u043d\u0438\u043e\u0442 \u043e\u043f\u0441\u043b\u0443\u0436\u0443\u0432\u0430\u0447.",
|
||||
"pad.modals.initsocketfail.cause": "\u041e\u0432\u0430 \u0432\u0435\u0440\u043e\u0458\u0430\u0442\u043d\u043e \u0441\u0435 \u0434\u043e\u043b\u0436\u0438 \u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441\u043e \u0432\u0430\u0448\u0438\u043e\u0442 \u043f\u0440\u0435\u043b\u0438\u0441\u0442\u0443\u0432\u0430\u0447 \u0438\u043b\u0438 \u0432\u0440\u0441\u043a\u0430\u0442\u0430 \u0441\u043e \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442.",
|
||||
"pad.modals.slowcommit.explanation": "\u041e\u043f\u0441\u043b\u0443\u0436\u0443\u0432\u0430\u0447\u043e\u0442 \u043d\u0435 \u0441\u0435 \u043e\u0434\u0455\u0438\u0432\u0430.",
|
||||
"pad.modals.slowcommit.cause": "\u041e\u0432\u0430 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0434\u043e\u043b\u0436\u0438 \u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0438 \u0441\u043e \u043c\u0440\u0435\u0436\u043d\u043e\u0442\u043e \u043f\u043e\u0432\u0440\u0437\u0443\u0432\u0430\u045a\u0435.",
|
||||
"pad.modals.badChangeset.explanation": "\u041e\u043f\u0441\u043b\u0443\u0436\u0443\u0432\u0430\u0447\u043e\u0442 \u0437\u0430 \u0443\u0441\u043e\u0433\u043b\u0430\u0441\u0443\u0432\u0430\u045a\u0435 \u0433\u043e \u0441\u043c\u0435\u0442\u0430 \u0443\u0440\u0435\u0434\u0443\u0432\u0430\u045a\u0435\u0442\u043e \u0448\u0442\u043e \u0433\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0432\u0442\u0435 \u0437\u0430 \u043d\u0435\u0434\u043e\u043f\u0443\u0448\u0442\u0435\u043d\u043e.",
|
||||
"pad.modals.badChangeset.cause": "\u041e\u0432\u0430 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0434\u043e\u043b\u0436\u0438 \u043d\u0430 \u043f\u043e\u0433\u0440\u0435\u0448\u043d\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u043e\u0441\u0442 \u043d\u0430 \u043e\u043f\u0441\u043b\u0443\u0436\u0443\u0432\u0430\u0447\u043e\u0442 \u0438\u043b\u0438 \u043d\u0435\u043a\u043e\u0435 \u0434\u0440\u0443\u0433\u043e \u043d\u0435\u043e\u0447\u0435\u043a\u0443\u0432\u0430\u043d\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435. \u041e\u0431\u0440\u0430\u0442\u0435\u0442\u0435 \u0441\u0435 \u043a\u0430\u0458 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u0442 \u0434\u043e\u043a\u043e\u043b\u043a\u0443 \u0441\u043c\u0435\u0442\u0430\u0442\u0435 \u0434\u0435\u043a\u0430 \u043e\u0432\u0430 \u0435 \u0433\u0440\u0435\u0448\u043a\u0430. \u041e\u0431\u0438\u0434\u0435\u0442\u0435 \u0441\u0435 \u0434\u0430 \u0441\u0435 \u043f\u0440\u0435\u0432\u043a\u043b\u0443\u0447\u0438\u0442\u0435 \u0437\u0430 \u0434\u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435 \u0441\u043e \u0443\u0440\u0435\u0434\u0443\u0432\u0430\u045a\u0435.",
|
||||
"pad.modals.corruptPad.explanation": "\u0422\u0435\u0442\u0440\u0430\u0442\u043a\u0430\u0442\u0430 \u0448\u0442\u043e \u0441\u0430\u043a\u0430\u0442\u0435 \u0434\u0430 \u0458\u0430 \u043e\u0442\u0432\u043e\u0440\u0438\u0442\u0435 \u0435 \u0440\u0430\u0441\u0438\u043f\u0430\u043d\u0430.",
|
||||
"pad.modals.corruptPad.cause": "\u041e\u0432\u0430 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0434\u043e\u043b\u0436\u0438 \u043d\u0430 \u043f\u043e\u0433\u0440\u0435\u0448\u043d\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u043e\u0441\u0442 \u043d\u0430 \u043e\u043f\u0441\u043b\u0443\u0436\u0443\u0432\u0430\u0447\u043e\u0442 \u0438\u043b\u0438 \u043d\u0435\u043a\u043e\u0435 \u0434\u0440\u0443\u0433\u043e \u043d\u0435\u043e\u0447\u0435\u043a\u0443\u0432\u0430\u043d\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435. \u041e\u0431\u0440\u0430\u0442\u0435\u0442\u0435 \u0441\u0435 \u043a\u0430\u0458 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u0442.",
|
||||
"pad.modals.deleted": "\u0418\u0437\u0431\u0440\u0438\u0448\u0430\u043d\u043e.",
|
||||
"pad.modals.deleted.explanation": "\u041e\u0432\u0430\u0430 \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430 \u0435 \u043e\u0442\u0441\u0442\u0440\u0430\u043d\u0435\u0442\u0430.",
|
||||
"pad.modals.disconnected": "\u0412\u0440\u0441\u043a\u0430\u0442\u0430 \u0435 \u043f\u0440\u0435\u043a\u0438\u043d\u0430\u0442\u0430.",
|
||||
"pad.modals.disconnected.explanation": "\u0412\u0440\u0441\u043a\u0430\u0442\u0430 \u0441\u043e \u043e\u043f\u0441\u043b\u0443\u0436\u0443\u0432\u0430\u0447\u043e\u0442 \u0435 \u043f\u0440\u0435\u043a\u0438\u043d\u0430\u0442\u0430",
|
||||
"pad.modals.disconnected.cause": "\u041e\u043f\u0441\u043b\u0443\u0436\u0443\u0432\u0430\u0447\u043e\u0442 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u043f\u0435\u043d. \u0418\u0437\u0432\u0435\u0441\u0442\u0435\u0442\u0435 \u0433\u043e \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u0442 \u0430\u043a\u043e \u043e\u0432\u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438 \u0434\u0430 \u0432\u0438 \u0441\u0435 \u0441\u043b\u0443\u0447\u0443\u0432\u0430.",
|
||||
"pad.share": "\u0421\u043f\u043e\u0434\u0435\u043b\u0438 \u0458\u0430 \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430\u0432\u0430",
|
||||
"pad.share.readonly": "\u0421\u0430\u043c\u043e \u0447\u0438\u0442\u0430\u045a\u0435",
|
||||
"pad.share.link": "\u0412\u0440\u0441\u043a\u0430",
|
||||
"pad.share.emebdcode": "\u0412\u043c\u0435\u0442\u043d\u0438 URL",
|
||||
"pad.chat": "\u0420\u0430\u0437\u0433\u043e\u0432\u043e\u0440",
|
||||
"pad.chat.title": "\u041e\u0442\u0432\u043e\u0440\u0438 \u0433\u043e \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u043e\u0442 \u0437\u0430 \u043e\u0432\u0430\u0430 \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430.",
|
||||
"pad.chat.loadmessages": "\u0412\u0447\u0438\u0442\u0430\u0458 \u0443\u0448\u0442\u0435 \u043f\u043e\u0440\u0430\u043a\u0438",
|
||||
"timeslider.pageTitle": "{{appTitle}} \u0418\u0441\u0442\u043e\u0440\u0438\u0441\u043a\u0438 \u043f\u0440\u0435\u0433\u043b\u0435\u0434",
|
||||
"timeslider.toolbar.returnbutton": "\u041d\u0430\u0437\u0430\u0434 \u043d\u0430 \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430\u0442\u0430",
|
||||
"timeslider.toolbar.authors": "\u0410\u0432\u0442\u043e\u0440\u0438:",
|
||||
"timeslider.toolbar.authorsList": "\u041d\u0435\u043c\u0430 \u0430\u0432\u0442\u043e\u0440\u0438",
|
||||
"timeslider.toolbar.exportlink.title": "\u0418\u0437\u0432\u043e\u0437",
|
||||
"timeslider.exportCurrent": "\u0418\u0437\u0432\u0435\u0437\u0438 \u0458\u0430 \u0442\u0435\u043a\u043e\u0432\u043d\u0430\u0442\u0430 \u0432\u0435\u0440\u0437\u0438\u0458\u0430 \u043a\u0430\u043a\u043e:",
|
||||
"timeslider.version": "\u0412\u0435\u0440\u0437\u0438\u0458\u0430 {{version}}",
|
||||
"timeslider.saved": "\u0417\u0430\u0447\u0443\u0432\u0430\u043d\u043e \u043d\u0430 {{day}} {{month}} {{year}} \u0433.",
|
||||
"timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "\u0458\u0430\u043d\u0443\u0430\u0440\u0438",
|
||||
"timeslider.month.february": "\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438",
|
||||
"timeslider.month.march": "\u043c\u0430\u0440\u0442",
|
||||
"timeslider.month.april": "\u0430\u043f\u0440\u0438\u043b",
|
||||
"timeslider.month.may": "\u043c\u0430\u0458",
|
||||
"timeslider.month.june": "\u0458\u0443\u043d\u0438",
|
||||
"timeslider.month.july": "\u0458\u0443\u043b\u0438",
|
||||
"timeslider.month.august": "\u0430\u0432\u0433\u0443\u0441\u0442",
|
||||
"timeslider.month.september": "\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438",
|
||||
"timeslider.month.october": "\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438",
|
||||
"timeslider.month.november": "\u043d\u043e\u0435\u043c\u0432\u0440\u0438",
|
||||
"timeslider.month.december": "\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438",
|
||||
"timeslider.unnamedauthors": "{{num}} {[plural(num) one: \u043d\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430\u043d \u0430\u0432\u0442\u043e\u0440, other: \u043d\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430\u043d\u0438 \u0430\u0432\u0442\u043e\u0440\u0438 ]}",
|
||||
"pad.savedrevs.marked": "\u041e\u0432\u0430\u0430 \u0440\u0435\u0432\u0438\u0437\u0438\u0458\u0430 \u0441\u0435\u0433\u0430 \u0435 \u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u043a\u0430\u043a\u043e \u0437\u0430\u0447\u0443\u0432\u0430\u043d\u0430",
|
||||
"pad.userlist.entername": "\u0412\u043d\u0435\u0441\u0435\u0442\u0435 \u0433\u043e \u0432\u0430\u0448\u0435\u0442\u043e \u0438\u043c\u0435",
|
||||
"pad.userlist.unnamed": "\u0431\u0435\u0437 \u0438\u043c\u0435",
|
||||
"pad.userlist.guest": "\u0413\u043e\u0441\u0442\u0438\u043d",
|
||||
"pad.userlist.deny": "\u041e\u0434\u0431\u0438\u0458",
|
||||
"pad.userlist.approve": "\u041e\u0434\u043e\u0431\u0440\u0438",
|
||||
"pad.editbar.clearcolors": "\u0414\u0430 \u0433\u0438 \u043e\u0442\u0441\u0442\u0440\u0430\u043d\u0430\u043c \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0442\u0435 \u0431\u043e\u0438 \u043e\u0434 \u0446\u0435\u043b\u0438\u043e\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442?",
|
||||
"pad.impexp.importbutton": "\u0423\u0432\u0435\u0437\u0438 \u0441\u0435\u0433\u0430",
|
||||
"pad.impexp.importing": "\u0423\u0432\u0435\u0437\u0443\u0432\u0430\u043c...",
|
||||
"pad.impexp.confirmimport": "\u0423\u0432\u0435\u0437\u0443\u0432\u0430\u0458\u045c\u0438 \u0458\u0430 \u043f\u043e\u0434\u0430\u0442\u043e\u0442\u0435\u043a\u0430\u0442\u0430 \u045c\u0435 \u0433\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u0435 \u0446\u0435\u043b\u0438\u043e\u0442 \u0434\u043e\u0441\u0435\u0433\u0430\u0448\u0435\u043d \u0442\u0435\u043a\u0441\u0442 \u0432\u043e \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430\u0442\u0430. \u0414\u0430\u043b\u0438 \u0441\u0442\u0435 \u0441\u0438\u0433\u0443\u0440\u043d\u0438 \u0434\u0435\u043a\u0430 \u0441\u0430\u043a\u0430\u0442\u0435 \u0434\u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435?",
|
||||
"pad.impexp.convertFailed": "\u041d\u0435 \u043c\u043e\u0436\u0435\u0432 \u0434\u0430 \u0458\u0430 \u0443\u0432\u0435\u0437\u0430\u043c \u043f\u043e\u0434\u0430\u0442\u043e\u0442\u0435\u043a\u0430\u0442\u0430. \u041f\u043e\u0441\u043b\u0443\u0436\u0435\u0442\u0435 \u0441\u0435 \u0441\u043e \u043f\u043e\u0438\u043d\u0430\u043a\u043e\u0432 \u0444\u043e\u0440\u043c\u0430\u0442 \u0438\u043b\u0438 \u043f\u0440\u0435\u043a\u043e\u043f\u0438\u0440\u0430\u0458\u0442\u0435 \u0433\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0442 \u0440\u0430\u0447\u043d\u043e.",
|
||||
"pad.impexp.uploadFailed": "\u041f\u043e\u0434\u0438\u0433\u0430\u045a\u0435\u0442\u043e \u043d\u0435 \u0443\u0441\u043f\u0435\u0430. \u041e\u0431\u0438\u0434\u0435\u0442\u0435 \u0441\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e.",
|
||||
"pad.impexp.importfailed": "\u0423\u0432\u043e\u0437\u043e\u0442 \u043d\u0435 \u0443\u0441\u043f\u0435\u0430",
|
||||
"pad.impexp.copypaste": "\u041f\u0440\u0435\u043a\u043e\u043f\u0438\u0440\u0430\u0458\u0442\u0435",
|
||||
"pad.impexp.exportdisabled": "\u0418\u0437\u0432\u043e\u0437\u043e\u0442 \u0432\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0442 {{type}} \u0435 \u043e\u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u0435\u043d. \u0410\u043a\u043e \u0441\u0430\u043a\u0430\u0442\u0435 \u0434\u0430 \u0434\u043e\u0437\u043d\u0430\u0435\u0442\u0435 \u043f\u043e\u0432\u0435\u045c\u0435 \u0437\u0430 \u043e\u0432\u0430, \u043e\u0431\u0440\u0430\u0442\u0435\u0442\u0435 \u0441\u0435 \u043a\u0430\u0458 \u0441\u0438\u0441\u0442\u0435\u043c\u0441\u043a\u0438\u043e\u0442 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440."
|
||||
}
|
121
sources/src/locales/ml.json
Normal file
121
sources/src/locales/ml.json
Normal file
|
@ -0,0 +1,121 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Akhilan",
|
||||
"Hrishikesh.kb",
|
||||
"Praveenp",
|
||||
"Santhosh.thottingal"
|
||||
]
|
||||
},
|
||||
"index.newPad": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d2a\u0d3e\u0d21\u0d4d",
|
||||
"index.createOpenPad": "\u0d05\u0d32\u0d4d\u0d32\u0d46\u0d19\u0d4d\u0d15\u0d3f\u0d7d \u0d2a\u0d47\u0d30\u0d41\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d2a\u0d3e\u0d21\u0d4d \u0d38\u0d43\u0d37\u0d4d\u0d1f\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15/\u0d24\u0d41\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d15:",
|
||||
"pad.toolbar.bold.title": "\u0d15\u0d1f\u0d41\u0d2a\u0d4d\u0d2a\u0d24\u0d4d\u0d24\u0d3f\u0d7d (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "\u0d1a\u0d46\u0d30\u0d3f\u0d1a\u0d4d\u0d1a\u0d46\u0d34\u0d41\u0d24\u0d41\u0d15 (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "\u0d05\u0d1f\u0d3f\u0d35\u0d30\u0d2f\u0d3f\u0d1f\u0d41\u0d15 (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "\u0d35\u0d46\u0d1f\u0d4d\u0d1f\u0d41\u0d15",
|
||||
"pad.toolbar.ol.title": "\u0d15\u0d4d\u0d30\u0d2e\u0d24\u0d4d\u0d24\u0d3f\u0d32\u0d41\u0d33\u0d4d\u0d33 \u0d2a\u0d1f\u0d4d\u0d1f\u0d3f\u0d15",
|
||||
"pad.toolbar.ul.title": "\u0d15\u0d4d\u0d30\u0d2e\u0d30\u0d39\u0d3f\u0d24 \u0d2a\u0d1f\u0d4d\u0d1f\u0d3f\u0d15",
|
||||
"pad.toolbar.indent.title": "\u0d35\u0d32\u0d24\u0d4d\u0d24\u0d47\u0d15\u0d4d\u0d15\u0d4d \u0d24\u0d33\u0d4d\u0d33\u0d41\u0d15",
|
||||
"pad.toolbar.unindent.title": "\u0d07\u0d1f\u0d24\u0d4d\u0d24\u0d47\u0d15\u0d4d\u0d15\u0d4d \u0d24\u0d33\u0d4d\u0d33\u0d41\u0d15",
|
||||
"pad.toolbar.undo.title": "\u0d24\u0d3f\u0d30\u0d38\u0d4d\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15 (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "\u0d35\u0d40\u0d23\u0d4d\u0d1f\u0d41\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15 (Ctrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "\u0d30\u0d1a\u0d2f\u0d3f\u0d24\u0d3e\u0d15\u0d4d\u0d15\u0d7e\u0d15\u0d4d\u0d15\u0d41\u0d33\u0d4d\u0d33 \u0d28\u0d3f\u0d31\u0d02 \u0d15\u0d33\u0d2f\u0d41\u0d15",
|
||||
"pad.toolbar.import_export.title": "\u0d35\u0d4d\u0d2f\u0d24\u0d4d\u0d2f\u0d38\u0d4d\u0d24 \u0d2b\u0d2f\u0d7d \u0d24\u0d30\u0d19\u0d4d\u0d19\u0d33\u0d3f\u0d32\u0d47\u0d15\u0d4d\u0d15\u0d4d/\u0d24\u0d30\u0d19\u0d4d\u0d19\u0d33\u0d3f\u0d7d \u0d28\u0d3f\u0d28\u0d4d\u0d28\u0d4d \u0d07\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d2e\u0d24\u0d3f/\u0d15\u0d2f\u0d31\u0d4d\u0d31\u0d41\u0d2e\u0d24\u0d3f \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
|
||||
"pad.toolbar.timeslider.title": "\u0d38\u0d2e\u0d2f\u0d30\u0d47\u0d16",
|
||||
"pad.toolbar.savedRevision.title": "\u0d28\u0d3e\u0d7e\u0d2a\u0d4d\u0d2a\u0d24\u0d3f\u0d2a\u0d4d\u0d2a\u0d4d \u0d38\u0d47\u0d35\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
|
||||
"pad.toolbar.settings.title": "\u0d38\u0d1c\u0d4d\u0d1c\u0d40\u0d15\u0d30\u0d23\u0d19\u0d4d\u0d19\u0d7e",
|
||||
"pad.toolbar.embed.title": "\u0d08 \u0d2a\u0d3e\u0d21\u0d4d \u0d2a\u0d19\u0d4d\u0d15\u0d4d \u0d35\u0d46\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d15, \u0d0e\u0d02\u0d2c\u0d46\u0d21\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
|
||||
"pad.toolbar.showusers.title": "\u0d08 \u0d2a\u0d3e\u0d21\u0d3f\u0d32\u0d41\u0d33\u0d4d\u0d33 \u0d09\u0d2a\u0d2f\u0d4b\u0d15\u0d4d\u0d24\u0d3e\u0d15\u0d4d\u0d15\u0d33\u0d46 \u0d2a\u0d4d\u0d30\u0d26\u0d7c\u0d36\u0d3f\u0d2a\u0d4d\u0d2a\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
||||
"pad.colorpicker.save": "\u0d38\u0d47\u0d35\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
|
||||
"pad.colorpicker.cancel": "\u0d31\u0d26\u0d4d\u0d26\u0d3e\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
||||
"pad.loading": "\u0d36\u0d47\u0d16\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d41...",
|
||||
"pad.passwordRequired": "\u0d08 \u0d2a\u0d3e\u0d21\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d3f\u0d28\u0d3e\u0d2f\u0d3f \u0d12\u0d30\u0d41 \u0d30\u0d39\u0d38\u0d4d\u0d2f\u0d35\u0d3e\u0d15\u0d4d\u0d15\u0d4d \u0d28\u0d7d\u0d15\u0d47\u0d23\u0d4d\u0d1f\u0d24\u0d3e\u0d23\u0d4d",
|
||||
"pad.permissionDenied": "\u0d08 \u0d2a\u0d3e\u0d21\u0d4d \u0d15\u0d3e\u0d23\u0d41\u0d35\u0d3e\u0d7b \u0d24\u0d3e\u0d19\u0d4d\u0d15\u0d7e\u0d15\u0d4d\u0d15\u0d4d \u0d05\u0d28\u0d41\u0d2e\u0d24\u0d3f\u0d2f\u0d3f\u0d32\u0d4d\u0d32",
|
||||
"pad.wrongPassword": "\u0d24\u0d3e\u0d19\u0d4d\u0d15\u0d7e \u0d28\u0d32\u0d4d\u0d15\u0d3f\u0d2f \u0d30\u0d39\u0d38\u0d4d\u0d2f\u0d35\u0d3e\u0d15\u0d4d\u0d15\u0d4d \u0d24\u0d46\u0d31\u0d4d\u0d31\u0d3e\u0d2f\u0d3f\u0d30\u0d41\u0d28\u0d4d\u0d28\u0d41",
|
||||
"pad.settings.padSettings": "\u0d2a\u0d3e\u0d21\u0d4d \u0d38\u0d1c\u0d4d\u0d1c\u0d40\u0d15\u0d30\u0d23\u0d19\u0d4d\u0d19\u0d7e",
|
||||
"pad.settings.myView": "\u0d0e\u0d28\u0d4d\u0d31\u0d46 \u0d15\u0d3e\u0d34\u0d4d\u0d1a",
|
||||
"pad.settings.stickychat": "\u0d24\u0d24\u0d4d\u0d38\u0d2e\u0d2f\u0d38\u0d02\u0d35\u0d3e\u0d26\u0d02 \u0d0e\u0d2a\u0d4d\u0d2a\u0d4b\u0d34\u0d41\u0d02 \u0d38\u0d4d\u0d15\u0d4d\u0d30\u0d40\u0d28\u0d3f\u0d7d \u0d15\u0d3e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
||||
"pad.settings.colorcheck": "\u0d0e\u0d34\u0d41\u0d24\u0d4d\u0d24\u0d41\u0d15\u0d3e\u0d7c\u0d15\u0d4d\u0d15\u0d41\u0d33\u0d4d\u0d33 \u0d28\u0d3f\u0d31\u0d19\u0d4d\u0d19\u0d7e",
|
||||
"pad.settings.linenocheck": "\u0d35\u0d30\u0d3f\u0d15\u0d33\u0d41\u0d1f\u0d46 \u0d15\u0d4d\u0d30\u0d2e\u0d38\u0d02\u0d16\u0d4d\u0d2f",
|
||||
"pad.settings.rtlcheck": "\u0d09\u0d33\u0d4d\u0d33\u0d1f\u0d15\u0d4d\u0d15\u0d02 \u0d35\u0d32\u0d24\u0d4d\u0d24\u0d41\u0d28\u0d3f\u0d28\u0d4d\u0d28\u0d4d \u0d07\u0d1f\u0d24\u0d4d\u0d24\u0d4b\u0d1f\u0d4d\u0d1f\u0d3e\u0d23\u0d4b \u0d35\u0d3e\u0d2f\u0d3f\u0d15\u0d4d\u0d15\u0d47\u0d23\u0d4d\u0d1f\u0d24\u0d4d?",
|
||||
"pad.settings.fontType": "\u0d2b\u0d4b\u0d23\u0d4d\u0d1f\u0d4d \u0d24\u0d30\u0d02:",
|
||||
"pad.settings.fontType.normal": "\u0d38\u0d3e\u0d27\u0d3e\u0d30\u0d23\u0d02",
|
||||
"pad.settings.fontType.monospaced": "\u0d2e\u0d4b\u0d23\u0d4b\u0d38\u0d4d\u0d2a\u0d47\u0d38\u0d4d",
|
||||
"pad.settings.globalView": "\u0d2e\u0d4a\u0d24\u0d4d\u0d24\u0d15\u0d4d\u0d15\u0d3e\u0d34\u0d4d\u0d1a",
|
||||
"pad.settings.language": "\u0d2d\u0d3e\u0d37:",
|
||||
"pad.importExport.import_export": "\u0d07\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d2e\u0d24\u0d3f/\u0d15\u0d2f\u0d31\u0d4d\u0d31\u0d41\u0d2e\u0d24\u0d3f \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
|
||||
"pad.importExport.import": "\u0d0e\u0d28\u0d4d\u0d24\u0d46\u0d19\u0d4d\u0d15\u0d3f\u0d32\u0d41\u0d02 \u0d0e\u0d34\u0d41\u0d24\u0d4d\u0d24\u0d41 \u0d2a\u0d4d\u0d30\u0d2e\u0d3e\u0d23\u0d2e\u0d4b \u0d30\u0d47\u0d16\u0d2f\u0d4b \u0d05\u0d2a\u0d4d\u200c\u0d32\u0d4b\u0d21\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
|
||||
"pad.importExport.importSuccessful": "\u0d35\u0d3f\u0d1c\u0d2f\u0d15\u0d30\u0d02!",
|
||||
"pad.importExport.export": "\u0d07\u0d2a\u0d4d\u0d2a\u0d4b\u0d34\u0d24\u0d4d\u0d24\u0d46 \u0d2a\u0d3e\u0d21\u0d4d \u0d07\u0d19\u0d4d\u0d19\u0d28\u0d46 \u0d15\u0d2f\u0d31\u0d4d\u0d31\u0d41\u0d2e\u0d24\u0d3f \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15:",
|
||||
"pad.importExport.exporthtml": "\u0d0e\u0d1a\u0d4d\u0d1a\u0d4d.\u0d31\u0d4d\u0d31\u0d3f.\u0d0e\u0d02.\u0d0e\u0d7d.",
|
||||
"pad.importExport.exportplain": "\u0d35\u0d46\u0d31\u0d41\u0d02 \u0d0e\u0d34\u0d41\u0d24\u0d4d\u0d24\u0d4d",
|
||||
"pad.importExport.exportword": "\u0d2e\u0d48\u0d15\u0d4d\u0d30\u0d4b\u0d38\u0d4b\u0d2b\u0d4d\u0d31\u0d4d\u0d31\u0d4d \u0d35\u0d47\u0d21\u0d4d",
|
||||
"pad.importExport.exportpdf": "\u0d2a\u0d3f.\u0d21\u0d3f.\u0d0e\u0d2b\u0d4d.",
|
||||
"pad.importExport.exportopen": "\u0d12.\u0d21\u0d3f.\u0d0e\u0d2b\u0d4d. (\u0d13\u0d2a\u0d4d\u0d2a\u0d7a \u0d21\u0d4b\u0d15\u0d4d\u0d2f\u0d41\u0d2e\u0d46\u0d28\u0d4d\u0d31\u0d4d \u0d2b\u0d4b\u0d7c\u0d2e\u0d3e\u0d31\u0d4d\u0d31\u0d4d)",
|
||||
"pad.importExport.exportdokuwiki": "\u0d21\u0d4b\u0d15\u0d41\u0d35\u0d3f\u0d15\u0d4d\u0d15\u0d3f",
|
||||
"pad.importExport.abiword.innerHTML": "\u0d2a\u0d4d\u0d32\u0d46\u0d2f\u0d3f\u0d7b \u0d1f\u0d46\u0d15\u0d4d\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4b \u0d0e\u0d1a\u0d4d\u0d1a\u0d4d.\u0d31\u0d4d\u0d31\u0d3f.\u0d0e\u0d02.\u0d0e\u0d7d. \u0d24\u0d30\u0d2e\u0d4b \u0d2e\u0d3e\u0d24\u0d4d\u0d30\u0d2e\u0d47 \u0d24\u0d3e\u0d19\u0d4d\u0d15\u0d7e\u0d15\u0d4d\u0d15\u0d4d \u0d07\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d2e\u0d24\u0d3f \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d28\u0d3e\u0d35\u0d42. \u0d15\u0d42\u0d1f\u0d41\u0d24\u0d7d \u0d35\u0d3f\u0d2a\u0d41\u0d32\u0d40\u0d15\u0d43\u0d24 \u0d07\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d2e\u0d24\u0d3f \u0d38\u0d57\u0d15\u0d30\u0d4d\u0d2f\u0d19\u0d4d\u0d19\u0d7e\u0d15\u0d4d\u0d15\u0d3e\u0d2f\u0d3f \u0d26\u0d2f\u0d35\u0d3e\u0d2f\u0d3f \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003E\u0d05\u0d2c\u0d3f\u0d35\u0d47\u0d21\u0d4d \u0d07\u0d7b\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4b\u0d7e \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15\u003C/a\u003E.",
|
||||
"pad.modals.connected": "\u0d2c\u0d28\u0d4d\u0d27\u0d3f\u0d2a\u0d4d\u0d2a\u0d3f\u0d1a\u0d4d\u0d1a\u0d3f\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d41.",
|
||||
"pad.modals.reconnecting": "\u0d24\u0d3e\u0d19\u0d4d\u0d15\u0d33\u0d41\u0d1f\u0d46 \u0d2a\u0d3e\u0d21\u0d3f\u0d32\u0d47\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d4d \u0d35\u0d40\u0d23\u0d4d\u0d1f\u0d41\u0d02 \u0d2c\u0d28\u0d4d\u0d27\u0d3f\u0d2a\u0d4d\u0d2a\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d41...",
|
||||
"pad.modals.forcereconnect": "\u0d0e\u0d28\u0d4d\u0d24\u0d3e\u0d2f\u0d3e\u0d32\u0d41\u0d02 \u0d2c\u0d28\u0d4d\u0d27\u0d3f\u0d2a\u0d4d\u0d2a\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
||||
"pad.modals.userdup": "\u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d1c\u0d3e\u0d32\u0d15\u0d24\u0d4d\u0d24\u0d3f\u0d7d \u0d24\u0d41\u0d31\u0d28\u0d4d\u0d28\u0d3f\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d41",
|
||||
"pad.modals.userdup.explanation": "\u0d08 \u0d15\u0d2e\u0d4d\u0d2a\u0d4d\u0d2f\u0d42\u0d1f\u0d4d\u0d1f\u0d31\u0d3f\u0d7d \u0d08 \u0d2a\u0d3e\u0d21\u0d4d \u0d12\u0d28\u0d4d\u0d28\u0d3f\u0d32\u0d27\u0d3f\u0d15\u0d02 \u0d2c\u0d4d\u0d30\u0d57\u0d38\u0d7c \u0d1c\u0d3e\u0d32\u0d15\u0d19\u0d4d\u0d19\u0d33\u0d3f\u0d7d \u0d24\u0d41\u0d31\u0d28\u0d4d\u0d28\u0d24\u0d3e\u0d2f\u0d3f \u0d15\u0d3e\u0d23\u0d41\u0d28\u0d4d\u0d28\u0d41.",
|
||||
"pad.modals.userdup.advice": "\u0d08 \u0d1c\u0d3e\u0d32\u0d15\u0d02 \u0d24\u0d28\u0d4d\u0d28\u0d46 \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d15\u0d4d\u0d15\u0d3e\u0d28\u0d3e\u0d2f\u0d3f \u0d2c\u0d28\u0d4d\u0d27\u0d3f\u0d2a\u0d4d\u0d2a\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
||||
"pad.modals.unauth": "\u0d05\u0d28\u0d41\u0d35\u0d3e\u0d26\u0d2e\u0d3f\u0d32\u0d4d\u0d32",
|
||||
"pad.modals.unauth.explanation": "\u0d08 \u0d24\u0d3e\u0d7e \u0d15\u0d23\u0d4d\u0d1f\u0d41\u0d15\u0d4a\u0d23\u0d4d\u0d1f\u0d3f\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d46 \u0d24\u0d3e\u0d19\u0d4d\u0d15\u0d7e\u0d15\u0d4d\u0d15\u0d41\u0d33\u0d4d\u0d33 \u0d05\u0d28\u0d41\u0d2e\u0d24\u0d3f\u0d15\u0d33\u0d3f\u0d7d \u0d2e\u0d3e\u0d31\u0d4d\u0d31\u0d2e\u0d41\u0d23\u0d4d\u0d1f\u0d3e\u0d2f\u0d3f. \u0d35\u0d40\u0d23\u0d4d\u0d1f\u0d41\u0d02 \u0d2c\u0d28\u0d4d\u0d27\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.",
|
||||
"pad.modals.looping.explanation": "\u0d38\u0d3f\u0d02\u0d15\u0d4d\u0d30\u0d23\u0d48\u0d38\u0d47\u0d37\u0d7b \u0d38\u0d46\u0d7c\u0d35\u0d31\u0d41\u0d2e\u0d3e\u0d2f\u0d41\u0d33\u0d4d\u0d33 \u0d06\u0d36\u0d2f\u0d35\u0d3f\u0d28\u0d3f\u0d2e\u0d2f\u0d24\u0d4d\u0d24\u0d3f\u0d7d \u0d2a\u0d4d\u0d30\u0d36\u0d4d\u0d28\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d23\u0d4d\u0d1f\u0d4d.",
|
||||
"pad.modals.looping.cause": "\u0d12\u0d30\u0d41\u0d2a\u0d15\u0d4d\u0d37\u0d47 \u0d2a\u0d4a\u0d30\u0d41\u0d24\u0d4d\u0d24\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d3e\u0d24\u0d4d\u0d24 \u0d2b\u0d2f\u0d7c\u0d35\u0d3e\u0d33\u0d3f\u0d32\u0d42\u0d1f\u0d46\u0d2f\u0d4b \u0d2a\u0d4d\u0d30\u0d4b\u0d15\u0d4d\u0d38\u0d3f\u0d2f\u0d3f\u0d32\u0d42\u0d1f\u0d46\u0d2f\u0d4b \u0d06\u0d15\u0d3e\u0d02 \u0d24\u0d3e\u0d19\u0d4d\u0d15\u0d7e \u0d2c\u0d28\u0d4d\u0d27\u0d3f\u0d1a\u0d4d\u0d1a\u0d3f\u0d30\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d4d.",
|
||||
"pad.modals.initsocketfail": "\u0d38\u0d46\u0d7c\u0d35\u0d31\u0d3f\u0d32\u0d46\u0d24\u0d4d\u0d24\u0d3e\u0d7b \u0d2a\u0d31\u0d4d\u0d31\u0d41\u0d28\u0d4d\u0d28\u0d3f\u0d32\u0d4d\u0d32.",
|
||||
"pad.modals.initsocketfail.explanation": "\u0d38\u0d3f\u0d02\u0d15\u0d4d\u0d30\u0d23\u0d48\u0d38\u0d47\u0d37\u0d7b \u0d38\u0d46\u0d7c\u0d35\u0d31\u0d41\u0d2e\u0d3e\u0d2f\u0d3f \u0d2c\u0d28\u0d4d\u0d27\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d3e\u0d7b \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d3f\u0d32\u0d4d\u0d32.",
|
||||
"pad.modals.initsocketfail.cause": "\u0d07\u0d28\u0d4d\u0d31\u0d7c\u0d28\u0d46\u0d31\u0d4d\u0d31\u0d4d \u0d15\u0d23\u0d15\u0d4d\u0d37\u0d28\u0d4d\u0d31\u0d46\u0d2f\u0d4b \u0d2c\u0d4d\u0d30\u0d57\u0d38\u0d31\u0d3f\u0d28\u0d4d\u0d31\u0d46\u0d2f\u0d4b \u0d2a\u0d4d\u0d30\u0d36\u0d4d\u0d28\u0d2e\u0d3e\u0d15\u0d3e\u0d02",
|
||||
"pad.modals.slowcommit.explanation": "\u0d38\u0d46\u0d7c\u0d35\u0d7c \u0d2a\u0d4d\u0d30\u0d24\u0d3f\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d3f\u0d32\u0d4d\u0d32.",
|
||||
"pad.modals.slowcommit.cause": "\u0d28\u0d46\u0d31\u0d4d\u0d31\u0d4d\u200c\u0d35\u0d7c\u0d15\u0d4d\u0d15\u0d4d \u0d2a\u0d4d\u0d30\u0d36\u0d4d\u0d28\u0d02 \u0d15\u0d3e\u0d30\u0d23\u0d2e\u0d3e\u0d15\u0d3e\u0d02.",
|
||||
"pad.modals.deleted": "\u0d2e\u0d3e\u0d2f\u0d4d\u0d1a\u0d4d\u0d1a\u0d41",
|
||||
"pad.modals.deleted.explanation": "\u0d08 \u0d2a\u0d3e\u0d21\u0d4d \u0d28\u0d40\u0d15\u0d4d\u0d15\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d24\u0d41.",
|
||||
"pad.modals.disconnected": "\u0d24\u0d3e\u0d19\u0d4d\u0d15\u0d7e \u0d35\u0d47\u0d7c\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d3f\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d41.",
|
||||
"pad.modals.disconnected.explanation": "\u0d38\u0d46\u0d7c\u0d35\u0d31\u0d41\u0d2e\u0d3e\u0d2f\u0d41\u0d33\u0d4d\u0d33 \u0d2c\u0d28\u0d4d\u0d27\u0d02 \u0d28\u0d37\u0d4d\u0d1f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41",
|
||||
"pad.modals.disconnected.cause": "\u0d38\u0d46\u0d7c\u0d35\u0d7c \u0d32\u0d2d\u0d4d\u0d2f\u0d2e\u0d32\u0d4d\u0d32\u0d3e\u0d2f\u0d3f\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d3e\u0d02. \u0d07\u0d24\u0d4d \u0d24\u0d41\u0d1f\u0d7c\u0d1a\u0d4d\u0d1a\u0d2f\u0d3e\u0d2f\u0d3f \u0d38\u0d02\u0d2d\u0d35\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d41\u0d23\u0d4d\u0d1f\u0d46\u0d19\u0d4d\u0d15\u0d3f\u0d7d \u0d26\u0d2f\u0d35\u0d3e\u0d2f\u0d3f \u0d1e\u0d19\u0d4d\u0d19\u0d33\u0d46 \u0d05\u0d31\u0d3f\u0d2f\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.",
|
||||
"pad.share": "\u0d08 \u0d2a\u0d3e\u0d21\u0d4d \u0d2a\u0d19\u0d4d\u0d15\u0d3f\u0d1f\u0d41\u0d15",
|
||||
"pad.share.readonly": "\u0d35\u0d3e\u0d2f\u0d3f\u0d15\u0d4d\u0d15\u0d7d \u0d2e\u0d3e\u0d24\u0d4d\u0d30\u0d02",
|
||||
"pad.share.link": "\u0d15\u0d23\u0d4d\u0d23\u0d3f",
|
||||
"pad.share.emebdcode": "\u0d0e\u0d02\u0d2c\u0d46\u0d21\u0d4d \u0d2f\u0d41.\u0d06\u0d7c.\u0d0e\u0d7d.",
|
||||
"pad.chat": "\u0d24\u0d24\u0d4d\u0d38\u0d2e\u0d2f\u0d38\u0d02\u0d35\u0d3e\u0d26\u0d02",
|
||||
"pad.chat.title": "\u0d08 \u0d2a\u0d3e\u0d21\u0d3f\u0d28\u0d4d\u0d31\u0d46 \u0d24\u0d24\u0d4d\u0d38\u0d2e\u0d2f\u0d38\u0d02\u0d35\u0d3e\u0d26\u0d02 \u0d24\u0d41\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d15.",
|
||||
"pad.chat.loadmessages": "\u0d15\u0d42\u0d1f\u0d41\u0d24\u0d7d \u0d38\u0d28\u0d4d\u0d26\u0d47\u0d36\u0d19\u0d4d\u0d19\u0d7e \u0d0e\u0d1f\u0d41\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
||||
"timeslider.pageTitle": "{{appTitle}} \u0d38\u0d2e\u0d2f\u0d30\u0d47\u0d16",
|
||||
"timeslider.toolbar.returnbutton": "\u0d2a\u0d3e\u0d21\u0d3f\u0d32\u0d47\u0d15\u0d4d\u0d15\u0d4d \u0d24\u0d3f\u0d30\u0d3f\u0d1a\u0d4d\u0d1a\u0d41\u0d2a\u0d4b\u0d35\u0d41\u0d15",
|
||||
"timeslider.toolbar.authors": "\u0d30\u0d1a\u0d2f\u0d3f\u0d24\u0d3e\u0d15\u0d4d\u0d15\u0d7e:",
|
||||
"timeslider.toolbar.authorsList": "\u0d06\u0d30\u0d41\u0d02 \u0d0e\u0d34\u0d41\u0d24\u0d3f\u0d2f\u0d3f\u0d1f\u0d4d\u0d1f\u0d3f\u0d32\u0d4d\u0d32",
|
||||
"timeslider.toolbar.exportlink.title": "\u0d15\u0d2f\u0d31\u0d4d\u0d31\u0d41\u0d2e\u0d24\u0d3f",
|
||||
"timeslider.exportCurrent": "\u0d08 \u0d2a\u0d24\u0d3f\u0d2a\u0d4d\u0d2a\u0d4d \u0d07\u0d19\u0d4d\u0d19\u0d28\u0d46 \u0d0e\u0d1f\u0d41\u0d15\u0d4d\u0d15\u0d41\u0d15:",
|
||||
"timeslider.version": "\u0d2a\u0d24\u0d3f\u0d2a\u0d4d\u0d2a\u0d4d {{version}}",
|
||||
"timeslider.saved": "\u0d38\u0d47\u0d35\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d24\u0d24\u0d4d {{month}} {{day}}, {{year}}",
|
||||
"timeslider.dateformat": "{{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "\u0d1c\u0d28\u0d41\u0d35\u0d30\u0d3f",
|
||||
"timeslider.month.february": "\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41\u0d35\u0d30\u0d3f",
|
||||
"timeslider.month.march": "\u0d2e\u0d3e\u0d7c\u0d1a\u0d4d\u0d1a\u0d4d",
|
||||
"timeslider.month.april": "\u0d0f\u0d2a\u0d4d\u0d30\u0d3f\u0d7d",
|
||||
"timeslider.month.may": "\u0d2e\u0d47\u0d2f\u0d4d",
|
||||
"timeslider.month.june": "\u0d1c\u0d42\u0d7a",
|
||||
"timeslider.month.july": "\u0d1c\u0d42\u0d32\u0d48",
|
||||
"timeslider.month.august": "\u0d13\u0d17\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4d",
|
||||
"timeslider.month.september": "\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31\u0d02\u0d2c\u0d7c",
|
||||
"timeslider.month.october": "\u0d12\u0d15\u0d4d\u0d1f\u0d4b\u0d2c\u0d7c",
|
||||
"timeslider.month.november": "\u0d28\u0d35\u0d02\u0d2c\u0d7c",
|
||||
"timeslider.month.december": "\u0d21\u0d3f\u0d38\u0d02\u0d2c\u0d7c",
|
||||
"timeslider.unnamedauthors": "{{num}} \u0d2a\u0d47\u0d30\u0d3f\u0d32\u0d4d\u0d32\u0d3e\u0d24\u0d4d\u0d24 {[plural(num) one: \u0d30\u0d1a\u0d2f\u0d3f\u0d24\u0d3e\u0d35\u0d4d, other: \u0d30\u0d1a\u0d2f\u0d3f\u0d24\u0d3e\u0d15\u0d4d\u0d15\u0d7e }}",
|
||||
"pad.savedrevs.marked": "\u0d08 \u0d28\u0d3e\u0d7e\u0d2a\u0d4d\u0d2a\u0d24\u0d3f\u0d2a\u0d4d\u0d2a\u0d4d \u0d38\u0d47\u0d35\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d24\u0d3f\u0d1f\u0d4d\u0d1f\u0d41\u0d33\u0d4d\u0d33 \u0d28\u0d3e\u0d7e\u0d2a\u0d4d\u0d2a\u0d24\u0d3f\u0d2a\u0d4d\u0d2a\u0d3e\u0d2f\u0d3f \u0d05\u0d1f\u0d2f\u0d3e\u0d33\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d41\u0d24\u0d4d\u0d24\u0d3f\u0d2f\u0d3f\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d41",
|
||||
"pad.userlist.entername": "\u0d24\u0d3e\u0d19\u0d4d\u0d15\u0d33\u0d41\u0d1f\u0d46 \u0d2a\u0d47\u0d30\u0d4d \u0d28\u0d7d\u0d15\u0d41\u0d15",
|
||||
"pad.userlist.unnamed": "\u0d2a\u0d47\u0d30\u0d3f\u0d32\u0d4d\u0d32\u0d3e\u0d24\u0d4d\u0d24\u0d35",
|
||||
"pad.userlist.guest": "\u0d05\u0d24\u0d3f\u0d25\u0d3f",
|
||||
"pad.userlist.deny": "\u0d28\u0d3f\u0d30\u0d38\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
||||
"pad.userlist.approve": "\u0d05\u0d02\u0d17\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
||||
"pad.editbar.clearcolors": "\u0d21\u0d4b\u0d15\u0d4d\u0d2f\u0d41\u0d2e\u0d46\u0d28\u0d4d\u0d31\u0d3f\u0d7d \u0d30\u0d1a\u0d2f\u0d3f\u0d24\u0d3e\u0d15\u0d4d\u0d15\u0d33\u0d46 \u0d38\u0d42\u0d1a\u0d3f\u0d2a\u0d4d\u0d2a\u0d3f\u0d15\u0d4d\u0d15\u0d3e\u0d28\u0d3e\u0d2f\u0d3f \u0d28\u0d7d\u0d15\u0d3f\u0d2f\u0d3f\u0d1f\u0d4d\u0d1f\u0d41\u0d33\u0d4d\u0d33 \u0d28\u0d3f\u0d31\u0d19\u0d4d\u0d19\u0d7e \u0d12\u0d34\u0d3f\u0d35\u0d3e\u0d15\u0d4d\u0d15\u0d1f\u0d4d\u0d1f\u0d46?",
|
||||
"pad.impexp.importbutton": "\u0d07\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d2e\u0d24\u0d3f \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
|
||||
"pad.impexp.importing": "\u0d07\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d2e\u0d24\u0d3f \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d41...",
|
||||
"pad.impexp.confirmimport": "\u0d12\u0d30\u0d41 \u0d2a\u0d4d\u0d30\u0d2e\u0d3e\u0d23\u0d02 \u0d07\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d2e\u0d24\u0d3f \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d4d \u0d28\u0d3f\u0d32\u0d35\u0d3f\u0d32\u0d41\u0d33\u0d4d\u0d33 \u0d0e\u0d34\u0d41\u0d24\u0d4d\u0d24\u0d41\u0d15\u0d7e \u0d28\u0d37\u0d4d\u0d1f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d3e\u0d28\u0d3f\u0d1f\u0d2f\u0d3e\u0d15\u0d4d\u0d15\u0d41\u0d02, \u0d24\u0d41\u0d1f\u0d30\u0d23\u0d2e\u0d46\u0d28\u0d4d\u0d28\u0d4d \u0d09\u0d31\u0d2a\u0d4d\u0d2a\u0d3e\u0d23\u0d4b?",
|
||||
"pad.impexp.convertFailed": "\u0d08 \u0d2a\u0d4d\u0d30\u0d2e\u0d3e\u0d23\u0d02 \u0d07\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d2e\u0d24\u0d3f \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d38\u0d3e\u0d27\u0d3f\u0d1a\u0d4d\u0d1a\u0d3f\u0d32\u0d4d\u0d32. \u0d26\u0d2f\u0d35\u0d3e\u0d2f\u0d3f \u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d21\u0d4b\u0d15\u0d4d\u0d2f\u0d41\u0d2e\u0d46\u0d28\u0d4d\u0d31\u0d4d \u0d2b\u0d4b\u0d7c\u0d2e\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15\u0d2f\u0d4b, \u0d38\u0d4d\u0d35\u0d28\u0d4d\u0d24\u0d2e\u0d3e\u0d2f\u0d3f \u0d2a\u0d15\u0d7c\u0d24\u0d4d\u0d24\u0d3f \u0d1a\u0d47\u0d7c\u0d15\u0d4d\u0d15\u0d41\u0d15\u0d2f\u0d4b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
|
||||
"pad.impexp.uploadFailed": "\u0d05\u0d2a\u0d4d\u200c\u200c\u0d32\u0d4b\u0d21\u0d4d \u0d2a\u0d30\u0d3e\u0d1c\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41. \u0d26\u0d2f\u0d35\u0d3e\u0d2f\u0d3f \u0d35\u0d40\u0d23\u0d4d\u0d1f\u0d41\u0d02 \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
||||
"pad.impexp.importfailed": "\u0d07\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d2e\u0d24\u0d3f \u0d2a\u0d30\u0d3e\u0d1c\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41",
|
||||
"pad.impexp.copypaste": "\u0d26\u0d2f\u0d35\u0d3e\u0d2f\u0d3f \u0d2a\u0d15\u0d7c\u0d24\u0d4d\u0d24\u0d3f \u0d1a\u0d47\u0d7c\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
||||
"pad.impexp.exportdisabled": "{{type}} \u0d2b\u0d4b\u0d7c\u0d2e\u0d3e\u0d31\u0d4d\u0d31\u0d3f\u0d7d \u0d15\u0d2f\u0d31\u0d4d\u0d31\u0d41\u0d2e\u0d24\u0d3f \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d4d \u0d24\u0d1f\u0d1e\u0d4d\u0d1e\u0d3f\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d41. \u0d15\u0d42\u0d1f\u0d41\u0d24\u0d7d \u0d35\u0d3f\u0d35\u0d30\u0d19\u0d4d\u0d19\u0d7e\u0d15\u0d4d\u0d15\u0d4d \u0d24\u0d3e\u0d19\u0d4d\u0d15\u0d33\u0d41\u0d1f\u0d46 \u0d38\u0d3f\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d02 \u0d05\u0d21\u0d4d\u0d2e\u0d3f\u0d28\u0d3f\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d31\u0d4d\u0d31\u0d31\u0d41\u0d2e\u0d3e\u0d2f\u0d3f \u0d2c\u0d28\u0d4d\u0d27\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d41\u0d15."
|
||||
}
|
57
sources/src/locales/mr.json
Normal file
57
sources/src/locales/mr.json
Normal file
|
@ -0,0 +1,57 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Ganeshgiram",
|
||||
"V.narsikar",
|
||||
"Ydyashad"
|
||||
]
|
||||
},
|
||||
"index.newPad": "\u0928\u0935 \u092a\u093e\u0928",
|
||||
"pad.toolbar.bold.title": "\u0920\u0933\u0915 (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "\u0924\u093f\u0930\u092a\u0940 \u092e\u0941\u0926\u094d\u0930\u093e\u0915\u094d\u0937\u0930\u0947 (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "\u0905\u0927\u094b\u0930\u0947\u0916\u0928 (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "\u0905\u0915\u094d\u0937\u0930\u093e\u0902\u0935\u0930 \u0915\u093e\u091f",
|
||||
"pad.toolbar.savedRevision.title": "\u0906\u0935\u0943\u0924\u094d\u0924\u0940 \u091c\u0924\u0928 \u0915\u0930\u093e",
|
||||
"pad.toolbar.settings.title": "\u0938\u0902\u0930\u091a\u0928\u093e",
|
||||
"pad.colorpicker.save": "\u091c\u0924\u0928 \u0915\u0930\u093e",
|
||||
"pad.colorpicker.cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u093e",
|
||||
"pad.loading": "\u092a\u094d\u0930\u092d\u093e\u0930\u0923 \u0915\u0930\u0940\u0924 \u0906\u0939\u0947",
|
||||
"pad.wrongPassword": "\u0906\u092a\u0932\u093e \u092a\u0930\u0935\u0932\u0940\u091a\u093e \u0936\u092c\u094d\u0926 \u091a\u0942\u0915 \u0939\u094b\u0924\u093e",
|
||||
"pad.settings.myView": "\u092e\u093e\u091d\u0947 \u0926\u0943\u0936\u094d\u092f",
|
||||
"pad.settings.linenocheck": "\u0930\u0947\u0937\u093e\u0902\u091a\u0947 \u0915\u094d\u0930\u092e\u093e\u0902\u0915",
|
||||
"pad.settings.language": "\u092d\u093e\u0937\u093e",
|
||||
"pad.importExport.import_export": "\u0906\u092f\u093e\u0924/\u0928\u093f\u0930\u094d\u092f\u093e\u0924",
|
||||
"pad.importExport.importSuccessful": "\u092f\u0936\u0938\u094d\u0935\u0940!",
|
||||
"pad.importExport.exportplain": "\u0938\u093e\u0927\u093e \u092e\u091c\u0915\u0942\u0930",
|
||||
"pad.importExport.exportword": "\u092e\u093e\u092f\u0915\u094d\u0930\u094b\u0938\u0949\u092b\u094d\u091f \u0935\u0930\u094d\u0921",
|
||||
"pad.importExport.exportpdf": "\u092a\u0940\u0921\u0940\u090f\u092b",
|
||||
"pad.importExport.exportopen": "\u0913\u0921\u0940\u090f\u092b(\u0913\u092a\u0928 \u0921\u0949\u0915\u094d\u092f\u0942\u092e\u0947\u0902\u091f \u092b\u0949\u0930\u092e\u0945\u091f)",
|
||||
"pad.importExport.exportdokuwiki": "\u0921\u0941\u0915\u0941\u0935\u093f\u0915\u093f",
|
||||
"pad.modals.connected": "\u0905\u0928\u0941\u092c\u0902\u0927\u093f\u0924",
|
||||
"pad.modals.initsocketfail": "\u0935\u093f\u0926\u093e\u0917\u093e\u0930\u093e\u0938 \u092a\u094b\u091a \u0928\u093e\u0939\u0940.",
|
||||
"pad.modals.deleted": "\u0935\u0917\u0933\u0932\u0947.",
|
||||
"pad.modals.disconnected.cause": "\u092c\u0939\u0941\u0924\u0947\u0915 \u0938\u0930\u0935\u0930 \u0909\u092a\u0932\u092c\u094d\u0927 \u0939\u094b\u0923\u093e\u0930 \u0928\u093e\u0939\u0940\u0964 \u0905\u0938 \u0935\u093e\u0930\u0902\u0935\u093e\u0930 \u091d\u093e\u0932\u094d\u092f\u093e\u0938 \u0915\u0943\u092a\u092f\u093e \u0906\u092e\u094d\u0939\u093e\u0932\u093e \u0915\u0933\u0935\u093e\u0964",
|
||||
"pad.share.link": "\u0926\u0941\u0935\u093e",
|
||||
"pad.chat": "\u0917\u092a\u094d\u092a\u093e",
|
||||
"timeslider.toolbar.authorsList": "\u0932\u0947\u0916\u0915 \u0928\u093e\u0939\u0940",
|
||||
"timeslider.month.january": "\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940",
|
||||
"timeslider.month.february": "\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940",
|
||||
"timeslider.month.march": "\u092e\u093e\u0930\u094d\u091a",
|
||||
"timeslider.month.april": "\u090f\u092a\u094d\u0930\u093f\u0932",
|
||||
"timeslider.month.may": "\u092e\u0947",
|
||||
"timeslider.month.june": "\u091c\u0942\u0928",
|
||||
"timeslider.month.july": "\u091c\u0941\u0932\u0948",
|
||||
"timeslider.month.august": "\u0911\u0917\u0938\u094d\u091f",
|
||||
"timeslider.month.september": "\u0938\u092a\u094d\u091f\u0947\u0902\u092c\u0930",
|
||||
"timeslider.month.october": "\u0911\u0915\u094d\u091f\u094b\u092c\u0930",
|
||||
"timeslider.month.november": "\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930",
|
||||
"timeslider.month.december": "\u0921\u093f\u0938\u0947\u0902\u092c\u0930",
|
||||
"pad.userlist.entername": "\u0906\u092a\u0932\u0947 \u0928\u093e\u0935 \u091f\u093e\u0915\u093e",
|
||||
"pad.userlist.unnamed": "\u0928\u093f\u0928\u093e\u0935\u0940",
|
||||
"pad.userlist.guest": "\u092a\u093e\u0939\u0942\u0923\u093e",
|
||||
"pad.userlist.approve": "\u092e\u0902\u091c\u0942\u0930 \u0915\u0930\u093e",
|
||||
"pad.impexp.importbutton": "\u0906\u0924\u093e \u0906\u092f\u093e\u0924 \u0915\u0930\u093e",
|
||||
"pad.impexp.importing": "\u0906\u092f\u093e\u0924 \u0915\u0930\u0940\u0924 \u0906\u0939\u0947...",
|
||||
"pad.impexp.importfailed": "\u0906\u092f\u093e\u0924 \u0905\u092f\u0936\u0938\u094d\u0935\u0940",
|
||||
"pad.impexp.copypaste": "\u0915\u0943\u092a\u092f\u093e \u0928\u0915\u0932-\u0921\u0915\u0935\u093e"
|
||||
}
|
118
sources/src/locales/ms.json
Normal file
118
sources/src/locales/ms.json
Normal file
|
@ -0,0 +1,118 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Anakmalaysia"
|
||||
]
|
||||
},
|
||||
"index.newPad": "Pad baru",
|
||||
"index.createOpenPad": "atau cipta/buka Pad yang bernama:",
|
||||
"pad.toolbar.bold.title": "Tebal (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "Miring (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "Garis bawah (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "Garis lorek",
|
||||
"pad.toolbar.ol.title": "Senarai tertib",
|
||||
"pad.toolbar.ul.title": "Senarai tak tertib",
|
||||
"pad.toolbar.indent.title": "Engsot ke dalam",
|
||||
"pad.toolbar.unindent.title": "Engsot ke luar",
|
||||
"pad.toolbar.undo.title": "Buat asal (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "Buat semula (Ctrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "Padamkan Warna Pengarang",
|
||||
"pad.toolbar.import_export.title": "Import/Eksport dari/ke format-format fail berbeza",
|
||||
"pad.toolbar.timeslider.title": "Gelangsar masa",
|
||||
"pad.toolbar.savedRevision.title": "Simpan Semakan",
|
||||
"pad.toolbar.settings.title": "Tetapan",
|
||||
"pad.toolbar.embed.title": "Kongsikan dan Terapkan pad ini",
|
||||
"pad.toolbar.showusers.title": "Tunjukkan pengguna pada pad ini",
|
||||
"pad.colorpicker.save": "Simpan",
|
||||
"pad.colorpicker.cancel": "Batalkan",
|
||||
"pad.loading": "Sedang dimuatkan...",
|
||||
"pad.passwordRequired": "Anda memerlukan kata laluan untuk mengakses pad ini",
|
||||
"pad.permissionDenied": "Anda tiada kebenaran untuk mengakses pad ini",
|
||||
"pad.wrongPassword": "Kata laluan anda salah",
|
||||
"pad.settings.padSettings": "Tetapan Pad",
|
||||
"pad.settings.myView": "Paparan Saya",
|
||||
"pad.settings.stickychat": "Sentiasa bersembang pada skrin",
|
||||
"pad.settings.colorcheck": "Warna pengarang",
|
||||
"pad.settings.linenocheck": "Nombor baris",
|
||||
"pad.settings.rtlcheck": "Membaca dari kanan ke kiri?",
|
||||
"pad.settings.fontType": "Jenis fon:",
|
||||
"pad.settings.fontType.normal": "Normal",
|
||||
"pad.settings.fontType.monospaced": "Monospace",
|
||||
"pad.settings.globalView": "Paparan Sejagat",
|
||||
"pad.settings.language": "Bahasa:",
|
||||
"pad.importExport.import_export": "Import/Eksport",
|
||||
"pad.importExport.import": "Muat naik sebarang fail teks atau dokumen",
|
||||
"pad.importExport.importSuccessful": "Berjaya!",
|
||||
"pad.importExport.export": "Eksport pad semasa sebagai:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Teks biasa",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "Anda hanya boleh mengimport dari format teks biasa atau html. Untuk ciri-ciri import yang lebih maju, sila \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003Ememasang abiword\u003C/a\u003E.",
|
||||
"pad.modals.connected": "Bersambung.",
|
||||
"pad.modals.reconnecting": "Bersambung semula dengan pad anda...",
|
||||
"pad.modals.forcereconnect": "Sambung semula secara paksa",
|
||||
"pad.modals.userdup": "Dibuka di tetingkap lain",
|
||||
"pad.modals.userdup.explanation": "Pad ini nampaknya telah dibuka di lebih daripada satu tetingkap pelayar pada komputer ini.",
|
||||
"pad.modals.userdup.advice": "Sambung semula untuk menggunakan tetingkap ini pula.",
|
||||
"pad.modals.unauth": "Tidak dibenarkan",
|
||||
"pad.modals.unauth.explanation": "Kebenaran anda telah berubah sewaktu memaparkan halaman ini. Cuba bersambung semula.",
|
||||
"pad.modals.looping.explanation": "Terdapat masalah komunikasi dengan pelayan penyegerakan.",
|
||||
"pad.modals.looping.cause": "Mungkin anda telah bersambung melalui tembok api atau proksi yang tidak serasi.",
|
||||
"pad.modals.initsocketfail": "Pelayan tidak boleh dicapai.",
|
||||
"pad.modals.initsocketfail.explanation": "Tidak dapat bersambung dengan pelayar penyegerakan.",
|
||||
"pad.modals.initsocketfail.cause": "Ini mungkin disebabkan oleh masalah dengan pelayar atau sambungan internet anda.",
|
||||
"pad.modals.slowcommit.explanation": "Pelayan tidak membalas.",
|
||||
"pad.modals.slowcommit.cause": "Ini mungkin disebabkan oleh masalah dengan kesambungan rangkaian anda.",
|
||||
"pad.modals.deleted": "Dihapuskan.",
|
||||
"pad.modals.deleted.explanation": "Pad ini telah dibuang.",
|
||||
"pad.modals.disconnected": "Sambungan anda telah diputuskan.",
|
||||
"pad.modals.disconnected.explanation": "Sambungan ke pelayan terputus",
|
||||
"pad.modals.disconnected.cause": "Pelayan mungkin tidak dapat dicapai. Sila beritahu kami jika masalah ini berterusan.",
|
||||
"pad.share": "Kongsikan pad ini",
|
||||
"pad.share.readonly": "Baca sahaja",
|
||||
"pad.share.link": "Pautan",
|
||||
"pad.share.emebdcode": "Benamkan URL",
|
||||
"pad.chat": "Sembang",
|
||||
"pad.chat.title": "Buka ruang sembang untuk pad ini.",
|
||||
"pad.chat.loadmessages": "Muatkan banyak lagi pesanan",
|
||||
"timeslider.pageTitle": "Gelangsar Masa {{appTitle}}",
|
||||
"timeslider.toolbar.returnbutton": "Kembali ke pad",
|
||||
"timeslider.toolbar.authors": "Pengarang:",
|
||||
"timeslider.toolbar.authorsList": "Tiada Pengarang",
|
||||
"timeslider.toolbar.exportlink.title": "Eksport",
|
||||
"timeslider.exportCurrent": "Eksport versi semasa sebagai:",
|
||||
"timeslider.version": "Versi {{version}}",
|
||||
"timeslider.saved": "Disimpan pada {{day}} {{month}} {{year}}",
|
||||
"timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "Januari",
|
||||
"timeslider.month.february": "Februari",
|
||||
"timeslider.month.march": "Mac",
|
||||
"timeslider.month.april": "April",
|
||||
"timeslider.month.may": "Mei",
|
||||
"timeslider.month.june": "Jun",
|
||||
"timeslider.month.july": "Julai",
|
||||
"timeslider.month.august": "Ogos",
|
||||
"timeslider.month.september": "September",
|
||||
"timeslider.month.october": "Oktober",
|
||||
"timeslider.month.november": "November",
|
||||
"timeslider.month.december": "Disember",
|
||||
"timeslider.unnamedauthors": "{{num}} orang {[plural(num) other: pengarang]} awanama",
|
||||
"pad.savedrevs.marked": "Semakan ini telah ditandai sebagai semakan tersimpan",
|
||||
"pad.userlist.entername": "Taipkan nama anda",
|
||||
"pad.userlist.unnamed": "tanpa nama",
|
||||
"pad.userlist.guest": "Tetamu",
|
||||
"pad.userlist.deny": "Tolak",
|
||||
"pad.userlist.approve": "Terima",
|
||||
"pad.editbar.clearcolors": "Padamkan warna pengarang pada seluruh dokumen?",
|
||||
"pad.impexp.importbutton": "Import Sekarang",
|
||||
"pad.impexp.importing": "Sedang mengimport...",
|
||||
"pad.impexp.confirmimport": "Mengimport fail akan menulis ganti teks semasa pada pad ini. Adakah anda benar-benar ingin teruskan?",
|
||||
"pad.impexp.convertFailed": "Fail tidak dapat diimport. Sila gunakan format dokumen yang lain atau salin tampal secara manual",
|
||||
"pad.impexp.uploadFailed": "Muat naik gagal, sila cuba lagi",
|
||||
"pad.impexp.importfailed": "Import gagal",
|
||||
"pad.impexp.copypaste": "Sila salin tampal",
|
||||
"pad.impexp.exportdisabled": "Mengeksport dalam format {{type}} dilarang. Sila hubungi pentadbir sistem anda untuk keterangan lanjut."
|
||||
}
|
118
sources/src/locales/nb.json
Normal file
118
sources/src/locales/nb.json
Normal file
|
@ -0,0 +1,118 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Laaknor"
|
||||
]
|
||||
},
|
||||
"index.newPad": "Ny Pad",
|
||||
"index.createOpenPad": "eller opprette/\u00e5pne en ny Pad med dette navnet:",
|
||||
"pad.toolbar.bold.title": "Fet (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "Kursiv (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "Understreking (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "Gjennomstreking",
|
||||
"pad.toolbar.ol.title": "Nummerert liste",
|
||||
"pad.toolbar.ul.title": "Punktliste",
|
||||
"pad.toolbar.indent.title": "Innrykk",
|
||||
"pad.toolbar.unindent.title": "Rykk ut",
|
||||
"pad.toolbar.undo.title": "Angre (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "Gj\u00f8r omigjen (Ctrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "Fjern forfatterfarger",
|
||||
"pad.toolbar.import_export.title": "Importer/eksporter fra/til forskjellige filformater",
|
||||
"pad.toolbar.timeslider.title": "Tidslinje",
|
||||
"pad.toolbar.savedRevision.title": "Lagre revisjoner",
|
||||
"pad.toolbar.settings.title": "Innstillinger",
|
||||
"pad.toolbar.embed.title": "Bygg inn denne padden",
|
||||
"pad.toolbar.showusers.title": "Vis brukerne av denne padden",
|
||||
"pad.colorpicker.save": "Lagre",
|
||||
"pad.colorpicker.cancel": "Avbryt",
|
||||
"pad.loading": "Laster inn...",
|
||||
"pad.passwordRequired": "Du trenger et passord for \u00e5 f\u00e5 tilgang til denne padden",
|
||||
"pad.permissionDenied": "Du har ikke tilgang til denne padden",
|
||||
"pad.wrongPassword": "Feil passord",
|
||||
"pad.settings.padSettings": "Padinnstillinger",
|
||||
"pad.settings.myView": "Min visning",
|
||||
"pad.settings.stickychat": "Chat alltid synlig",
|
||||
"pad.settings.colorcheck": "Forfatterfarger",
|
||||
"pad.settings.linenocheck": "Linjenummer",
|
||||
"pad.settings.rtlcheck": "Les innhold fra h\u00f8yre til venstre?",
|
||||
"pad.settings.fontType": "Skrifttype:",
|
||||
"pad.settings.fontType.normal": "Normal",
|
||||
"pad.settings.fontType.monospaced": "Fast bredde",
|
||||
"pad.settings.globalView": "Global visning",
|
||||
"pad.settings.language": "Spr\u00e5k:",
|
||||
"pad.importExport.import_export": "Importer/eksporter",
|
||||
"pad.importExport.import": "Last opp tekstfil eller dokument",
|
||||
"pad.importExport.importSuccessful": "Vellykket!",
|
||||
"pad.importExport.export": "Eksporter padden som:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Ren tekst",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "Du kan bare importere fra ren tekst eller HTML-formater. For mer avanserte importfunksjoner, \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003Einstaller abiword\u003C/a\u003E.",
|
||||
"pad.modals.connected": "Tilkoblet.",
|
||||
"pad.modals.reconnecting": "Kobler til din pad p\u00e5 nytt...",
|
||||
"pad.modals.forcereconnect": "Tving gjenoppkobling",
|
||||
"pad.modals.userdup": "\u00c5pnet i nytt vindu",
|
||||
"pad.modals.userdup.explanation": "Denne padden ser ut til \u00e5 v\u00e6re \u00e5pnet i mer enn et nettleservindu p\u00e5 denne maskinen.",
|
||||
"pad.modals.userdup.advice": "Koble til igjen for \u00e5 bruke dette vinduet i stedenfor.",
|
||||
"pad.modals.unauth": "Ikke tillatt",
|
||||
"pad.modals.unauth.explanation": "Dine rettigheter har blitt endret mens du s\u00e5 p\u00e5 denne siden. Pr\u00f8v \u00e5 koble til p\u00e5 nytt",
|
||||
"pad.modals.looping.explanation": "Det er kommunikasjonsproblemer med synkroniseringsserveren.",
|
||||
"pad.modals.looping.cause": "Kanskje du koblet til en inkompatibel brannmur eller mellomtjener",
|
||||
"pad.modals.initsocketfail": "Serveren er utilgjengelig",
|
||||
"pad.modals.initsocketfail.explanation": "Kunne ikke koble til synkroniseringsserveren.",
|
||||
"pad.modals.initsocketfail.cause": "Dette er sannsynligvis p\u00e5 grunn av et problem med nettleseren eller din internettoppkobling",
|
||||
"pad.modals.slowcommit.explanation": "Serveren svarer ikke.",
|
||||
"pad.modals.slowcommit.cause": "Dette kan v\u00e6re et problem med nettverkstilkoblingen",
|
||||
"pad.modals.deleted": "Slettet.",
|
||||
"pad.modals.deleted.explanation": "Denne padden har blitt fjernet",
|
||||
"pad.modals.disconnected": "Du har blitt frakoblet.",
|
||||
"pad.modals.disconnected.explanation": "Mistet tilkobling til serveren.",
|
||||
"pad.modals.disconnected.cause": "Serveren kan v\u00e6re utilgjengelig. Vennligst si i fra til oss hvis dette fortsetter \u00e5 skje",
|
||||
"pad.share": "Del denne padden",
|
||||
"pad.share.readonly": "Skrivebeskyttet",
|
||||
"pad.share.link": "Lenke",
|
||||
"pad.share.emebdcode": "URL for innbygging",
|
||||
"pad.chat": "Chat",
|
||||
"pad.chat.title": "\u00c5pne chatten for denne padden.",
|
||||
"pad.chat.loadmessages": "Last flere beskjeder",
|
||||
"timeslider.pageTitle": "{{appTitle}} Tidslinje",
|
||||
"timeslider.toolbar.returnbutton": "G\u00e5 tilbake til pad",
|
||||
"timeslider.toolbar.authors": "Forfattere:",
|
||||
"timeslider.toolbar.authorsList": "Ingen forfattere",
|
||||
"timeslider.toolbar.exportlink.title": "Eksporter",
|
||||
"timeslider.exportCurrent": "Eksporter n\u00e5v\u00e6rende versjon som:",
|
||||
"timeslider.version": "Versjon {{version}}",
|
||||
"timeslider.saved": "Lagret {{day}} {{month}} {{year}}",
|
||||
"timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "januar",
|
||||
"timeslider.month.february": "februar",
|
||||
"timeslider.month.march": "mars",
|
||||
"timeslider.month.april": "april",
|
||||
"timeslider.month.may": "mai",
|
||||
"timeslider.month.june": "juni",
|
||||
"timeslider.month.july": "juli",
|
||||
"timeslider.month.august": "august",
|
||||
"timeslider.month.september": "september",
|
||||
"timeslider.month.october": "oktober",
|
||||
"timeslider.month.november": "november",
|
||||
"timeslider.month.december": "desember",
|
||||
"timeslider.unnamedauthors": "{{num}} navnl\u00f8se forfattere",
|
||||
"pad.savedrevs.marked": "Denne revisjonen er n\u00e5 markert som en lagret revisjon",
|
||||
"pad.userlist.entername": "Skriv inn ditt navn",
|
||||
"pad.userlist.unnamed": "navnl\u00f8s",
|
||||
"pad.userlist.guest": "Gjest",
|
||||
"pad.userlist.deny": "Nekt",
|
||||
"pad.userlist.approve": "Godkjenn",
|
||||
"pad.editbar.clearcolors": "Fjern forfatterfarger p\u00e5 hele dokumentet?",
|
||||
"pad.impexp.importbutton": "Importer n\u00e5",
|
||||
"pad.impexp.importing": "Importerer...",
|
||||
"pad.impexp.confirmimport": "Importering av en fil vil overskrive den n\u00e5v\u00e6rende teksten p\u00e5 padden. Er du sikker p\u00e5 at du vil fortsette?",
|
||||
"pad.impexp.convertFailed": "Vi greide ikke \u00e5 importere denne filen. Bruk et annet dokumentformat eller kopier og lim inn teksten manuelt",
|
||||
"pad.impexp.uploadFailed": "Opplastning feilet. Pr\u00f8v igjen",
|
||||
"pad.impexp.importfailed": "Import feilet",
|
||||
"pad.impexp.copypaste": "Vennligst kopier og lim inn",
|
||||
"pad.impexp.exportdisabled": "Eksporterer som {{type}} er deaktivert. Vennligst kontakt din systemadministrator for detaljer."
|
||||
}
|
119
sources/src/locales/nds.json
Normal file
119
sources/src/locales/nds.json
Normal file
|
@ -0,0 +1,119 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Gthoele",
|
||||
"Joachim Mos"
|
||||
]
|
||||
},
|
||||
"index.newPad": "Nee'et Pad",
|
||||
"index.createOpenPad": "oder Pad mit d\u00fcssen Naam apen maken:",
|
||||
"pad.toolbar.bold.title": "Fett (Strg-B)",
|
||||
"pad.toolbar.italic.title": "Kursiv (Strg-I)",
|
||||
"pad.toolbar.underline.title": "Mit Streek dor \u00fcnner (Strg-U)",
|
||||
"pad.toolbar.strikethrough.title": "Mit Streek dor d\u00f6r",
|
||||
"pad.toolbar.ol.title": "List na Nummern",
|
||||
"pad.toolbar.ul.title": "List ahn Nummern",
|
||||
"pad.toolbar.indent.title": "Text na rechts",
|
||||
"pad.toolbar.unindent.title": "Text na links",
|
||||
"pad.toolbar.undo.title": "Een Stapp retuur (Strg-Z)",
|
||||
"pad.toolbar.redo.title": "Noch mal (Strg-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "Kl\u00f6\u00f6r vun den Schriever wegnehmen",
|
||||
"pad.toolbar.import_export.title": "Rinhalen/Rutgeven in verscheden Dateiformate",
|
||||
"pad.toolbar.timeslider.title": "Geschicht vun de Pad-Faten wiesen",
|
||||
"pad.toolbar.savedRevision.title": "Faten sekern",
|
||||
"pad.toolbar.settings.title": "Instellungen",
|
||||
"pad.toolbar.embed.title": "D\u00fct Pad verdelen oder annerswo ringeven",
|
||||
"pad.toolbar.showusers.title": "Wokeen is online?",
|
||||
"pad.colorpicker.save": "Spiekern",
|
||||
"pad.colorpicker.cancel": "Afbreken",
|
||||
"pad.loading": "L\u00e4\u00e4dt\u2026",
|
||||
"pad.passwordRequired": "Du bruukst en Passwoort, wenn du in d\u00fct Pad rinwullt",
|
||||
"pad.permissionDenied": "In d\u00fct Pad dr\u00f6ffst du nich rin",
|
||||
"pad.wrongPassword": "Dien Passwoort weer nich richtig",
|
||||
"pad.settings.padSettings": "So is dat Pad instellt",
|
||||
"pad.settings.myView": "So heff ik dat instellt",
|
||||
"pad.settings.stickychat": "Chat j\u00fcmmers wiesen",
|
||||
"pad.settings.colorcheck": "Kl\u00f6ren vun de Schrievers wiesen",
|
||||
"pad.settings.linenocheck": "Nummer vun de Reeg",
|
||||
"pad.settings.rtlcheck": "Lees Pad vun rechts nach links",
|
||||
"pad.settings.fontType": "Schriftoort:",
|
||||
"pad.settings.fontType.normal": "Normaal",
|
||||
"pad.settings.fontType.monospaced": "Monospace",
|
||||
"pad.settings.globalView": "Ansicht f\u00f6r all",
|
||||
"pad.settings.language": "Spraak:",
|
||||
"pad.importExport.import_export": "Rinhalen/Rutgeven",
|
||||
"pad.importExport.import": "Datei oder Dokument hoochladen",
|
||||
"pad.importExport.importSuccessful": "Hett slumpt!",
|
||||
"pad.importExport.export": "D\u00fct Pad rutgeven as:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Textdatei",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "Se k\u00f6\u00f6nt blots wat vun Kloortext oder HTML-St\u00fccken r\u00f6verhalen. Mit \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003E k\u00f6\u00f6nt Se ok anner Saken r\u00f6verhalen. Dorf\u00f6r m\u00f6\u00f6t Se bidde abiword inrichten\u003C/a\u003E.",
|
||||
"pad.modals.connected": "Verbindung steiht.",
|
||||
"pad.modals.reconnecting": "En Verbindung wedder opboen ...",
|
||||
"pad.modals.forcereconnect": "Noch mal verbinnen",
|
||||
"pad.modals.userdup": "In en anner Fenster op",
|
||||
"pad.modals.userdup.explanation": "Dat lett, d\u00fct Pat is op d\u00fcssen Reekner in mehr as een Browser-Fenster op.",
|
||||
"pad.modals.userdup.advice": "Wullt du d\u00fct Fenster bruken, bidde noch mal de Verbindung opboen.",
|
||||
"pad.modals.unauth": "Nich freegeven.",
|
||||
"pad.modals.unauth.explanation": "Du hest nu anner Rechten f\u00f6r d\u00fct Pad. Maak dat bidde noch mal wedder nee op.",
|
||||
"pad.modals.looping.explanation": "Dat gifft Kummer bi de Verbindung mit den Pad-Server.",
|
||||
"pad.modals.looping.cause": "Mag ween un du hest Verbindung mit den Padserver \u00f6ver en Firewall, de nich passt, oder en Proxy, de nich passt.",
|
||||
"pad.modals.initsocketfail": "Wi k\u00f6\u00f6nt den Pad-Server nich faat kriegen.",
|
||||
"pad.modals.initsocketfail.explanation": "De Verbindung mit den Pad-Server hett nich klappt.",
|
||||
"pad.modals.initsocketfail.cause": "Mag ween un dat liggt an dien Browser oder an dien Internet-Verbindung.",
|
||||
"pad.modals.slowcommit.explanation": "De Pad-Server gifft keen Antwoort.",
|
||||
"pad.modals.slowcommit.cause": "Kunn wenn un dat liggt an dat Nettwark, oder dor arbeidt j\u00fcst to veel L\u00fc\u00fcd op den Pad-Server.",
|
||||
"pad.modals.deleted": "Weg is dat!",
|
||||
"pad.modals.deleted.explanation": "D\u00fct Pad is nu weg.",
|
||||
"pad.modals.disconnected": "De Kuntakt is afreten.",
|
||||
"pad.modals.disconnected.explanation": "De Kuntakt mit den Pad-Server is afreten.",
|
||||
"pad.modals.disconnected.cause": "Mag ween un wi k\u00f6\u00f6nt den Pad-Server j\u00fcst nich faat kriegen. Schull dat so wiedergahn, segg man Bescheed.",
|
||||
"pad.share": "D\u00fct Pad ok anner L\u00fc\u00fcd wiesen",
|
||||
"pad.share.readonly": "Se k\u00f6\u00f6nt hier j\u00fcst blots lesen",
|
||||
"pad.share.link": "Link",
|
||||
"pad.share.emebdcode": "In Websiet ringeven",
|
||||
"pad.chat": "Chat",
|
||||
"pad.chat.title": "Den Chat vun d\u00fct Pad apen maken",
|
||||
"pad.chat.loadmessages": "Mehr Narichten laden",
|
||||
"timeslider.pageTitle": "{{appTitle}} \u00d6llere Faten vun dat Pad",
|
||||
"timeslider.toolbar.returnbutton": "Retuur na dat Pad",
|
||||
"timeslider.toolbar.authors": "Schrievers:",
|
||||
"timeslider.toolbar.authorsList": "keen Schrievers",
|
||||
"timeslider.toolbar.exportlink.title": "Rutschicken",
|
||||
"timeslider.exportCurrent": "Schick d\u00fcsse Faten rut as:",
|
||||
"timeslider.version": "Faten {{version}}",
|
||||
"timeslider.saved": "Sekert an den {{day}}.{{month}}.{{year}}",
|
||||
"timeslider.dateformat": "{{day}}.{{month}}.{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "Januar",
|
||||
"timeslider.month.february": "Februar",
|
||||
"timeslider.month.march": "M\u00e4rz",
|
||||
"timeslider.month.april": "April",
|
||||
"timeslider.month.may": "Mai",
|
||||
"timeslider.month.june": "Juni",
|
||||
"timeslider.month.july": "Juli",
|
||||
"timeslider.month.august": "August",
|
||||
"timeslider.month.september": "September",
|
||||
"timeslider.month.october": "Oktober",
|
||||
"timeslider.month.november": "November",
|
||||
"timeslider.month.december": "Dezember",
|
||||
"timeslider.unnamedauthors": "{{num}} Schriever ohn Naam {[plural(num) one: Schriever, other: Schrievers ]}",
|
||||
"pad.savedrevs.marked": "D\u00fcsse Faten hett nu dat Teken: sekerte Faten",
|
||||
"pad.userlist.entername": "Schriev dien Naam",
|
||||
"pad.userlist.unnamed": "hett keen Naam",
|
||||
"pad.userlist.guest": "Bes\u00f6ker",
|
||||
"pad.userlist.deny": "Deit uns Leed, wieder geiht dat nich",
|
||||
"pad.userlist.approve": "Man to!",
|
||||
"pad.editbar.clearcolors": "Kl\u00f6ren vun de Schrievers in dat ganze Dokument tor\u00fcchsetten?",
|
||||
"pad.impexp.importbutton": "Nu rinhalen",
|
||||
"pad.impexp.importing": "Haal dat rin \u2026",
|
||||
"pad.impexp.confirmimport": "Wenn du nu en Datei rinhaalst, warrt de Text in dat Pad \u00f6verschreven. Wullt du w\u00fcrklich wieder maken?",
|
||||
"pad.impexp.convertFailed": "Wi k\u00f6\u00f6nt d\u00fcsse Datei nich rinhalen. \u00c4nnert Se bidde dat Format vun dat Dokument oder haalt Se den Text mit de Hand rin.",
|
||||
"pad.impexp.uploadFailed": "Dat Hoochladen hett nich slumpt. Vers\u00f6\u00f6k dat man noch mal.",
|
||||
"pad.impexp.importfailed": "Dat Rinhalen hett nich slumpt",
|
||||
"pad.impexp.copypaste": "Bidde koperen un rinsetten",
|
||||
"pad.impexp.exportdisabled": "Du kannst dat nich in dat {{type}}-Format rutschicken. Wenn du mehr weten wullt, fraag man den Systemadministrator."
|
||||
}
|
122
sources/src/locales/nl.json
Normal file
122
sources/src/locales/nl.json
Normal file
|
@ -0,0 +1,122 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Siebrand"
|
||||
]
|
||||
},
|
||||
"index.newPad": "Nieuw pad",
|
||||
"index.createOpenPad": "Maak of open pad met de naam:",
|
||||
"pad.toolbar.bold.title": "Vet (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "Cursief (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "Onderstrepen (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "Doorhalen",
|
||||
"pad.toolbar.ol.title": "Geordende lijst",
|
||||
"pad.toolbar.ul.title": "Ongeordende lijst",
|
||||
"pad.toolbar.indent.title": "Inspringen",
|
||||
"pad.toolbar.unindent.title": "Inspringing verkleinen",
|
||||
"pad.toolbar.undo.title": "Ongedaan maken (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "Opnieuw uitvoeren (Ctrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "Kleuren auteurs wissen",
|
||||
"pad.toolbar.import_export.title": "Naar/van andere opmaak exporteren/importeren",
|
||||
"pad.toolbar.timeslider.title": "Tijdlijn",
|
||||
"pad.toolbar.savedRevision.title": "Versie opslaan",
|
||||
"pad.toolbar.settings.title": "Instellingen",
|
||||
"pad.toolbar.embed.title": "Pad delen en insluiten",
|
||||
"pad.toolbar.showusers.title": "Gebruikers van dit pad weergeven",
|
||||
"pad.colorpicker.save": "Opslaan",
|
||||
"pad.colorpicker.cancel": "Annuleren",
|
||||
"pad.loading": "Bezig met laden\u2026",
|
||||
"pad.passwordRequired": "U hebt een wachtwoord nodig om toegang te krijgen tot deze pad",
|
||||
"pad.permissionDenied": "U hebt geen rechten om deze pad te bekijken",
|
||||
"pad.wrongPassword": "U hebt een onjuist wachtwoord ingevoerd",
|
||||
"pad.settings.padSettings": "Padinstellingen",
|
||||
"pad.settings.myView": "Mijn overzicht",
|
||||
"pad.settings.stickychat": "Chat altijd zichtbaar",
|
||||
"pad.settings.colorcheck": "Kleuren auteurs",
|
||||
"pad.settings.linenocheck": "Regelnummers",
|
||||
"pad.settings.rtlcheck": "Inhoud van rechts naar links lezen?",
|
||||
"pad.settings.fontType": "Lettertype:",
|
||||
"pad.settings.fontType.normal": "Normaal",
|
||||
"pad.settings.fontType.monospaced": "Monospace",
|
||||
"pad.settings.globalView": "Globaal overzicht",
|
||||
"pad.settings.language": "Taal:",
|
||||
"pad.importExport.import_export": "Importeren/exporteren",
|
||||
"pad.importExport.import": "Upload een tekstbestand of document",
|
||||
"pad.importExport.importSuccessful": "Afgerond",
|
||||
"pad.importExport.export": "Huidige pad exporteren als",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Tekst zonder opmaak",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "Pdf",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "U kunt alleen importeren vanuit platte tekst of een HTML-opmaak. \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003EInstalleer abiword\u003C/a\u003E om meer geavanceerde importmogelijkheden te krijgen.",
|
||||
"pad.modals.connected": "Verbonden.",
|
||||
"pad.modals.reconnecting": "Opnieuw verbinding maken met uw pad...",
|
||||
"pad.modals.forcereconnect": "Opnieuw verbinden",
|
||||
"pad.modals.userdup": "In een ander venster geopend",
|
||||
"pad.modals.userdup.explanation": "Dit pad is meer dan \u00e9\u00e9n keer geopend in een browservenster op deze computer.",
|
||||
"pad.modals.userdup.advice": "Maak opnieuw verbinding als u dit venster wilt gebruiken.",
|
||||
"pad.modals.unauth": "Niet toegestaan",
|
||||
"pad.modals.unauth.explanation": "Uw rechten zijn gewijzigd terwijl u de pagina aan het bekijken was. Probeer opnieuw te verbinden.",
|
||||
"pad.modals.looping.explanation": "Er is een probleem opgetreden tijdens de communicatie met de synchronisatieserver.",
|
||||
"pad.modals.looping.cause": "Mogelijk gebruikt de server een niet compatibele firewall of proxy server.",
|
||||
"pad.modals.initsocketfail": "Server is niet bereikbaar.",
|
||||
"pad.modals.initsocketfail.explanation": "Het was niet mogelijk te verbinden met de synchronisatieserver.",
|
||||
"pad.modals.initsocketfail.cause": "Mogelijk komt dit door uw browser of internetverbinding.",
|
||||
"pad.modals.slowcommit.explanation": "De server reageert niet.",
|
||||
"pad.modals.slowcommit.cause": "Dit komt mogelijk door netwerkproblemen.",
|
||||
"pad.modals.badChangeset.explanation": "Een door u gemaakte bewerking is door de synchronisatieserver als incorrect aangemerkt.",
|
||||
"pad.modals.badChangeset.cause": "Dit kan komen door een onjuiste serverinstelling of door ander onverwacht gedrag. Neem contact op met de servicebeheerder als u denkt dat er een onverwachte uitkomst is. Probeer opnieuw te verbinden om door te gaan met bewerken.",
|
||||
"pad.modals.corruptPad.explanation": "Het pad dat u wilt openen is beschadigd.",
|
||||
"pad.modals.corruptPad.cause": "Dit kan komen door een onjuiste serverinstelling of door ander onverwacht gedrag. Neem contact op met de servicebeheerder.",
|
||||
"pad.modals.deleted": "Verwijderd.",
|
||||
"pad.modals.deleted.explanation": "Dit pad is verwijderd.",
|
||||
"pad.modals.disconnected": "Uw verbinding is verbroken.",
|
||||
"pad.modals.disconnected.explanation": "De verbinding met de server is verbroken",
|
||||
"pad.modals.disconnected.cause": "De server is mogelijk niet beschikbaar. Stel de servicebeheerder op de hoogte.",
|
||||
"pad.share": "Pad delen",
|
||||
"pad.share.readonly": "Alleen-lezen",
|
||||
"pad.share.link": "Koppeling",
|
||||
"pad.share.emebdcode": "URL insluiten",
|
||||
"pad.chat": "Chatten",
|
||||
"pad.chat.title": "Chat voor dit pad opnenen",
|
||||
"pad.chat.loadmessages": "Meer berichten laden",
|
||||
"timeslider.pageTitle": "Tijdlijn voor {{appTitle}}",
|
||||
"timeslider.toolbar.returnbutton": "Terug naar pad",
|
||||
"timeslider.toolbar.authors": "Auteurs:",
|
||||
"timeslider.toolbar.authorsList": "Geen auteurs",
|
||||
"timeslider.toolbar.exportlink.title": "Exporteren",
|
||||
"timeslider.exportCurrent": "Huidige versie exporteren als:",
|
||||
"timeslider.version": "Versie {{version}}",
|
||||
"timeslider.saved": "Opgeslagen op {{day}} {{month}} {{year}}",
|
||||
"timeslider.dateformat": "{{year}}-{{month}}-{{day}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "januari",
|
||||
"timeslider.month.february": "februari",
|
||||
"timeslider.month.march": "maart",
|
||||
"timeslider.month.april": "april",
|
||||
"timeslider.month.may": "mei",
|
||||
"timeslider.month.june": "juni",
|
||||
"timeslider.month.july": "juli",
|
||||
"timeslider.month.august": "augustus",
|
||||
"timeslider.month.september": "september",
|
||||
"timeslider.month.october": "oktober",
|
||||
"timeslider.month.november": "november",
|
||||
"timeslider.month.december": "december",
|
||||
"timeslider.unnamedauthors": "{{num}} onbekende {[plural(num) one: auteur, other: auteurs ]}",
|
||||
"pad.savedrevs.marked": "Deze versie is nu gemarkeerd als opgeslagen versie",
|
||||
"pad.userlist.entername": "Geef uw naam op",
|
||||
"pad.userlist.unnamed": "zonder naam",
|
||||
"pad.userlist.guest": "Gast",
|
||||
"pad.userlist.deny": "Weigeren",
|
||||
"pad.userlist.approve": "Goedkeuren",
|
||||
"pad.editbar.clearcolors": "Auteurskleuren voor het hele document wissen?",
|
||||
"pad.impexp.importbutton": "Nu importeren",
|
||||
"pad.impexp.importing": "Bezig met importeren\u2026",
|
||||
"pad.impexp.confirmimport": "Door een bestand te importeren overschrijft u de huidige tekst van de pad. Wilt u echt doorgaan?",
|
||||
"pad.impexp.convertFailed": "Het was niet mogelijk dit bestand te importeren. Gebruik een andere documentopmaak of kopieer en plak de inhoud handmatig",
|
||||
"pad.impexp.uploadFailed": "Het uploaden is mislukt. Probeer het opnieuw",
|
||||
"pad.impexp.importfailed": "Importeren is mislukt",
|
||||
"pad.impexp.copypaste": "Gebruik kopi\u00ebren en plakken",
|
||||
"pad.impexp.exportdisabled": "Exporteren als {{type}} is uitgeschakeld. Neem contact op met de systeembeheerder voor details."
|
||||
}
|
115
sources/src/locales/nn.json
Normal file
115
sources/src/locales/nn.json
Normal file
|
@ -0,0 +1,115 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": {
|
||||
"1": "Unhammer"
|
||||
}
|
||||
},
|
||||
"index.newPad": "Ny blokk",
|
||||
"index.createOpenPad": "eller opprett/opna ei blokk med namnet:",
|
||||
"pad.toolbar.bold.title": "Feit (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "Kursiv (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "Understreking (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "Gjennomstreking",
|
||||
"pad.toolbar.ol.title": "Nummerert liste",
|
||||
"pad.toolbar.ul.title": "Punktliste",
|
||||
"pad.toolbar.indent.title": "Innrykk",
|
||||
"pad.toolbar.unindent.title": "Rykk ut",
|
||||
"pad.toolbar.undo.title": "Angra (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "Gjer om (Ctrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "Fjern forfattarfargar",
|
||||
"pad.toolbar.import_export.title": "Importer/eksporter til/fr\u00e5 ulike filformat",
|
||||
"pad.toolbar.timeslider.title": "Tidslinje",
|
||||
"pad.toolbar.savedRevision.title": "Lagra utg\u00e5ver",
|
||||
"pad.toolbar.settings.title": "Innstillingar",
|
||||
"pad.toolbar.embed.title": "Bygg inn blokka i ei nettside",
|
||||
"pad.toolbar.showusers.title": "Syn brukarane p\u00e5 blokka",
|
||||
"pad.colorpicker.save": "Lagra",
|
||||
"pad.colorpicker.cancel": "Avbryt",
|
||||
"pad.loading": "Lastar \u2026",
|
||||
"pad.passwordRequired": "Du treng eit passord for \u00e5 opna denne blokka",
|
||||
"pad.permissionDenied": "Du har ikkje tilgang til denne blokka",
|
||||
"pad.wrongPassword": "Feil passord",
|
||||
"pad.settings.padSettings": "Blokkinnstillingar",
|
||||
"pad.settings.myView": "Mi visning",
|
||||
"pad.settings.stickychat": "Prat alltid synleg",
|
||||
"pad.settings.colorcheck": "Forfattarfargar",
|
||||
"pad.settings.linenocheck": "Linjenummer",
|
||||
"pad.settings.fontType": "Skrifttype:",
|
||||
"pad.settings.fontType.normal": "Vanleg",
|
||||
"pad.settings.fontType.monospaced": "Fast breidd",
|
||||
"pad.settings.globalView": "Global visning",
|
||||
"pad.settings.language": "Spr\u00e5k:",
|
||||
"pad.importExport.import_export": "Importer/eksporter",
|
||||
"pad.importExport.import": "Last opp tekstfiler eller dokument",
|
||||
"pad.importExport.importSuccessful": "Vellukka!",
|
||||
"pad.importExport.export": "Eksporter blokka som:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Rein tekst",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "Du kan berre importera fr\u00e5 rein tekst- eller HTML-format. Ver venleg og \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003Einstaller Abiword\u003C/a\u003E om du treng meir avanserte importfunksjonar.",
|
||||
"pad.modals.connected": "Tilkopla.",
|
||||
"pad.modals.reconnecting": "Gjenopprettar tilkoplinga til blokka di \u2026",
|
||||
"pad.modals.forcereconnect": "Tving gjentilkopling",
|
||||
"pad.modals.userdup": "Opna i eit anna vindauge",
|
||||
"pad.modals.userdup.explanation": "Det ser ut som om denne blokka er open i meir enn eitt nettlesarvindauge p\u00e5 denne maskinen.",
|
||||
"pad.modals.userdup.advice": "Kopla til om att for \u00e5 bruka dette vinduage i staden.",
|
||||
"pad.modals.unauth": "Ikkje tillate",
|
||||
"pad.modals.unauth.explanation": "Rettane dine blei endra under visning av denne sida. Pr\u00f8v \u00e5 kopla til p\u00e5 nytt.",
|
||||
"pad.modals.looping.explanation": "Det oppstod kommunikasjonsproblem med synkroniseringstenaren.",
|
||||
"pad.modals.looping.cause": "Kanskje du kopla til gjennom ein inkompatibel brannmur eller mellomtenar.",
|
||||
"pad.modals.initsocketfail": "Klarte ikkje \u00e5 n\u00e5 tenaren.",
|
||||
"pad.modals.initsocketfail.explanation": "Klarte ikkje \u00e5 kopla til synkroniseringstenaren.",
|
||||
"pad.modals.initsocketfail.cause": "Dette er sannsynlegvis p\u00e5 grunn av eit problem med nettlesaren eller internettilkoplinga di.",
|
||||
"pad.modals.slowcommit.explanation": "Tenaren svarer ikkje.",
|
||||
"pad.modals.slowcommit.cause": "Dette kan vera p\u00e5 grunn av problem med nettilkoplinga.",
|
||||
"pad.modals.deleted": "Sletta.",
|
||||
"pad.modals.deleted.explanation": "Denne blokka er fjerna.",
|
||||
"pad.modals.disconnected": "Du blei fr\u00e5kopla.",
|
||||
"pad.modals.disconnected.explanation": "Mista tilkoplinga til tenaren",
|
||||
"pad.modals.disconnected.cause": "Tenaren er ikkje tilgjengeleg. Ver venleg og gi oss ei melding om dette skjer fleire gonger.",
|
||||
"pad.share": "Del denne blokka",
|
||||
"pad.share.readonly": "Skriveverna",
|
||||
"pad.share.link": "Lenkje",
|
||||
"pad.share.emebdcode": "URL for innebygging",
|
||||
"pad.chat": "Prat",
|
||||
"pad.chat.title": "Opna pratepanelet for denne blokka.",
|
||||
"timeslider.pageTitle": "Tidslinje for {{appTitle}}",
|
||||
"timeslider.toolbar.returnbutton": "Attende til blokka",
|
||||
"timeslider.toolbar.authors": "Forfattarar:",
|
||||
"timeslider.toolbar.authorsList": "Ingen forfattarar",
|
||||
"timeslider.toolbar.exportlink.title": "Eksporter",
|
||||
"timeslider.exportCurrent": "Eksporter denne utg\u00e5va som:",
|
||||
"timeslider.version": "Utg\u00e5ve {{version}}",
|
||||
"timeslider.saved": "Lagra {{day}}. {{month}}, {{year}}",
|
||||
"timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}.{{minutes}}.{{seconds}}",
|
||||
"timeslider.month.january": "januar",
|
||||
"timeslider.month.february": "februar",
|
||||
"timeslider.month.march": "mars",
|
||||
"timeslider.month.april": "april",
|
||||
"timeslider.month.may": "mai",
|
||||
"timeslider.month.june": "juni",
|
||||
"timeslider.month.july": "juli",
|
||||
"timeslider.month.august": "august",
|
||||
"timeslider.month.september": "september",
|
||||
"timeslider.month.october": "oktober",
|
||||
"timeslider.month.november": "november",
|
||||
"timeslider.month.december": "desember",
|
||||
"pad.savedrevs.marked": "Denne utg\u00e5va er no merkt som ei lagra utg\u00e5ve",
|
||||
"pad.userlist.entername": "Skriv namnet ditt",
|
||||
"pad.userlist.unnamed": "utan namn",
|
||||
"pad.userlist.guest": "Gjest",
|
||||
"pad.userlist.deny": "Nekt",
|
||||
"pad.userlist.approve": "Godkjenn",
|
||||
"pad.editbar.clearcolors": "Fjern forfattarfargar i heile dokumentet?",
|
||||
"pad.impexp.importbutton": "Importer no",
|
||||
"pad.impexp.importing": "Importerer \u2026",
|
||||
"pad.impexp.confirmimport": "Viss du importerer ei fil, vil denne blokka bli overskriven. Er du sikker p\u00e5 at du vil fortsetja?",
|
||||
"pad.impexp.convertFailed": "Me klarte ikkje \u00e5 importera denne fila. Ver venleg og bruk eit anna dokumentformat, eller kopier og lim inn for hand.",
|
||||
"pad.impexp.uploadFailed": "Feil ved opplasting, ver venleg og pr\u00f8v om att",
|
||||
"pad.impexp.importfailed": "Feil ved importering",
|
||||
"pad.impexp.copypaste": "Ver venleg og kopier og lim inn",
|
||||
"pad.impexp.exportdisabled": "Eksport av {{type}} er skrudd av. Ver venleg og ta kontakt med systemadministrator for meir informasjon."
|
||||
}
|
118
sources/src/locales/oc.json
Normal file
118
sources/src/locales/oc.json
Normal file
|
@ -0,0 +1,118 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Cedric31"
|
||||
]
|
||||
},
|
||||
"index.newPad": "Pad nov\u00e8l",
|
||||
"index.createOpenPad": "o crear/dobrir un Pad intitulat :",
|
||||
"pad.toolbar.bold.title": "Gras (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "Italica (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "Soslinhat (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "Raiat",
|
||||
"pad.toolbar.ol.title": "Lista ordenada",
|
||||
"pad.toolbar.ul.title": "Lista amb de piuses",
|
||||
"pad.toolbar.indent.title": "Indentar",
|
||||
"pad.toolbar.unindent.title": "Desindentar",
|
||||
"pad.toolbar.undo.title": "Anullar (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "Restablir (Ctrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "Escafar las colors qu'identifican los autors",
|
||||
"pad.toolbar.import_export.title": "Importar/Exportar de/cap a un format de fichi\u00e8r diferent",
|
||||
"pad.toolbar.timeslider.title": "Istoric dinamic",
|
||||
"pad.toolbar.savedRevision.title": "Enregistrar la revision",
|
||||
"pad.toolbar.settings.title": "Param\u00e8tres",
|
||||
"pad.toolbar.embed.title": "Partejar e integrar aqueste Pad",
|
||||
"pad.toolbar.showusers.title": "Afichar los utilizaires del Pad",
|
||||
"pad.colorpicker.save": "Enregistrar",
|
||||
"pad.colorpicker.cancel": "Anullar",
|
||||
"pad.loading": "Cargament...",
|
||||
"pad.passwordRequired": "Av\u00e8tz besonh d'un senhal per accedir a aqueste Pad",
|
||||
"pad.permissionDenied": "Vos es pas perm\u00e9s d\u2019accedir a aqueste Pad.",
|
||||
"pad.wrongPassword": "Senhal incorr\u00e8cte",
|
||||
"pad.settings.padSettings": "Param\u00e8tres del Pad",
|
||||
"pad.settings.myView": "Ma vista",
|
||||
"pad.settings.stickychat": "Afichar totjorn lo chat",
|
||||
"pad.settings.colorcheck": "Colors d\u2019identificacion",
|
||||
"pad.settings.linenocheck": "Num\u00e8ros de linhas",
|
||||
"pad.settings.rtlcheck": "Lectura de drecha a esqu\u00e8rra",
|
||||
"pad.settings.fontType": "Tipe de poli\u00e7a :",
|
||||
"pad.settings.fontType.normal": "Normal",
|
||||
"pad.settings.fontType.monospaced": "Monospace",
|
||||
"pad.settings.globalView": "Vista d\u2019ensemble",
|
||||
"pad.settings.language": "Lenga :",
|
||||
"pad.importExport.import_export": "Importar/Exportar",
|
||||
"pad.importExport.import": "Cargar un t\u00e8xte o un document",
|
||||
"pad.importExport.importSuccessful": "Capitat !",
|
||||
"pad.importExport.export": "Exportar lo Pad actual coma :",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "T\u00e8xte brut",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "Pod\u00e8tz pas importar que de formats t\u00e8xte brut o html. Per de foncionalitats d'importacion mai evoluadas, \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003Einstallatz abiword\u003C/a\u003E.",
|
||||
"pad.modals.connected": "Connectat.",
|
||||
"pad.modals.reconnecting": "Reconnexion cap a v\u00f2stre Pad...",
|
||||
"pad.modals.forcereconnect": "For\u00e7ar la reconnexion.",
|
||||
"pad.modals.userdup": "Dob\u00e8rt dins una autra fen\u00e8stra",
|
||||
"pad.modals.userdup.explanation": "Sembla qu'aqueste Pad es dob\u00e8rt dins mai d'una fen\u00e8stra de v\u00f2stre navigador sus aqueste ordenador.",
|
||||
"pad.modals.userdup.advice": "Se reconnectar en utilizant aquesta fen\u00e8stra.",
|
||||
"pad.modals.unauth": "Pas autorizat",
|
||||
"pad.modals.unauth.explanation": "V\u00f2stras permissions son estadas cambiadas al moment de l'afichatge d'aquesta pagina. Ensajatz de vos reconnectar.",
|
||||
"pad.modals.looping.explanation": "Av\u00e8m un probl\u00e8ma de comunicacion amb lo servidor de sincronizacion.",
|
||||
"pad.modals.looping.cause": "Es possible que v\u00f2stra connexion si\u00e1 protegida per un parafu\u00f2c incompatible o un servidor proxy incompatible.",
|
||||
"pad.modals.initsocketfail": "Lo servidor es introbable.",
|
||||
"pad.modals.initsocketfail.explanation": "Impossible de se connectar al servidor de sincronizacion.",
|
||||
"pad.modals.initsocketfail.cause": "Lo probl\u00e8ma p\u00f2t venir de v\u00f2stre navigador web o de v\u00f2stra connexion Internet.",
|
||||
"pad.modals.slowcommit.explanation": "Lo servidor respond pas.",
|
||||
"pad.modals.slowcommit.cause": "Aqueste probl\u00e8ma p\u00f2t venir d'una marrida connectivitat a la ret.",
|
||||
"pad.modals.deleted": "Suprimit.",
|
||||
"pad.modals.deleted.explanation": "Aqueste Pad es estat suprimit.",
|
||||
"pad.modals.disconnected": "S\u00e8tz estat desconnectat.",
|
||||
"pad.modals.disconnected.explanation": "La connexion al servidor a fracassat.",
|
||||
"pad.modals.disconnected.cause": "Es possible que lo servidor si\u00e1 indisponible. Informatz-nos-ne se lo probl\u00e8ma persist\u00eds.",
|
||||
"pad.share": "Partejar aqueste Pad",
|
||||
"pad.share.readonly": "Lectura sola",
|
||||
"pad.share.link": "Ligam",
|
||||
"pad.share.emebdcode": "Ligam d'integrar",
|
||||
"pad.chat": "Chat",
|
||||
"pad.chat.title": "Dobrir lo chat associat a aqueste pad.",
|
||||
"pad.chat.loadmessages": "Cargar mai de messatges.",
|
||||
"timeslider.pageTitle": "Istoric dinamic de {{appTitle}}",
|
||||
"timeslider.toolbar.returnbutton": "Retorn a aqueste Pad.",
|
||||
"timeslider.toolbar.authors": "Autors :",
|
||||
"timeslider.toolbar.authorsList": "Pas cap d'autor",
|
||||
"timeslider.toolbar.exportlink.title": "Exportar",
|
||||
"timeslider.exportCurrent": "Exportar la version actuala en\u00a0:",
|
||||
"timeslider.version": "Version {{version}}",
|
||||
"timeslider.saved": "Enregistrat lo {{day}} {{month}} {{year}}",
|
||||
"timeslider.dateformat": "{{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "Geni\u00e8r",
|
||||
"timeslider.month.february": "Febri\u00e8r",
|
||||
"timeslider.month.march": "Mar\u00e7",
|
||||
"timeslider.month.april": "Abril",
|
||||
"timeslider.month.may": "Mai",
|
||||
"timeslider.month.june": "Junh",
|
||||
"timeslider.month.july": "Julhet",
|
||||
"timeslider.month.august": "Agost",
|
||||
"timeslider.month.september": "Setembre",
|
||||
"timeslider.month.october": "Octobre",
|
||||
"timeslider.month.november": "Novembre",
|
||||
"timeslider.month.december": "Decembre",
|
||||
"timeslider.unnamedauthors": "{{num}} {[plural(num) one: autor anonim, other: autors anonims ]}",
|
||||
"pad.savedrevs.marked": "Aquesta revision es ara marcada coma revision enregistrada",
|
||||
"pad.userlist.entername": "Entratz v\u00f2stre nom",
|
||||
"pad.userlist.unnamed": "sens nom",
|
||||
"pad.userlist.guest": "Convidat",
|
||||
"pad.userlist.deny": "Refusar",
|
||||
"pad.userlist.approve": "Aprovar",
|
||||
"pad.editbar.clearcolors": "Escafar las colors de paternitat dins tot lo document ?",
|
||||
"pad.impexp.importbutton": "Importar ara",
|
||||
"pad.impexp.importing": "Imp\u00f2rt en cors...",
|
||||
"pad.impexp.confirmimport": "Importar un fichi\u00e8r espotir\u00e0 lo t\u00e8xte actual del bl\u00f2t. S\u00e8tz segur que lo vol\u00e8tz far ?",
|
||||
"pad.impexp.convertFailed": "Pod\u00e8m pas importar aqueste fichi\u00e8r. Utilizatz un autre format de document o fas\u00e8tz un copiar/pegar manual",
|
||||
"pad.impexp.uploadFailed": "Lo telecargament a fracassat, reensajatz",
|
||||
"pad.impexp.importfailed": "Frac\u00e0s de l'importacion",
|
||||
"pad.impexp.copypaste": "Copiatz/pegatz",
|
||||
"pad.impexp.exportdisabled": "Exportar al format {{type}} es desactivat. Contactatz v\u00f2stre administrator del sist\u00e8ma per mai de detalhs."
|
||||
}
|
118
sources/src/locales/os.json
Normal file
118
sources/src/locales/os.json
Normal file
|
@ -0,0 +1,118 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Bouron"
|
||||
]
|
||||
},
|
||||
"index.newPad": "\u041d\u043e\u0433",
|
||||
"index.createOpenPad": "\u043a\u04d5\u043d\u04d5 \u0441\u0430\u0440\u0430\u0437/\u0431\u0430\u043a\u04d5\u043d \u043d\u043e\u0433 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0430\u0445\u04d5\u043c \u043d\u043e\u043c\u0438\u043c\u04d5:",
|
||||
"pad.toolbar.bold.title": "\u0411\u04d5\u0437\u0434\u0436\u044b\u043d (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "\u041a\u044a\u04d5\u0434\u0437 (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "\u0411\u044b\u043d\u044b\u043b\u0445\u0430\u0445\u0445 (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "\u0425\u0430\u0445\u0445",
|
||||
"pad.toolbar.ol.title": "\u041d\u044b\u043c\u0430\u0434 \u043d\u043e\u043c\u0445\u044b\u0433\u044a\u0434",
|
||||
"pad.toolbar.ul.title": "\u04d4\u043d\u04d5\u043d\u044b\u043c\u0430\u0434 \u043d\u043e\u043c\u0445\u044b\u0433\u044a\u0434",
|
||||
"pad.toolbar.indent.title": "\u0425\u0430\u0441\u0442",
|
||||
"pad.toolbar.unindent.title": "\u04d4\u0442\u0442\u04d5\u043c\u04d5\u0445\u0430\u0441\u0442",
|
||||
"pad.toolbar.undo.title": "\u0420\u0430\u0437\u0434\u04d5\u0445\u044b\u043d (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "\u0420\u0430\u0446\u0430\u0440\u0430\u0437\u044b\u043d (Ctrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "\u0424\u044b\u0441\u0441\u04d5\u0434\u0436\u044b \u043d\u044b\u0441\u04d5\u043d\u0442\u0442\u04d5 \u0430\u0439\u0441\u044b\u043d\u04d5\u043d",
|
||||
"pad.toolbar.import_export.title": "\u0418\u043c\u043f\u043e\u0440\u0442/\u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u04d5\u043d\u0434\u04d5\u0440 \u0444\u0430\u0439\u043b\u044b \u0444\u043e\u0440\u043c\u0430\u0442\u0442\u04d5\u0439/\u0444\u043e\u0440\u043c\u0430\u0442\u0442\u04d5\u043c",
|
||||
"pad.toolbar.timeslider.title": "\u0420\u04d5\u0441\u0442\u04d5\u0434\u0436\u044b \u0445\u0430\u0445\u0445",
|
||||
"pad.toolbar.savedRevision.title": "\u0424\u04d5\u043b\u0442\u04d5\u0440 \u0431\u0430\u0432\u04d5\u0440\u044b\u043d\u04d5\u043d",
|
||||
"pad.toolbar.settings.title": "\u0423\u0430\u0433\u04d5\u0432\u04d5\u0440\u0434\u0442\u04d5",
|
||||
"pad.toolbar.embed.title": "\u0410\u0446\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0431\u0430\u0444\u0442\u0430\u0443 \u00e6\u043c\u00e6 \u0439\u00e6 \u0442\u044b\u0445\u0445\u00e6\u0439 \u0430\u0445\u044a\u00e6\u0440 \u043a\u00e6\u043d",
|
||||
"pad.toolbar.showusers.title": "\u0410\u0446\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u0430\u0440\u0445\u0430\u0439\u0434\u0436\u044b\u0442\u044b \u0440\u0430\u0432\u0434\u0438\u0441\u044b\u043d",
|
||||
"pad.colorpicker.save": "\u041d\u044b\u0432\u00e6\u0440\u044b\u043d",
|
||||
"pad.colorpicker.cancel": "\u041d\u044b\u0443\u0443\u0430\u0434\u0437\u044b\u043d",
|
||||
"pad.loading": "\u00c6\u0432\u0433\u00e6\u0434 \u0446\u00e6\u0443\u044b...",
|
||||
"pad.passwordRequired": "\u0410\u0446\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043c\u04d5 \u0440\u044b\u0432\u043d\u0430\u043b\u044b\u043d\u04d5\u043d \u0434\u04d5 \u0445\u044a\u04d5\u0443\u044b \u043f\u0430\u0440\u043e\u043b\u044c",
|
||||
"pad.permissionDenied": "\u0414\u04d5\u0443\u04d5\u043d \u043d\u04d5\u0439 \u0431\u0430\u0440 \u0430\u0446\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043c\u04d5 \u0440\u044b\u0432\u043d\u0430\u043b\u044b\u043d",
|
||||
"pad.wrongPassword": "\u0414\u04d5 \u043f\u0430\u0440\u043e\u043b\u044c \u0440\u0430\u0441\u0442 \u043d\u04d5\u0443",
|
||||
"pad.settings.padSettings": "\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u0443\u0430\u0433\u04d5\u0432\u04d5\u0440\u0434\u0442\u044b\u0442\u04d5",
|
||||
"pad.settings.myView": "\u041c\u04d5 \u0443\u044b\u043d\u0434",
|
||||
"pad.settings.stickychat": "\u041d\u044b\u0445\u0430\u0441 \u0430\u043b\u043a\u0443\u044b\u0434\u04d5\u0440 \u04d5\u0432\u0434\u0438\u0441\u044b\u043d",
|
||||
"pad.settings.colorcheck": "\u0424\u044b\u0441\u0441\u04d5\u0434\u0436\u044b \u0445\u0443\u044b\u0437\u0442\u04d5",
|
||||
"pad.settings.linenocheck": "\u0420\u04d5\u043d\u0445\u044a\u044b\u0442\u044b \u043d\u043e\u043c\u044b\u0440\u0442\u04d5",
|
||||
"pad.settings.rtlcheck": "\u041c\u0438\u0434\u0438\u0441 \u0440\u0430\u0445\u0438\u0437\u04d5\u0439 \u0433\u0430\u043b\u0438\u0443\u043c\u04d5 \u0445\u044a\u04d5\u0443\u044b \u0444\u04d5\u0440\u0441\u044b\u043d?",
|
||||
"pad.settings.fontType": "\u0428\u0440\u0438\u0444\u0442\u044b \u0445\u0443\u044b\u0437:",
|
||||
"pad.settings.fontType.normal": "\u0425\u0443\u044b\u043c\u04d5\u0442\u04d5\u0433",
|
||||
"pad.settings.fontType.monospaced": "\u04d4\u043c\u0443\u04d5\u0440\u04d5\u0445",
|
||||
"pad.settings.globalView": "\u0418\u0443\u0443\u044b\u043b\u044b \u0443\u044b\u043d\u0434",
|
||||
"pad.settings.language": "\u00c6\u0432\u0437\u0430\u0433:",
|
||||
"pad.importExport.import_export": "\u0418\u043c\u043f\u043e\u0440\u0442/\u044d\u043a\u0441\u043f\u043e\u0440\u0442",
|
||||
"pad.importExport.import": "\u0418\u0441\u0442\u044b \u0442\u0435\u043a\u0441\u0442 \u0444\u0430\u0439\u043b \u043a\u04d5\u043d\u04d5 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0431\u0430\u0432\u0433\u04d5\u043d\u044b\u043d",
|
||||
"pad.importExport.importSuccessful": "\u04d4\u043d\u0442\u044b\u0441\u0442!",
|
||||
"pad.importExport.export": "\u041d\u044b\u0440\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0441\u044d\u043a\u043f\u043e\u0440\u0442 \u043a\u04d5\u043d\u044b\u043d \u043a\u0443\u044b\u0434:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "\u0425\u0443\u044b\u043c\u00e6\u0442\u00e6\u0433 \u0442\u0435\u043a\u0441\u0442",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "\u0414\u04d5 \u0431\u043e\u043d \u0443 \u0438\u043c\u043f\u043e\u0440\u0442 \u043a\u04d5\u043d\u044b\u043d \u04d5\u0440\u043c\u04d5\u0441\u0442 \u0445\u0443\u044b\u043c\u04d5\u0442\u04d5\u0433 \u0442\u0435\u043a\u0441\u0442 \u043a\u04d5\u043d\u04d5 html \u0444\u043e\u0440\u043c\u0430\u0442\u04d5\u0439. \u041b\u04d5\u043c\u0431\u044b\u043d\u04d5\u0433 \u0438\u043c\u043f\u043e\u0440\u0442\u044b \u043c\u0438\u043d\u0438\u0443\u0434\u0436\u044b\u0442\u04d5\u043d, \u0434\u04d5 \u0445\u043e\u0440\u0437\u04d5\u0445\u04d5\u0439, \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003E\u0441\u04d5\u0432\u04d5\u0440 abiword\u003C/a\u003E.",
|
||||
"pad.modals.connected": "\u0418\u0443\u0433\u043e\u043d\u0434.",
|
||||
"pad.modals.reconnecting": "\u0414\u04d5 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043c\u04d5 \u043d\u043e\u0433\u04d5\u0439 \u0438\u0443\u0433\u043e\u043d\u0434 \u0446\u04d5\u0443\u044b..",
|
||||
"pad.modals.forcereconnect": "\u0422\u044b\u0445\u0445\u04d5\u0439 \u0431\u0430\u0438\u0443 \u043a\u04d5\u043d\u044b\u043d",
|
||||
"pad.modals.userdup": "\u041d\u043e\u0433 \u0440\u0443\u0434\u0437\u044b\u043d\u0434\u0436\u044b \u0431\u0430\u043a\u04d5\u043d\u044b\u043d",
|
||||
"pad.modals.userdup.explanation": "\u0410\u0446\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u04d5\u0432\u04d5\u0446\u0446\u04d5\u0433\u04d5\u043d \u0430\u0446\u044b \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u044b \u0438\u0443\u04d5\u0439 \u0444\u044b\u043b\u0434\u04d5\u0440 \u0440\u0443\u0434\u0437\u044b\u043d\u0434\u0436\u044b \u0443 \u0433\u043e\u043c.",
|
||||
"pad.modals.userdup.advice": "\u041d\u043e\u0433\u04d5\u0439 \u0431\u0430\u0438\u0443 \u0443\u044b\u043d, \u0430\u0446\u044b \u0440\u0443\u0434\u0437\u044b\u043d\u0433\u04d5\u0439 \u0430\u0440\u0445\u0430\u0439\u044b\u043d\u044b \u0431\u04d5\u0441\u0442\u044b.",
|
||||
"pad.modals.unauth": "\u041d\u04d5 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0433\u043e\u043d\u0434",
|
||||
"pad.modals.unauth.explanation": "\u0414\u04d5 \u0431\u0430\u0440\u0442\u04d5 \u0444\u04d5\u0438\u0432\u0442\u043e\u0439, \u0446\u0430\u043b\u044b\u043d\u043c\u04d5 \u0434\u044b \u0430\u0446\u044b \u0444\u0430\u0440\u0441 \u043a\u0430\u0441\u0442\u04d5. \u0411\u0430\u0444\u04d5\u043b\u0432\u0430\u0440 \u043d\u043e\u0433\u04d5\u0439 \u0431\u0430\u0438\u0443 \u0443\u044b\u043d.",
|
||||
"pad.modals.looping.explanation": "\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0439\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u0438\u043c\u04d5 \u0431\u0430\u0438\u0443 \u043a\u04d5\u043d\u044b\u043d\u044b \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u04d5.",
|
||||
"pad.modals.looping.cause": "\u0423\u04d5\u0446\u0446\u04d5\u0433\u04d5\u043d \u0434\u044b \u0431\u0430\u0438\u0443 \u0434\u04d5 \u04d5\u043d\u04d5\u043c\u0431\u04d5\u043b\u0433\u04d5 \u0444\u0430\u0439\u0440\u0432\u043e\u043b \u043a\u04d5\u043d\u04d5 \u043f\u0440\u043e\u043a\u0441\u0438\u0439\u044b \u0443\u044b\u043b\u0442\u044b.",
|
||||
"pad.modals.initsocketfail": "\u0421\u0435\u0440\u0432\u0435\u0440\u043c\u04d5 \u0431\u0430\u0438\u0443\u0433\u04d5\u043d\u04d5\u043d \u043d\u04d5\u0439.",
|
||||
"pad.modals.initsocketfail.explanation": "\u041d\u04d5 \u0440\u0430\u0443\u0430\u0434\u0438\u0441 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0439\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u043c\u04d5 \u0431\u0430\u0438\u0443 \u0443\u044b\u043d.",
|
||||
"pad.modals.initsocketfail.cause": "\u0410\u0439 \u0443\u04d5\u0446\u0446\u04d5\u0433\u04d5\u043d \u0434\u04d5 \u0441\u0433\u0430\u0440\u04d5\u043d \u043a\u04d5\u043d\u04d5 \u0434\u04d5 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u044b \u0442\u044b\u0445\u0445\u04d5\u0439 \u0443.",
|
||||
"pad.modals.slowcommit.explanation": "\u0421\u0435\u0440\u0432\u0435\u0440 \u043d\u04d5 \u0434\u0437\u0443\u0430\u043f\u043f \u043a\u04d5\u043d\u044b.",
|
||||
"pad.modals.slowcommit.cause": "\u0410\u0439 \u0433\u04d5\u043d\u04d5\u043d \u0438\u0441 \u0443 \u0445\u044b\u0437\u044b \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u04d5\u0439\u044b \u0442\u044b\u0445\u0445\u04d5\u0439.",
|
||||
"pad.modals.deleted": "\u0425\u0430\u0444\u0442.",
|
||||
"pad.modals.deleted.explanation": "\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0445\u0430\u0444\u0442 \u04d5\u0440\u0446\u044b\u0434.",
|
||||
"pad.modals.disconnected": "\u0414\u044b \u0445\u0438\u0446\u04d5\u043d\u0433\u043e\u043d\u0434 \u04d5\u0440\u0446\u044b\u0434\u0442\u04d5.",
|
||||
"pad.modals.disconnected.explanation": "\u0421\u0435\u0440\u0432\u0435\u0440\u0438\u043c\u04d5 \u0438\u0443\u0433\u043e\u043d\u0434 \u0444\u0435\u0441\u04d5\u0444\u0442\u0438\u0441",
|
||||
"pad.modals.disconnected.cause": "\u0421\u0435\u0440\u0432\u0435\u0440\u043c\u04d5 \u0433\u04d5\u043d\u04d5\u043d \u0438\u0441 \u0431\u0430\u0438\u0443\u0433\u04d5\u043d\u04d5\u043d \u043d\u04d5\u0439. \u0414\u04d5 \u0445\u043e\u0440\u0437\u04d5\u0445\u04d5\u0439, \u0444\u0435\u0445\u044a\u0443\u0441\u044b\u043d \u043d\u044b\u043d \u04d5\u0439 \u043a\u04d5\u043d, \u043a\u04d5\u0434 \u0430\u0444\u0442\u04d5 \u0434\u0430\u0440\u0434\u0434\u04d5\u0440 \u043a\u04d5\u043d\u0430.",
|
||||
"pad.share": "\u0410\u0446\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0440\u0430\u0439\u0443\u0430\u0440\u044b\u043d",
|
||||
"pad.share.readonly": "\u04d4\u0440\u043c\u04d5\u0441\u0442 \u0444\u04d5\u0440\u0441\u044b\u043d\u04d5\u043d",
|
||||
"pad.share.link": "\u04d4\u0440\u0432\u0438\u0442\u04d5\u043d",
|
||||
"pad.share.emebdcode": "URL \u0431\u0430\u0432\u04d5\u0440\u044b\u043d",
|
||||
"pad.chat": "\u041d\u044b\u0445\u0430\u0441",
|
||||
"pad.chat.title": "\u041e\u0446\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u04d5\u043d \u0447\u0430\u0442 \u0431\u0430\u043a\u04d5\u043d.",
|
||||
"pad.chat.loadmessages": "\u0424\u044b\u043b\u0434\u04d5\u0440 \u0444\u044b\u0441\u0442\u04d5\u0433 \u0440\u0430\u0432\u0433\u04d5\u043d\u044b\u043d",
|
||||
"timeslider.pageTitle": "{{appTitle}}-\u044b \u0440\u04d5\u0442\u04d5\u0434\u0436\u044b \u0445\u0430\u0445\u0445",
|
||||
"timeslider.toolbar.returnbutton": "\u0424\u04d5\u0441\u0442\u04d5\u043c\u04d5, \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043c\u04d5",
|
||||
"timeslider.toolbar.authors": "\u0424\u044b\u0441\u0441\u04d5\u0434\u0436\u044b\u0442\u04d5:",
|
||||
"timeslider.toolbar.authorsList": "\u0424\u044b\u0441\u0441\u04d5\u0434\u0436\u044b\u0442\u04d5 \u043d\u04d5\u0439",
|
||||
"timeslider.toolbar.exportlink.title": "\u042d\u043a\u0441\u043f\u043e\u0440\u0442",
|
||||
"timeslider.exportCurrent": "\u0421\u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u043a\u04d5\u043d\u044b\u043d \u043d\u044b\u0440\u044b \u0444\u04d5\u043b\u0442\u04d5\u0440 \u043a\u0443\u044b\u0434:",
|
||||
"timeslider.version": "\u0412\u0435\u0440\u0441\u0438 {{version}}",
|
||||
"timeslider.saved": "\u04d4\u0432\u04d5\u0440\u0434 \u04d5\u0440\u0446\u044b\u0434 {{year}}-\u04d5\u043c \u0430\u0437\u044b, {{day}}-\u04d5\u043c {{month}}-\u044b",
|
||||
"timeslider.dateformat": "{{day}}.{{month}}.{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "\u044f\u043d\u0432\u0430\u0440\u044c",
|
||||
"timeslider.month.february": "\u0444\u0435\u0432\u0440\u0430\u043b\u044c",
|
||||
"timeslider.month.march": "\u043c\u0430\u0440\u0442\u044a\u0438",
|
||||
"timeslider.month.april": "\u0430\u043f\u0440\u0435\u043b\u044c",
|
||||
"timeslider.month.may": "\u043c\u0430\u0439",
|
||||
"timeslider.month.june": "\u0438\u044e\u043d\u044c",
|
||||
"timeslider.month.july": "\u0438\u044e\u043b\u044c",
|
||||
"timeslider.month.august": "\u0430\u0432\u0433\u0443\u0441\u0442",
|
||||
"timeslider.month.september": "\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c",
|
||||
"timeslider.month.october": "\u043e\u043a\u0442\u044f\u0431\u0440\u044c",
|
||||
"timeslider.month.november": "\u043d\u043e\u044f\u0431\u0440\u044c",
|
||||
"timeslider.month.december": "\u0434\u0435\u043a\u0430\u0431\u0440\u044c",
|
||||
"timeslider.unnamedauthors": "{{num}} \u04d5\u043d\u04d5\u043d\u043e\u043c \u0444\u044b\u0441\u0441\u04d5\u0434\u0436\u044b",
|
||||
"pad.savedrevs.marked": "\u0410\u0446\u044b \u0444\u04d5\u043b\u0442\u04d5\u0440 \u043d\u044b\u0440 \u043a\u0443\u044b\u0434 \u04d5\u0432\u04d5\u0440\u0434 \u0444\u04d5\u043b\u0442\u04d5\u0440 \u043d\u044b\u0441\u0430\u043d\u0433\u043e\u043d\u0434 \u04d5\u0440\u0446\u044b\u0434",
|
||||
"pad.userlist.entername": "\u0414\u04d5 \u043d\u043e\u043c \u0431\u0430\u0444\u044b\u0441\u0441",
|
||||
"pad.userlist.unnamed": "\u04d5\u043d\u04d5\u043d\u043e\u043c",
|
||||
"pad.userlist.guest": "\u0423\u0430\u0437\u04d5\u0433",
|
||||
"pad.userlist.deny": "\u041d\u044b\u0443\u0443\u0430\u0434\u0437\u044b\u043d",
|
||||
"pad.userlist.approve": "\u0421\u0431\u04d5\u043b\u0432\u044b\u0440\u0434 \u043a\u04d5\u043d\u044b\u043d",
|
||||
"pad.editbar.clearcolors": "\u04d4\u043d\u04d5\u0445\u044a\u04d5\u043d \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u04d5\u0439 \u0445\u044a\u04d5\u0443\u044b \u0430\u0439\u0441\u044b\u043d \u0444\u044b\u0441\u0441\u04d5\u0434\u0436\u044b\u0442\u044b \u043d\u044b\u0441\u04d5\u043d\u0442\u0442\u04d5?",
|
||||
"pad.impexp.importbutton": "\u0415\u043d\u044b\u0440 \u0441\u0438\u043c\u043f\u043e\u0440\u0442 \u043a\u04d5\u043d\u044b\u043d",
|
||||
"pad.impexp.importing": "\u0418\u043c\u043f\u043e\u0440\u0442 \u0446\u04d5\u0443\u044b...",
|
||||
"pad.impexp.confirmimport": "\u0424\u0430\u0439\u043b\u044b \u0438\u043c\u043f\u043e\u0440\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u043d\u044b\u0440\u044b \u0442\u0435\u043a\u0441\u0442 \u0431\u044b\u043d\u0442\u043e\u043d \u0444\u04d5\u0438\u0432\u0434\u0437\u04d5\u043d\u0438\u0441. \u04d4\u0446\u04d5\u0433 \u0434\u04d5 \u0444\u04d5\u043d\u0434\u044b \u0443\u044b\u0439 \u0441\u0430\u0440\u0430\u0437\u044b\u043d?",
|
||||
"pad.impexp.convertFailed": "\u041c\u0430\u0445\u04d5\u043d \u043d\u04d5 \u0431\u043e\u043d \u043d\u0435 \u0441\u0441\u0438\u0441 \u0430\u0446\u044b \u0444\u0430\u0439\u043b \u0441\u0438\u043c\u043f\u043e\u0440\u0442 \u043a\u04d5\u043d\u044b\u043d. \u0414\u04d5 \u0445\u043e\u0440\u0437\u04d5\u0445\u04d5\u0439, \u0441\u043f\u0430\u0439\u0434\u0430 \u043a\u04d5\u043d \u04d5\u043d\u0434\u04d5\u0440 \u0444\u0430\u0439\u043b\u044b \u0444\u043e\u0440\u043c\u0430\u0442\u04d5\u0439, \u043a\u04d5\u043d\u04d5 \u0441\u043a\u044a\u043e\u043f\u0438 \u043a\u04d5\u043d \u04d5\u043c\u04d5 \u0431\u0430\u0442\u044b\u0441\u0441 \u0442\u0435\u043a\u0441\u0442 \u0434\u04d5\u0445\u04d5\u0434\u04d5\u0433.",
|
||||
"pad.impexp.uploadFailed": "\u0411\u0430\u0432\u0433\u04d5\u043d\u044b\u043d \u043d\u04d5 \u0440\u0430\u0443\u0430\u0434, \u0434\u04d5 \u0445\u043e\u0440\u0437\u04d5\u0445\u04d5\u0439, \u0444\u04d5\u0441\u0442\u04d5\u0434\u04d5\u0440 \u0431\u0430\u0444\u04d5\u043b\u0432\u0430\u0440",
|
||||
"pad.impexp.importfailed": "\u0418\u043c\u043f\u043e\u0440\u0442 \u043d\u04d5 \u0440\u0430\u0443\u0430\u0434",
|
||||
"pad.impexp.copypaste": "\u0414\u04d5 \u0445\u043e\u0440\u0437\u04d5\u0445\u04d5\u0439, \u043a\u044a\u043e\u043f\u0438 \u043a\u04d5\u043d \u04d5\u043c\u04d5 \u04d5\u0432\u04d5\u0440",
|
||||
"pad.impexp.exportdisabled": "{{type}} \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u0445\u0438\u0446\u04d5\u043d \u0443. \u0414\u04d5 \u0445\u043e\u0440\u0437\u04d5\u0445\u04d5\u0439, \u0431\u0430\u0434\u0437\u0443\u0440 \u0434\u04d5 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u043d \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0442\u04d5\u043c \u0444\u044b\u043b\u0434\u04d5\u0440 \u0431\u0430\u0437\u043e\u043d\u044b\u043d\u04d5\u043d."
|
||||
}
|
104
sources/src/locales/pa.json
Normal file
104
sources/src/locales/pa.json
Normal file
|
@ -0,0 +1,104 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Aalam"
|
||||
]
|
||||
},
|
||||
"index.newPad": "\u0a28\u0a35\u0a3e\u0a02 \u0a2a\u0a48\u0a21",
|
||||
"index.createOpenPad": "\u0a1c\u0a3e\u0a02 \u0a28\u0a3e\u0a02 \u0a28\u0a3e\u0a32 \u0a28\u0a35\u0a3e\u0a02 \u0a2a\u0a48\u0a21 \u0a2c\u0a23\u0a3e\u0a13/\u0a16\u0a4b\u0a32\u0a4d\u0a39\u0a4b:",
|
||||
"pad.toolbar.bold.title": "\u0a17\u0a42\u0a5c\u0a4d\u0a39\u0a3e (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "\u0a24\u0a3f\u0a30\u0a1b\u0a3e (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "\u0a39\u0a47\u0a20\u0a3e\u0a02-\u0a30\u0a47\u0a16\u0a3e (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "\u0a35\u0a3f\u0a70\u0a28\u0a4d\u0a39\u0a4b \u0a35\u0a3f\u0a28\u0a4b",
|
||||
"pad.toolbar.ol.title": "\u0a32\u0a5c\u0a40\u0a35\u0a3e\u0a30 \u0a32\u0a3f\u0a38\u0a1f",
|
||||
"pad.toolbar.ul.title": "\u0a2c\u0a3f\u0a28-\u0a32\u0a5c\u0a40\u0a2c\u0a71\u0a27 \u0a38\u0a42\u0a1a\u0a40",
|
||||
"pad.toolbar.indent.title": "\u0a39\u0a3e\u0a38\u0a3c\u0a40\u0a0f \u0a24\u0a4b\u0a02 \u0a26\u0a42\u0a30",
|
||||
"pad.toolbar.undo.title": "\u0a35\u0a3e\u0a2a\u0a38 (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "\u0a2a\u0a30\u0a24\u0a3e\u0a13 (Ctrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "\u0a2a\u0a30\u0a2e\u0a3e\u0a23\u0a15\u0a3f\u0a24\u0a3e \u0a30\u0a70\u0a17 \u0a38\u0a3e\u0a2b\u0a3c \u0a15\u0a30\u0a4b",
|
||||
"pad.toolbar.import_export.title": "\u0a35\u0a71\u0a16-\u0a35\u0a71\u0a16 \u0a2b\u0a3e\u0a07\u0a32 \u0a2b\u0a3e\u0a30\u0a2e\u0a48\u0a1f \u0a24\u0a4b\u0a02/\u0a35\u0a3f\u0a71\u0a1a \u0a07\u0a70\u0a2a\u0a4b\u0a30\u0a1f/\u0a10\u0a15\u0a38\u0a2a\u0a4b\u0a30\u0a1f \u0a15\u0a30\u0a4b",
|
||||
"pad.toolbar.timeslider.title": "\u0a38\u0a2e\u0a3e\u0a02-\u0a32\u0a15\u0a40\u0a30",
|
||||
"pad.toolbar.savedRevision.title": "\u0a30\u0a40\u0a35\u0a3f\u0a1c\u0a3c\u0a28 \u0a38\u0a70\u0a2d\u0a3e\u0a32\u0a4b",
|
||||
"pad.toolbar.settings.title": "\u0a38\u0a48\u0a1f\u0a3f\u0a70\u0a17",
|
||||
"pad.toolbar.embed.title": "\u0a07\u0a39 \u0a2a\u0a48\u0a21 \u0a38\u0a3e\u0a02\u0a1d\u0a3e \u0a24\u0a47 \u0a07\u0a70\u0a2c\u0a48\u0a71\u0a21 \u0a15\u0a30\u0a4b",
|
||||
"pad.toolbar.showusers.title": "\u0a07\u0a39 \u0a2a\u0a48\u0a21 \u0a09\u0a71\u0a24\u0a47 \u0a2f\u0a42\u0a1c\u0a3c\u0a30 \u0a35\u0a47\u0a16\u0a3e\u0a13",
|
||||
"pad.colorpicker.save": "\u0a38\u0a70\u0a2d\u0a3e\u0a32\u0a4b",
|
||||
"pad.colorpicker.cancel": "\u0a30\u0a71\u0a26 \u0a15\u0a30\u0a4b",
|
||||
"pad.loading": "\u2026\u0a32\u0a4b\u0a21 \u0a15\u0a40\u0a24\u0a3e \u0a1c\u0a3e \u0a30\u0a3f\u0a39\u0a3e \u0a39\u0a48",
|
||||
"pad.passwordRequired": "\u0a07\u0a39 \u0a2a\u0a48\u0a21 \u0a26\u0a40 \u0a35\u0a30\u0a24\u0a4b\u0a02 \u0a15\u0a30\u0a28 \u0a32\u0a08 \u0a24\u0a41\u0a39\u0a3e\u0a28\u0a42\u0a70 \u0a2a\u0a3e\u0a38\u0a35\u0a30\u0a21 \u0a1a\u0a3e\u0a39\u0a40\u0a26\u0a3e \u0a39\u0a48",
|
||||
"pad.permissionDenied": "\u0a07\u0a39 \u0a2a\u0a48\u0a21 \u0a35\u0a30\u0a24\u0a28 \u0a32\u0a08 \u0a24\u0a41\u0a39\u0a3e\u0a28\u0a42\u0a70 \u0a05\u0a27\u0a3f\u0a15\u0a3e\u0a30 \u0a28\u0a39\u0a40\u0a02 \u0a39\u0a28",
|
||||
"pad.wrongPassword": "\u0a24\u0a41\u0a39\u0a3e\u0a21\u0a3e \u0a2a\u0a3e\u0a38\u0a35\u0a30\u0a21 \u0a17\u0a32\u0a24\u0a40 \u0a38\u0a40",
|
||||
"pad.settings.padSettings": "\u0a2a\u0a48\u0a21 \u0a38\u0a48\u0a1f\u0a3f\u0a70\u0a17",
|
||||
"pad.settings.myView": "\u0a2e\u0a47\u0a30\u0a40 \u0a1d\u0a32\u0a15",
|
||||
"pad.settings.stickychat": "\u0a39\u0a2e\u0a47\u0a38\u0a3c\u0a3e \u0a38\u0a15\u0a30\u0a40\u0a28 \u0a09\u0a71\u0a24\u0a47 \u0a17\u0a71\u0a32 \u0a15\u0a30\u0a4b",
|
||||
"pad.settings.linenocheck": "\u0a32\u0a3e\u0a08\u0a28 \u0a28\u0a70\u0a2c\u0a30",
|
||||
"pad.settings.rtlcheck": "\u0a38\u0a2e\u0a71\u0a17\u0a30\u0a40 \u0a38\u0a71\u0a1c\u0a47 \u0a24\u0a4b\u0a02 \u0a16\u0a71\u0a2c\u0a47 \u0a2a\u0a5c\u0a4d\u0a39\u0a28\u0a40 \u0a39\u0a48?",
|
||||
"pad.settings.fontType": "\u0a2b\u0a4b\u0a02\u0a1f \u0a15\u0a3f\u0a38\u0a2e:",
|
||||
"pad.settings.fontType.normal": "\u0a38\u0a27\u0a3e\u0a30\u0a28",
|
||||
"pad.settings.fontType.monospaced": "\u0a2e\u0a4b\u0a28\u0a4b\u0a38\u0a2a\u0a47\u0a38",
|
||||
"pad.settings.globalView": "\u0a17\u0a32\u0a4b\u0a2c\u0a32 \u0a1d\u0a32\u0a15",
|
||||
"pad.settings.language": "\u0a2d\u0a3e\u0a38\u0a3c\u0a3e:",
|
||||
"pad.importExport.import_export": "\u0a07\u0a70\u0a2a\u0a4b\u0a30\u0a1f/\u0a10\u0a15\u0a38\u0a2a\u0a4b\u0a30\u0a1f",
|
||||
"pad.importExport.import": "\u0a15\u0a4b\u0a08 \u0a35\u0a40 \u0a1f\u0a48\u0a15\u0a38\u0a1f \u0a2b\u0a3e\u0a07\u0a32 \u0a1c\u0a3e\u0a02 \u0a26\u0a38\u0a24\u0a3e\u0a35\u0a47\u0a1c\u0a3c \u0a05\u0a71\u0a2a\u0a32\u0a4b\u0a21 \u0a15\u0a30\u0a4b",
|
||||
"pad.importExport.importSuccessful": "\u0a38\u0a2b\u0a3c\u0a32!",
|
||||
"pad.importExport.export": "\u0a2e\u0a4c\u0a1c\u0a42\u0a26\u0a3e \u0a2a\u0a48\u0a21 \u0a28\u0a42\u0a70 \u0a10\u0a15\u0a38\u0a2a\u0a4b\u0a30\u0a1f \u0a15\u0a30\u0a4b:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "\u0a38\u0a27\u0a3e\u0a30\u0a28 \u0a1f\u0a48\u0a15\u0a38\u0a1f",
|
||||
"pad.importExport.exportword": "\u0a2e\u0a3e\u0a08\u0a15\u0a30\u0a4b\u0a38\u0a3e\u0a2b\u0a1f \u0a35\u0a30\u0a21",
|
||||
"pad.importExport.exportpdf": "\u0a2a\u0a40\u0a21\u0a40\u0a10\u0a2b",
|
||||
"pad.importExport.exportopen": "ODF (\u0a13\u0a2a\u0a28 \u0a21\u0a4c\u0a15\u0a42\u0a2e\u0a48\u0a02\u0a1f \u0a2b\u0a3e\u0a30\u0a2e\u0a48\u0a1f)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.modals.connected": "\u0a15\u0a41\u0a28\u0a48\u0a15\u0a1f \u0a39\u0a48\u0964",
|
||||
"pad.modals.reconnecting": "..\u0a24\u0a41\u0a39\u0a3e\u0a21\u0a47 \u0a2a\u0a48\u0a21 \u0a28\u0a3e\u0a32 \u0a2e\u0a41\u0a5c-\u0a15\u0a41\u0a28\u0a48\u0a15\u0a1f \u0a15\u0a40\u0a24\u0a3e \u0a1c\u0a3e \u0a30\u0a3f\u0a39\u0a3e \u0a39\u0a48",
|
||||
"pad.modals.forcereconnect": "\u0a27\u0a71\u0a15\u0a47 \u0a28\u0a3e\u0a32 \u0a2e\u0a41\u0a5c-\u0a15\u0a41\u0a28\u0a48\u0a15\u0a1f \u0a15\u0a30\u0a4b",
|
||||
"pad.modals.userdup": "\u0a39\u0a4b\u0a30 \u0a35\u0a3f\u0a70\u0a21\u0a4b \u0a35\u0a3f\u0a71\u0a1a \u0a16\u0a41\u0a71\u0a32\u0a4d\u0a39\u0a3f\u0a06 \u0a39\u0a48",
|
||||
"pad.modals.unauth": "\u0a2a\u0a30\u0a2e\u0a3e\u0a23\u0a3f\u0a24 \u0a28\u0a39\u0a40\u0a02 \u0a39\u0a48",
|
||||
"pad.modals.initsocketfail": "\u0a38\u0a30\u0a35\u0a30 \u0a2a\u0a39\u0a41\u0a70\u0a1a \u0a35\u0a3f\u0a71\u0a1a \u0a28\u0a39\u0a40\u0a02 \u0a39\u0a48\u0964",
|
||||
"pad.modals.slowcommit.explanation": "\u0a38\u0a30\u0a35\u0a30 \u0a1c\u0a35\u0a3e\u0a2c \u0a28\u0a39\u0a40\u0a02 \u0a26\u0a47 \u0a30\u0a3f\u0a39\u0a3e \u0a39\u0a48\u0964",
|
||||
"pad.modals.slowcommit.cause": "\u0a07\u0a39 \u0a28\u0a48\u0a71\u0a1f\u0a35\u0a30\u0a15 \u0a15\u0a41\u0a28\u0a48\u0a15\u0a38\u0a3c\u0a28 \u0a28\u0a3e\u0a32 \u0a38\u0a2e\u0a71\u0a38\u0a3f\u0a06 \u0a15\u0a30\u0a15\u0a47 \u0a39\u0a4b \u0a38\u0a15\u0a26\u0a3e \u0a39\u0a48\u0964",
|
||||
"pad.modals.deleted": "\u0a39\u0a1f\u0a3e\u0a07\u0a06\u0964",
|
||||
"pad.modals.deleted.explanation": "\u0a07\u0a39 \u0a2a\u0a48\u0a21 \u0a39\u0a1f\u0a3e\u0a07\u0a06 \u0a1c\u0a3e \u0a1a\u0a41\u0a71\u0a15\u0a3e \u0a39\u0a48\u0964",
|
||||
"pad.modals.disconnected": "\u0a24\u0a41\u0a38\u0a40\u0a02 \u0a21\u0a3f\u0a38-\u0a15\u0a41\u0a28\u0a48\u0a15\u0a1f \u0a39\u0a4b \u0a1a\u0a41\u0a71\u0a15\u0a47 \u0a39\u0a4b\u0964",
|
||||
"pad.modals.disconnected.explanation": "\u0a38\u0a30\u0a35\u0a30 \u0a28\u0a3e\u0a32 \u0a15\u0a41\u0a28\u0a48\u0a15\u0a38\u0a3c\u0a28 \u0a16\u0a24\u0a2e \u0a39\u0a4b\u0a07\u0a06 \u0a39\u0a48",
|
||||
"pad.share": "\u0a07\u0a39 \u0a2a\u0a48\u0a21 \u0a38\u0a3e\u0a02\u0a1d\u0a3e \u0a15\u0a30\u0a4b",
|
||||
"pad.share.readonly": "\u0a15\u0a47\u0a35\u0a32 \u0a2a\u0a5c\u0a4d\u0a39\u0a28 \u0a32\u0a08",
|
||||
"pad.share.link": "\u0a32\u0a3f\u0a70\u0a15",
|
||||
"pad.share.emebdcode": "\u0a07\u0a70\u0a2c\u0a48\u0a71\u0a21 URL",
|
||||
"pad.chat": "\u0a17\u0a71\u0a32\u0a2c\u0a3e\u0a24",
|
||||
"pad.chat.title": "\u0a07\u0a39 \u0a2a\u0a48\u0a21 \u0a32\u0a08 \u0a17\u0a71\u0a32\u0a2c\u0a3e\u0a24 \u0a16\u0a4b\u0a32\u0a4d\u0a39\u0a4b\u0964",
|
||||
"pad.chat.loadmessages": "\u0a39\u0a4b\u0a30 \u0a38\u0a41\u0a28\u0a47\u0a39\u0a47 \u0a32\u0a4b\u0a21 \u0a15\u0a30\u0a4b",
|
||||
"timeslider.pageTitle": "{{appTitle}} \u0a38\u0a2e\u0a3e\u0a02-\u0a32\u0a15\u0a40\u0a30",
|
||||
"timeslider.toolbar.returnbutton": "\u0a2a\u0a48\u0a21 \u0a09\u0a71\u0a24\u0a47 \u0a35\u0a3e\u0a2a\u0a38",
|
||||
"timeslider.toolbar.authors": "\u0a32\u0a47\u0a16\u0a15:",
|
||||
"timeslider.toolbar.authorsList": "\u0a15\u0a4b\u0a08 \u0a32\u0a47\u0a16\u0a15 \u0a28\u0a39\u0a40\u0a02",
|
||||
"timeslider.toolbar.exportlink.title": "\u0a10\u0a15\u0a38\u0a2a\u0a4b\u0a30\u0a1f",
|
||||
"timeslider.exportCurrent": "\u0a2e\u0a4c\u0a1c\u0a42\u0a26\u0a3e \u0a35\u0a30\u0a1c\u0a28 \u0a07\u0a70\u0a1d \u0a10\u0a15\u0a38\u0a2a\u0a4b\u0a30\u0a1f \u0a15\u0a30\u0a4b:",
|
||||
"timeslider.version": "\u0a35\u0a30\u0a1c\u0a28 {{version}}",
|
||||
"timeslider.saved": "{{day}} {{month}} {{year}} \u0a28\u0a42\u0a70 \u0a38\u0a70\u0a2d\u0a3e\u0a32\u0a3f\u0a06",
|
||||
"timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "\u0a1c\u0a28\u0a35\u0a30\u0a40",
|
||||
"timeslider.month.february": "\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40",
|
||||
"timeslider.month.march": "\u0a2e\u0a3e\u0a30\u0a1a",
|
||||
"timeslider.month.april": "\u0a05\u0a2a\u0a30\u0a48\u0a32",
|
||||
"timeslider.month.may": "\u0a2e\u0a08",
|
||||
"timeslider.month.june": "\u0a1c\u0a42\u0a28",
|
||||
"timeslider.month.july": "\u0a1c\u0a41\u0a32\u0a3e\u0a08",
|
||||
"timeslider.month.august": "\u0a05\u0a17\u0a38\u0a24",
|
||||
"timeslider.month.september": "\u0a38\u0a24\u0a70\u0a2c\u0a30",
|
||||
"timeslider.month.october": "\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30",
|
||||
"timeslider.month.november": "\u0a28\u0a35\u0a70\u0a2c\u0a30",
|
||||
"timeslider.month.december": "\u0a26\u0a38\u0a70\u0a2c\u0a30",
|
||||
"timeslider.unnamedauthors": "{{num}} \u0a2c\u0a47\u0a28\u0a3e\u0a2e \u0a32\u0a47\u0a16\u0a15",
|
||||
"pad.savedrevs.marked": "\u0a07\u0a39 \u0a30\u0a40\u0a35\u0a3f\u0a1c\u0a3c\u0a28 \u0a28\u0a42\u0a70 \u0a39\u0a41\u0a23 \u0a38\u0a70\u0a2d\u0a3e\u0a32\u0a47 \u0a39\u0a4b\u0a0f \u0a30\u0a40\u0a35\u0a3f\u0a1c\u0a3c\u0a28 \u0a35\u0a1c\u0a4b\u0a02 \u0a2e\u0a70\u0a28\u0a3f\u0a06 \u0a17\u0a3f\u0a06 \u0a39\u0a48",
|
||||
"pad.userlist.entername": "\u0a06\u0a2a\u0a23\u0a3e \u0a28\u0a3e\u0a02 \u0a26\u0a3f\u0a09",
|
||||
"pad.userlist.unnamed": "\u0a2c\u0a47\u0a28\u0a3e\u0a2e",
|
||||
"pad.userlist.guest": "\u0a2e\u0a39\u0a3f\u0a2e\u0a3e\u0a28",
|
||||
"pad.userlist.deny": "\u0a2a\u0a3e\u0a2c\u0a70\u0a26\u0a40",
|
||||
"pad.userlist.approve": "\u0a2e\u0a28\u0a1c\u0a3c\u0a42\u0a30",
|
||||
"pad.editbar.clearcolors": "\u0a2a\u0a42\u0a30\u0a47 \u0a26\u0a38\u0a3e\u0a24\u0a35\u0a47\u0a1c\u0a3c \u0a09\u0a71\u0a24\u0a47 \u0a2a\u0a30\u0a2e\u0a3e\u0a23\u0a15\u0a3f\u0a24\u0a3e \u0a30\u0a70\u0a17 \u0a38\u0a3e\u0a2b\u0a3c \u0a15\u0a30\u0a28\u0a47 \u0a39\u0a28?",
|
||||
"pad.impexp.importbutton": "\u0a39\u0a41\u0a23\u0a47 \u0a07\u0a70\u0a2a\u0a4b\u0a30\u0a1f \u0a15\u0a30\u0a4b",
|
||||
"pad.impexp.importing": "...\u0a07\u0a70\u0a2a\u0a4b\u0a30\u0a1f \u0a15\u0a40\u0a24\u0a3e \u0a1c\u0a3e \u0a30\u0a3f\u0a39\u0a3e \u0a39\u0a48",
|
||||
"pad.impexp.uploadFailed": "\u0a05\u0a71\u0a2a\u0a32\u0a4b\u0a21 \u0a32\u0a08 \u0a2b\u0a47\u0a32\u0a4d\u0a39 \u0a39\u0a48, \u0a2b\u0a47\u0a30 \u0a15\u0a4b\u0a38\u0a3c\u0a3f\u0a38\u0a3c \u0a15\u0a30\u0a4b \u0a1c\u0a40\u0964",
|
||||
"pad.impexp.importfailed": "\u0a07\u0a70\u0a2a\u0a4b\u0a30\u0a1f \u0a2b\u0a47\u0a32\u0a4d\u0a39 \u0a39\u0a48",
|
||||
"pad.impexp.copypaste": "\u0a15\u0a3e\u0a2a\u0a40 \u0a15\u0a30\u0a4b \u0a1a\u0a47\u0a2a\u0a4b \u0a1c\u0a40"
|
||||
}
|
125
sources/src/locales/pl.json
Normal file
125
sources/src/locales/pl.json
Normal file
|
@ -0,0 +1,125 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": {
|
||||
"0": "Rezonansowy",
|
||||
"2": "Ty221",
|
||||
"3": "WTM",
|
||||
"4": "Woytecr"
|
||||
}
|
||||
},
|
||||
"index.newPad": "Nowy dokument",
|
||||
"index.createOpenPad": "lub stw\u00f3rz/otw\u00f3rz dokument o nazwie:",
|
||||
"pad.toolbar.bold.title": "Pogrubienie (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "Kursywa (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "Podkre\u015blenie (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "Przekre\u015blenie",
|
||||
"pad.toolbar.ol.title": "Lista uporz\u0105dkowana",
|
||||
"pad.toolbar.ul.title": "Lista nieuporz\u0105dkowana",
|
||||
"pad.toolbar.indent.title": "Wci\u0119cie",
|
||||
"pad.toolbar.unindent.title": "Zmniejsz wci\u0119cie",
|
||||
"pad.toolbar.undo.title": "Cofnij (Ctrl-Z)",
|
||||
"pad.toolbar.redo.title": "Pon\u00f3w (Ctrl-Y)",
|
||||
"pad.toolbar.clearAuthorship.title": "Usu\u0144 kolory autor\u00f3w",
|
||||
"pad.toolbar.import_export.title": "Import/eksport z/do r\u00f3\u017cnych format\u00f3w plik\u00f3w",
|
||||
"pad.toolbar.timeslider.title": "O\u015b czasu",
|
||||
"pad.toolbar.savedRevision.title": "Zapisz wersj\u0119",
|
||||
"pad.toolbar.settings.title": "Ustawienia",
|
||||
"pad.toolbar.embed.title": "Podziel si\u0119 i osad\u017a ten dokument",
|
||||
"pad.toolbar.showusers.title": "Poka\u017c u\u017cytkownik\u00f3w",
|
||||
"pad.colorpicker.save": "Zapisz",
|
||||
"pad.colorpicker.cancel": "Anuluj",
|
||||
"pad.loading": "\u0141adowanie...",
|
||||
"pad.passwordRequired": "Musisz poda\u0107 has\u0142o aby uzyska\u0107 dost\u0119p do tego dokumentu",
|
||||
"pad.permissionDenied": "Nie masz uprawnie\u0144 dost\u0119pu do tego dokumentu",
|
||||
"pad.wrongPassword": "Nieprawid\u0142owe has\u0142o",
|
||||
"pad.settings.padSettings": "Ustawienia dokumentu",
|
||||
"pad.settings.myView": "M\u00f3j widok",
|
||||
"pad.settings.stickychat": "Czat zawsze na ekranie",
|
||||
"pad.settings.colorcheck": "Kolory autorstwa",
|
||||
"pad.settings.linenocheck": "Numery linii",
|
||||
"pad.settings.rtlcheck": "Czytasz tre\u015b\u0107 od prawej do lewej?",
|
||||
"pad.settings.fontType": "Rodzaj czcionki:",
|
||||
"pad.settings.fontType.normal": "Normalna",
|
||||
"pad.settings.fontType.monospaced": "Monospace",
|
||||
"pad.settings.globalView": "Widok og\u00f3lny",
|
||||
"pad.settings.language": "J\u0119zyk:",
|
||||
"pad.importExport.import_export": "Import/eksport",
|
||||
"pad.importExport.import": "Prze\u015blij dowolny plik tekstowy lub dokument",
|
||||
"pad.importExport.importSuccessful": "Sukces!",
|
||||
"pad.importExport.export": "Eksportuj bie\u017c\u0105cy dokument jako:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "Zwyk\u0142y tekst",
|
||||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.exportdokuwiki": "DokuWiki",
|
||||
"pad.importExport.abiword.innerHTML": "Mo\u017cesz importowa\u0107 pliki tylko w formacie zwyk\u0142ego tekstu lub html. Aby umo\u017cliwi\u0107 bardziej zaawansowane funkcje importu, \u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003Ezainstaluj abiword\u003C/a\u003E.",
|
||||
"pad.modals.connected": "Po\u0142\u0105czony.",
|
||||
"pad.modals.reconnecting": "Ponowne \u0142\u0105czenie z dokumentem...",
|
||||
"pad.modals.forcereconnect": "Wymu\u015b ponowne po\u0142\u0105czenie",
|
||||
"pad.modals.userdup": "Otwarty w innym oknie",
|
||||
"pad.modals.userdup.explanation": "Ten dokument prawdopodobnie zosta\u0142 otwarty w wi\u0119cej ni\u017c jednym oknie przegl\u0105darki.",
|
||||
"pad.modals.userdup.advice": "Po\u0142\u0105cz ponownie przy u\u017cyciu tego okna.",
|
||||
"pad.modals.unauth": "Brak autoryzacji",
|
||||
"pad.modals.unauth.explanation": "Twoje uprawnienia uleg\u0142y zmianie podczas przegl\u0105dania tej strony. Spr\u00f3buj ponownie si\u0119 po\u0142\u0105czy\u0107.",
|
||||
"pad.modals.looping.explanation": "Wyst\u0105pi\u0142y problemy z komunikacj\u0105 z serwerem synchronizacji.",
|
||||
"pad.modals.looping.cause": "By\u0107 mo\u017ce jeste\u015b po\u0142\u0105czony przez niezgodn\u0105 zapor\u0119 lub serwer proxy.",
|
||||
"pad.modals.initsocketfail": "Serwer jest nieosi\u0105galny.",
|
||||
"pad.modals.initsocketfail.explanation": "Nie uda\u0142o si\u0119 po\u0142\u0105czy\u0107 z serwerem synchronizacji.",
|
||||
"pad.modals.initsocketfail.cause": "Przyczyn\u0105 s\u0105 prawdopodobnie problemy z przegl\u0105darka lub po\u0142\u0105czeniem z internetem.",
|
||||
"pad.modals.slowcommit.explanation": "Serwer nie odpowiada.",
|
||||
"pad.modals.slowcommit.cause": "Mo\u017ce by\u0107 to spowodowane problemami z Twoim po\u0142\u0105czeniem z sieci\u0105.",
|
||||
"pad.modals.badChangeset.explanation": "Edycja, kt\u00f3r\u0105 wykona\u0142e\u015b, zosta\u0142a niew\u0142a\u015bciwie zakwalifikowana przez serwer synchronizacji.",
|
||||
"pad.modals.badChangeset.cause": "Mo\u017ce by\u0107 to spowodowane z\u0142\u0105 konfiguracj\u0105 serwera lub innym nieoczekiwanym zachowaniem. Skontaktuj si\u0119 z administratorem serwisu, je\u017celi wydaje Ci si\u0119, \u017ce to jest b\u0142\u0105d. Spr\u00f3buj ponownie po\u0142\u0105czy\u0107 si\u0119 aby kontynuowa\u0107 edycj\u0119.",
|
||||
"pad.modals.corruptPad.explanation": "Dokument, do kt\u00f3rego pr\u00f3bujesz uzyska\u0107 dost\u0119p, jest uszkodzony.",
|
||||
"pad.modals.corruptPad.cause": "Mo\u017ce by\u0107 to spowodowane z\u0142\u0105 konfiguracj\u0105 serwera lub innym nieoczekiwanym zachowaniem. Skontaktuj si\u0119 z administratorem serwisu.",
|
||||
"pad.modals.deleted": "Usuni\u0119to.",
|
||||
"pad.modals.deleted.explanation": "Ten dokument zosta\u0142 usuni\u0119ty.",
|
||||
"pad.modals.disconnected": "Zosta\u0142e\u015b roz\u0142\u0105czony.",
|
||||
"pad.modals.disconnected.explanation": "Utracono po\u0142\u0105czenie z serwerem",
|
||||
"pad.modals.disconnected.cause": "Serwer mo\u017ce by\u0107 niedost\u0119pny. Poinformuj administratora serwisu je\u017celi problem b\u0119dzie si\u0119 powtarza\u0142.",
|
||||
"pad.share": "Udost\u0119pnij ten dokument",
|
||||
"pad.share.readonly": "Tylko do odczytu",
|
||||
"pad.share.link": "Link",
|
||||
"pad.share.emebdcode": "URL do umieszczenia",
|
||||
"pad.chat": "Czat",
|
||||
"pad.chat.title": "Otw\u00f3rz czat dla tego dokumentu.",
|
||||
"pad.chat.loadmessages": "Za\u0142aduj wi\u0119cej wiadomo\u015bci",
|
||||
"timeslider.pageTitle": "O\u015b czasu {{appTitle}}",
|
||||
"timeslider.toolbar.returnbutton": "Powr\u00f3\u0107 do dokumentu",
|
||||
"timeslider.toolbar.authors": "Autorzy:",
|
||||
"timeslider.toolbar.authorsList": "Brak autor\u00f3w",
|
||||
"timeslider.toolbar.exportlink.title": "Eksportuj",
|
||||
"timeslider.exportCurrent": "Eksportuj bie\u017c\u0105c\u0105 wersj\u0119 jako:",
|
||||
"timeslider.version": "Wersja {{version}}",
|
||||
"timeslider.saved": "Zapisano {{day}} {{month}} {{year}}",
|
||||
"timeslider.dateformat": "{{year}}-{{month}}-{{day}} {{hours}}:{{minutes}}:{{seconds}}",
|
||||
"timeslider.month.january": "Stycze\u0144",
|
||||
"timeslider.month.february": "Luty",
|
||||
"timeslider.month.march": "Marzec",
|
||||
"timeslider.month.april": "Kwiecie\u0144",
|
||||
"timeslider.month.may": "Maj",
|
||||
"timeslider.month.june": "Czerwiec",
|
||||
"timeslider.month.july": "Lipiec",
|
||||
"timeslider.month.august": "Sierpie\u0144",
|
||||
"timeslider.month.september": "Wrzesie\u0144",
|
||||
"timeslider.month.october": "Pa\u017adziernik",
|
||||
"timeslider.month.november": "Listopad",
|
||||
"timeslider.month.december": "Grudzie\u0144",
|
||||
"timeslider.unnamedauthors": "{{num}} {[plural(num) one: autor, other: autor\u00f3w ]} bez nazw",
|
||||
"pad.savedrevs.marked": "Ta wersja zosta\u0142a w\u0142a\u015bnie oznaczona jako zapisana.",
|
||||
"pad.userlist.entername": "Wprowad\u017a swoj\u0105 nazw\u0119",
|
||||
"pad.userlist.unnamed": "bez nazwy",
|
||||
"pad.userlist.guest": "Go\u015b\u0107",
|
||||
"pad.userlist.deny": "Zabro\u0144",
|
||||
"pad.userlist.approve": "Akceptuj",
|
||||
"pad.editbar.clearcolors": "Wyczy\u015bci\u0107 kolory autorstwa w ca\u0142ym dokumencie?",
|
||||
"pad.impexp.importbutton": "Importuj teraz",
|
||||
"pad.impexp.importing": "Importowanie...",
|
||||
"pad.impexp.confirmimport": "Importowanie pliku spowoduje zast\u0105pienie bie\u017c\u0105cego tekstu. Czy na pewno chcesz kontynuowa\u0107?",
|
||||
"pad.impexp.convertFailed": "Nie byli\u015bmy w stanie zaimportowa\u0107 tego pliku. Prosz\u0119 u\u017cy\u0107 innego formatu dokumentu lub skopiowa\u0107 i wklei\u0107 r\u0119cznie",
|
||||
"pad.impexp.uploadFailed": "Przesy\u0142anie nie powiod\u0142o si\u0119, prosz\u0119 spr\u00f3bowa\u0107 jeszcze raz",
|
||||
"pad.impexp.importfailed": "Importowanie nie powiod\u0142o si\u0119",
|
||||
"pad.impexp.copypaste": "Prosz\u0119 skopiowa\u0107 i wklei\u0107",
|
||||
"pad.impexp.exportdisabled": "Eksport do formatu {{type}} jest wy\u0142\u0105czony. Prosz\u0119 skontaktowa\u0107 si\u0119 z administratorem aby uzyska\u0107 wi\u0119cej szczeg\u00f3\u0142\u00f3w."
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue