1
0
mirror of https://github.com/fcwu/docker-ubuntu-vnc-desktop synced 2026-08-05 16:12:41 +02:00

refactor: clean code

This commit is contained in:
Doro Wu
2017-02-26 12:53:08 +08:00
parent 0c04c5ec3b
commit 0f153bc41b
1266 changed files with 15 additions and 264743 deletions
+34
View File
@@ -0,0 +1,34 @@
all:
.PHONY: update-po update-js update-pot
LINGUAS := de el nl sv
VERSION := $(shell grep '"version"' ../package.json | cut -d '"' -f 4)
POFILES := $(addsuffix .po,$(LINGUAS))
JSFILES := $(addprefix ../app/locale/,$(addsuffix .js,$(LINGUAS)))
update-po: $(POFILES)
update-js: $(JSFILES)
%.po: noVNC.pot
msgmerge --update --lang=$* $@ $<
../app/locale/%.js: %.po
./po2js $< $@
update-pot:
xgettext --output=noVNC.js.pot \
--copyright-holder="Various Authors" \
--package-name="noVNC" \
--package-version="$(VERSION)" \
--msgid-bugs-address="novnc@googlegroups.com" \
--add-comments=TRANSLATORS: \
--sort-by-file \
../app/*.js \
../core/*.js \
../core/input/*.js
./xgettext-html --output=noVNC.html.pot \
../vnc.html
msgcat --output-file=noVNC.pot \
--sort-by-file noVNC.js.pot noVNC.html.pot
rm -f noVNC.js.pot noVNC.html.pot
+58
View File
@@ -0,0 +1,58 @@
# German translations for noVNC package
# German translation for noVNC.
# Copyright (C) 2016 Various Authors
# This file is distributed under the same license as the noVNC package.
# Loek Janssen <loekjanssen@gmail.com>, 2016.
#
msgid ""
msgstr ""
"Project-Id-Version: noVNC 0.6.1\n"
"Report-Msgid-Bugs-To: novnc@googlegroups.com\n"
"POT-Creation-Date: 2016-11-15 08:11+0100\n"
"PO-Revision-Date: 2016-11-15 07:51+0100\n"
"Last-Translator: Loek Janssen <loekjanssen@gmail.com>\n"
"Language-Team: none\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../app/ui.js:402
msgid "Connecting..."
msgstr "Verbunden..."
#: ../app/ui.js:409
msgid "Connected (encrypted) to "
msgstr "Verbunden mit (verschlüsselt) "
#: ../app/ui.js:411
msgid "Connected (unencrypted) to "
msgstr "Verbunden mit (unverschlüsselt) "
#: ../app/ui.js:416
msgid "Disconnecting..."
msgstr "Verbindung trennen..."
#: ../app/ui.js:421
msgid "Disconnected"
msgstr "Verbindung zum Server getrennt"
#: ../app/ui.js:1006 ../core/rfb.js:278
msgid "Must set host and port"
msgstr "Richten Sie Host und Port ein"
#: ../app/ui.js:1059
msgid "Password is required"
msgstr "Passwort ist erforderlich"
#: ../app/ui.js:1272
msgid ""
"Forcing clipping mode since scrollbars aren't supported by IE in fullscreen"
msgstr ""
"'Clipping-Modus' aktiviert, Scrollbalken in 'IE-Vollbildmodus' werden nicht "
"unterstützt"
#: ../core/rfb.js:556
msgid "Disconnect timeout"
msgstr "Timeout beim trennen"
+293
View File
@@ -0,0 +1,293 @@
# Greek translations for noVNC package.
# Copyright (C) 2016 Various Authors
# This file is distributed under the same license as the noVNC package.
# Giannis Kosmas <kosmasgiannis@gmail.com>, 2016.
#
msgid ""
msgstr ""
"Project-Id-Version: noVNC 0.6.1\n"
"Report-Msgid-Bugs-To: novnc@googlegroups.com\n"
"POT-Creation-Date: 2016-11-24 08:53+0200\n"
"PO-Revision-Date: 2016-11-15 07:51+0100\n"
"Last-Translator: Giannis Kosmas <kosmasgiannis@gmail.com>\n"
"Language-Team: none\n"
"Language: el\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../app/ui.js:405
msgid "Connecting..."
msgstr "Συνδέεται..."
#: ../app/ui.js:412
msgid "Connected (encrypted) to "
msgstr "Συνδέθηκε (κρυπτογραφημένα) με το "
#: ../app/ui.js:414
msgid "Connected (unencrypted) to "
msgstr "Συνδέθηκε (μη κρυπτογραφημένα) με το "
#: ../app/ui.js:419
msgid "Disconnecting..."
msgstr "Aποσυνδέεται..."
#: ../app/ui.js:424
msgid "Disconnected"
msgstr "Αποσυνδέθηκε"
#: ../app/ui.js:1009 ../core/rfb.js:278
msgid "Must set host and port"
msgstr "Πρέπει να οριστεί το όνομα και η πόρτα του διακομιστή"
#: ../app/ui.js:1062
msgid "Password is required"
msgstr "Απαιτείται ο κωδικός πρόσβασης"
#: ../app/ui.js:1275
msgid ""
"Forcing clipping mode since scrollbars aren't supported by IE in fullscreen"
msgstr ""
"Εφαρμογή λειτουργίας αποκοπής αφού δεν υποστηρίζονται οι λωρίδες κύλισης σε "
"πλήρη οθόνη στον IE"
#: ../core/rfb.js:556
msgid "Disconnect timeout"
msgstr "Παρέλευση χρονικού ορίου αποσύνδεσης"
#: ../vnc.html:70
msgid "noVNC encountered an error:"
msgstr "το noVNC αντιμετώπισε ένα σφάλμα:"
#: ../vnc.html:78
msgid "Hide/Show the control bar"
msgstr "Απόκρυψη/Εμφάνιση γραμμής ελέγχου"
#: ../vnc.html:85
msgid "Move/Drag Viewport"
msgstr "Μετακίνηση/Σύρσιμο Θεατού πεδίου"
#: ../vnc.html:85
msgid "viewport drag"
msgstr "σύρσιμο θεατού πεδίου"
#: ../vnc.html:91 ../vnc.html:94 ../vnc.html:97 ../vnc.html:100
msgid "Active Mouse Button"
msgstr "Ενεργό Πλήκτρο Ποντικιού"
#: ../vnc.html:91
msgid "No mousebutton"
msgstr "Χωρίς Πλήκτρο Ποντικιού"
#: ../vnc.html:94
msgid "Left mousebutton"
msgstr "Αριστερό Πλήκτρο Ποντικιού"
#: ../vnc.html:97
msgid "Middle mousebutton"
msgstr "Μεσαίο Πλήκτρο Ποντικιού"
#: ../vnc.html:100
msgid "Right mousebutton"
msgstr "Δεξί Πλήκτρο Ποντικιού"
#: ../vnc.html:103
msgid "Keyboard"
msgstr "Πληκτρολόγιο"
#: ../vnc.html:103
msgid "Show Keyboard"
msgstr "Εμφάνιση Πληκτρολογίου"
#: ../vnc.html:110
msgid "Extra keys"
msgstr "Επιπλέον πλήκτρα"
#: ../vnc.html:110
msgid "Show Extra Keys"
msgstr "Εμφάνιση Επιπλέον Πλήκτρων"
#: ../vnc.html:115
msgid "Ctrl"
msgstr "Ctrl"
#: ../vnc.html:115
msgid "Toggle Ctrl"
msgstr "Εναλλαγή Ctrl"
#: ../vnc.html:118
msgid "Alt"
msgstr "Alt"
#: ../vnc.html:118
msgid "Toggle Alt"
msgstr "Εναλλαγή Alt"
#: ../vnc.html:121
msgid "Send Tab"
msgstr "Αποστολή Tab"
#: ../vnc.html:121
msgid "Tab"
msgstr "Tab"
#: ../vnc.html:124
msgid "Esc"
msgstr "Esc"
#: ../vnc.html:124
msgid "Send Escape"
msgstr "Αποστολή Escape"
#: ../vnc.html:127
msgid "Ctrl+Alt+Del"
msgstr "Ctrl+Alt+Del"
#: ../vnc.html:127
msgid "Send Ctrl-Alt-Del"
msgstr "Αποστολή Ctrl-Alt-Del"
#: ../vnc.html:135
msgid "Shutdown/Reboot"
msgstr "Κλείσιμο/Επανεκκίνηση"
#: ../vnc.html:135
msgid "Shutdown/Reboot..."
msgstr "Κλείσιμο/Επανεκκίνηση..."
#: ../vnc.html:141
msgid "Power"
msgstr "Απενεργοποίηση"
#: ../vnc.html:143
msgid "Shutdown"
msgstr "Κλείσιμο"
#: ../vnc.html:144
msgid "Reboot"
msgstr "Επανεκκίνηση"
#: ../vnc.html:145
msgid "Reset"
msgstr "Επαναφορά"
#: ../vnc.html:150 ../vnc.html:156
msgid "Clipboard"
msgstr "Πρόχειρο"
#: ../vnc.html:160
msgid "Clear"
msgstr "Καθάρισμα"
#: ../vnc.html:166
msgid "Fullscreen"
msgstr "Πλήρης Οθόνη"
#: ../vnc.html:171 ../vnc.html:178
msgid "Settings"
msgstr "Ρυθμίσεις"
#: ../vnc.html:181
msgid "Encrypt"
msgstr "Κρυπτογράφηση"
#: ../vnc.html:184
msgid "True Color"
msgstr "Πραγματικά Χρώματα"
#: ../vnc.html:187
msgid "Local Cursor"
msgstr "Τοπικός Δρομέας"
#: ../vnc.html:190
msgid "Clip to Window"
msgstr "Αποκοπή στο όριο του Παράθυρου"
#: ../vnc.html:193
msgid "Shared Mode"
msgstr "Κοινόχρηστη Λειτουργία"
#: ../vnc.html:196
msgid "View Only"
msgstr "Μόνο Θέαση"
#: ../vnc.html:200
msgid "Path:"
msgstr "Διαδρομή:"
#: ../vnc.html:204
msgid "Scaling Mode:"
msgstr "Λειτουργία Κλιμάκωσης:"
#: ../vnc.html:206
msgid "None"
msgstr "Καμία"
#: ../vnc.html:207
msgid "Local Scaling"
msgstr "Τοπική Κλιμάκωση"
#: ../vnc.html:208
msgid "Local Downscaling"
msgstr "Τοπική Συρρίκνωση"
#: ../vnc.html:209
msgid "Remote Resizing"
msgstr "Απομακρυσμένη Αλλαγή μεγέθους"
#: ../vnc.html:213
msgid "Repeater ID:"
msgstr "Repeater ID:"
#: ../vnc.html:219
msgid "Style:"
msgstr "Στυλ:"
#: ../vnc.html:221
msgid "default"
msgstr "προεπιλεγμένο"
#: ../vnc.html:227
msgid "Logging:"
msgstr "Καταγραφή:"
#: ../vnc.html:234
msgid "Apply"
msgstr "Εφαρμογή"
#: ../vnc.html:241 ../vnc.html:271
msgid "Connect"
msgstr "Σύνδεση"
#: ../vnc.html:244
msgid "Disconnect"
msgstr "Αποσύνδεση"
#: ../vnc.html:251
msgid "Connection"
msgstr "Σύνδεση"
#: ../vnc.html:254
msgid "Host:"
msgstr "Όνομα διακομιστή:"
#: ../vnc.html:258
msgid "Port:"
msgstr "Πόρτα διακομιστή:"
#: ../vnc.html:262 ../vnc.html:290
msgid "Password:"
msgstr "Κωδικός Πρόσβασης:"
#: ../vnc.html:266
msgid "Token:"
msgstr "Διακριτικό:"
#: ../vnc.html:294
msgid "Send Password"
msgstr "Αποστολή Κωδικού Πρόσβασης"
#: ../vnc.html:319
msgid "Canvas not supported."
msgstr "Δεν υποστηρίζεται το στοιχείο Canvas"
+58
View File
@@ -0,0 +1,58 @@
# Dutch translations for noVNC package
# Nederlandse vertalingen voor het pakket noVNC.
# Copyright (C) 2016 Various Authors
# This file is distributed under the same license as the noVNC package.
# Loek Janssen <loekjanssen@gmail.com>, 2016.
#
msgid ""
msgstr ""
"Project-Id-Version: noVNC 0.6.1\n"
"Report-Msgid-Bugs-To: novnc@googlegroups.com\n"
"POT-Creation-Date: 2016-11-15 08:11+0100\n"
"PO-Revision-Date: 2016-11-15 07:51+0100\n"
"Last-Translator: Loek Janssen <loekjanssen@gmail.com>\n"
"Language-Team: none\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../app/ui.js:402
msgid "Connecting..."
msgstr "Verbinden..."
#: ../app/ui.js:409
msgid "Connected (encrypted) to "
msgstr "Verbonden (versleuteld) met "
#: ../app/ui.js:411
msgid "Connected (unencrypted) to "
msgstr "Verbonden (onversleuteld) met "
#: ../app/ui.js:416
msgid "Disconnecting..."
msgstr "Verbinding verbreken..."
#: ../app/ui.js:421
msgid "Disconnected"
msgstr "Verbinding verbroken"
#: ../app/ui.js:1006 ../core/rfb.js:278
msgid "Must set host and port"
msgstr "Host en poort moeten worden ingesteld"
#: ../app/ui.js:1059
msgid "Password is required"
msgstr "Wachtwoord is vereist"
#: ../app/ui.js:1272
msgid ""
"Forcing clipping mode since scrollbars aren't supported by IE in fullscreen"
msgstr ""
"''Clipping mode' ingeschakeld, omdat schuifbalken in volledige-scherm-modus "
"in IE niet worden ondersteund"
#: ../core/rfb.js:556
msgid "Disconnect timeout"
msgstr "Timeout tijdens verbreken van verbinding"
+291
View File
@@ -0,0 +1,291 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Various Authors
# This file is distributed under the same license as the noVNC package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: noVNC 0.6.1\n"
"Report-Msgid-Bugs-To: novnc@googlegroups.com\n"
"POT-Creation-Date: 2016-11-15 19:32+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../app/ui.js:405
msgid "Connecting..."
msgstr ""
#: ../app/ui.js:412
msgid "Connected (encrypted) to "
msgstr ""
#: ../app/ui.js:414
msgid "Connected (unencrypted) to "
msgstr ""
#: ../app/ui.js:419
msgid "Disconnecting..."
msgstr ""
#: ../app/ui.js:424
msgid "Disconnected"
msgstr ""
#: ../app/ui.js:1009 ../core/rfb.js:278
msgid "Must set host and port"
msgstr ""
#: ../app/ui.js:1062
msgid "Password is required"
msgstr ""
#: ../app/ui.js:1275
msgid ""
"Forcing clipping mode since scrollbars aren't supported by IE in fullscreen"
msgstr ""
#: ../core/rfb.js:556
msgid "Disconnect timeout"
msgstr ""
#: ../vnc.html:70
msgid "noVNC encountered an error:"
msgstr ""
#: ../vnc.html:78
msgid "Hide/Show the control bar"
msgstr ""
#: ../vnc.html:85
msgid "Move/Drag Viewport"
msgstr ""
#: ../vnc.html:85
msgid "viewport drag"
msgstr ""
#: ../vnc.html:91 ../vnc.html:94 ../vnc.html:97 ../vnc.html:100
msgid "Active Mouse Button"
msgstr ""
#: ../vnc.html:91
msgid "No mousebutton"
msgstr ""
#: ../vnc.html:94
msgid "Left mousebutton"
msgstr ""
#: ../vnc.html:97
msgid "Middle mousebutton"
msgstr ""
#: ../vnc.html:100
msgid "Right mousebutton"
msgstr ""
#: ../vnc.html:103
msgid "Keyboard"
msgstr ""
#: ../vnc.html:103
msgid "Show Keyboard"
msgstr ""
#: ../vnc.html:110
msgid "Extra keys"
msgstr ""
#: ../vnc.html:110
msgid "Show Extra Keys"
msgstr ""
#: ../vnc.html:115
msgid "Ctrl"
msgstr ""
#: ../vnc.html:115
msgid "Toggle Ctrl"
msgstr ""
#: ../vnc.html:118
msgid "Alt"
msgstr ""
#: ../vnc.html:118
msgid "Toggle Alt"
msgstr ""
#: ../vnc.html:121
msgid "Send Tab"
msgstr ""
#: ../vnc.html:121
msgid "Tab"
msgstr ""
#: ../vnc.html:124
msgid "Esc"
msgstr ""
#: ../vnc.html:124
msgid "Send Escape"
msgstr ""
#: ../vnc.html:127
msgid "Ctrl+Alt+Del"
msgstr ""
#: ../vnc.html:127
msgid "Send Ctrl-Alt-Del"
msgstr ""
#: ../vnc.html:135
msgid "Shutdown/Reboot"
msgstr ""
#: ../vnc.html:135
msgid "Shutdown/Reboot..."
msgstr ""
#: ../vnc.html:141
msgid "Power"
msgstr ""
#: ../vnc.html:143
msgid "Shutdown"
msgstr ""
#: ../vnc.html:144
msgid "Reboot"
msgstr ""
#: ../vnc.html:145
msgid "Reset"
msgstr ""
#: ../vnc.html:150 ../vnc.html:156
msgid "Clipboard"
msgstr ""
#: ../vnc.html:160
msgid "Clear"
msgstr ""
#: ../vnc.html:166
msgid "Fullscreen"
msgstr ""
#: ../vnc.html:171 ../vnc.html:178
msgid "Settings"
msgstr ""
#: ../vnc.html:181
msgid "Encrypt"
msgstr ""
#: ../vnc.html:184
msgid "True Color"
msgstr ""
#: ../vnc.html:187
msgid "Local Cursor"
msgstr ""
#: ../vnc.html:190
msgid "Clip to Window"
msgstr ""
#: ../vnc.html:193
msgid "Shared Mode"
msgstr ""
#: ../vnc.html:196
msgid "View Only"
msgstr ""
#: ../vnc.html:200
msgid "Path:"
msgstr ""
#: ../vnc.html:204
msgid "Scaling Mode:"
msgstr ""
#: ../vnc.html:206
msgid "None"
msgstr ""
#: ../vnc.html:207
msgid "Local Scaling"
msgstr ""
#: ../vnc.html:208
msgid "Local Downscaling"
msgstr ""
#: ../vnc.html:209
msgid "Remote Resizing"
msgstr ""
#: ../vnc.html:213
msgid "Repeater ID:"
msgstr ""
#: ../vnc.html:219
msgid "Style:"
msgstr ""
#: ../vnc.html:221
msgid "default"
msgstr ""
#: ../vnc.html:227
msgid "Logging:"
msgstr ""
#: ../vnc.html:234
msgid "Apply"
msgstr ""
#: ../vnc.html:241 ../vnc.html:271
msgid "Connect"
msgstr ""
#: ../vnc.html:244
msgid "Disconnect"
msgstr ""
#: ../vnc.html:251
msgid "Connection"
msgstr ""
#: ../vnc.html:254
msgid "Host:"
msgstr ""
#: ../vnc.html:258
msgid "Port:"
msgstr ""
#: ../vnc.html:262 ../vnc.html:290
msgid "Password:"
msgstr ""
#: ../vnc.html:266
msgid "Token:"
msgstr ""
#: ../vnc.html:294
msgid "Send Password"
msgstr ""
#: ../vnc.html:319
msgid "Canvas not supported."
msgstr ""
+56
View File
@@ -0,0 +1,56 @@
#!/usr/bin/env node
/*
* ps2js: gettext .po to noVNC .js converter
* Copyright (C) 2016 Pierre Ossman
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
var getopt = require('node-getopt');
var fs = require('fs');
var po2json = require("po2json");
opt = getopt.create([
['h' , 'help' , 'display this help'],
]).bindHelp().parseSystem();
if (opt.argv.length != 2) {
console.error("Incorrect number of arguments given");
process.exit(1);
}
var data = po2json.parseFileSync(opt.argv[0]);
var output =
"/*\n" +
" * Translations for " + data[""]["language"] + "\n" +
" *\n" +
" * This file was autotomatically generated from " + opt.argv[0] + "\n" +
" * DO NOT EDIT!\n" +
" */\n" +
"\n" +
"Language = {\n";
for (msgid in data) {
if (msgid === "")
continue;
msgstr = data[msgid][1];
output += " " + JSON.stringify(msgid) + ": " +
JSON.stringify(msgstr) + ",\n";
}
output += "};\n";
fs.writeFileSync(opt.argv[1], output);
+293
View File
@@ -0,0 +1,293 @@
# Swedish translations for noVNC package
# Svenska översättningar för paket noVNC.
# Copyright (C) 2016 Various Authors
# This file is distributed under the same license as the noVNC package.
# Samuel Mannehed <samuel@cendio.se>, 2016.
#
msgid ""
msgstr ""
"Project-Id-Version: noVNC 0.6.1\n"
"Report-Msgid-Bugs-To: novnc@googlegroups.com\n"
"POT-Creation-Date: 2016-11-15 19:32+0100\n"
"PO-Revision-Date: 2016-11-15 07:51+0100\n"
"Last-Translator: Pierre Ossman <pierre@ossman.eu>\n"
"Language-Team: none\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../app/ui.js:405
msgid "Connecting..."
msgstr "Ansluter..."
#: ../app/ui.js:412
msgid "Connected (encrypted) to "
msgstr "Ansluten (krypterat) till "
#: ../app/ui.js:414
msgid "Connected (unencrypted) to "
msgstr "Ansluten (okrypterat) till "
#: ../app/ui.js:419
msgid "Disconnecting..."
msgstr "Kopplar ner..."
#: ../app/ui.js:424
msgid "Disconnected"
msgstr "Frånkopplad"
#: ../app/ui.js:1009 ../core/rfb.js:278
msgid "Must set host and port"
msgstr "Du måste specifiera en host och port"
#: ../app/ui.js:1062
msgid "Password is required"
msgstr "Lösenord krävs"
#: ../app/ui.js:1275
msgid ""
"Forcing clipping mode since scrollbars aren't supported by IE in fullscreen"
msgstr ""
"Tvingar 'Clipping mode' eftersom skrollning inte stödjs av IE i fullskärm"
#: ../core/rfb.js:556
msgid "Disconnect timeout"
msgstr "Det tog för lång tid att koppla ner"
#: ../vnc.html:70
msgid "noVNC encountered an error:"
msgstr "noVNC stötte på ett problem:"
#: ../vnc.html:78
msgid "Hide/Show the control bar"
msgstr "Göm/Visa kontrollbaren"
#: ../vnc.html:85
msgid "Move/Drag Viewport"
msgstr "Flytta/Dra Vyn"
#: ../vnc.html:85
msgid "viewport drag"
msgstr "dra vy"
#: ../vnc.html:91 ../vnc.html:94 ../vnc.html:97 ../vnc.html:100
msgid "Active Mouse Button"
msgstr "Aktiv musknapp"
#: ../vnc.html:91
msgid "No mousebutton"
msgstr "Ingen musknapp"
#: ../vnc.html:94
msgid "Left mousebutton"
msgstr "Vänster musknapp"
#: ../vnc.html:97
msgid "Middle mousebutton"
msgstr "Mitten-musknapp"
#: ../vnc.html:100
msgid "Right mousebutton"
msgstr "Höger musknapp"
#: ../vnc.html:103
msgid "Keyboard"
msgstr "Tangentbord"
#: ../vnc.html:103
msgid "Show Keyboard"
msgstr "Visa Tangentbord"
#: ../vnc.html:110
msgid "Extra keys"
msgstr "Extraknappar"
#: ../vnc.html:110
msgid "Show Extra Keys"
msgstr "Visa Extraknappar"
#: ../vnc.html:115
msgid "Ctrl"
msgstr "Ctrl"
#: ../vnc.html:115
msgid "Toggle Ctrl"
msgstr "Växla Ctrl"
#: ../vnc.html:118
msgid "Alt"
msgstr "Alt"
#: ../vnc.html:118
msgid "Toggle Alt"
msgstr "Växla Alt"
#: ../vnc.html:121
msgid "Send Tab"
msgstr "Skicka Tab"
#: ../vnc.html:121
msgid "Tab"
msgstr "Tab"
#: ../vnc.html:124
msgid "Esc"
msgstr "Esc"
#: ../vnc.html:124
msgid "Send Escape"
msgstr "Skicka Escape"
#: ../vnc.html:127
msgid "Ctrl+Alt+Del"
msgstr "Ctrl+Alt+Del"
#: ../vnc.html:127
msgid "Send Ctrl-Alt-Del"
msgstr "Skicka Ctrl-Alt-Del"
#: ../vnc.html:135
msgid "Shutdown/Reboot"
msgstr "Stäng av/Boota om"
#: ../vnc.html:135
msgid "Shutdown/Reboot..."
msgstr "Stäng av/Boota om..."
#: ../vnc.html:141
msgid "Power"
msgstr "Ström"
#: ../vnc.html:143
msgid "Shutdown"
msgstr "Stäng av"
#: ../vnc.html:144
msgid "Reboot"
msgstr "Boota om"
#: ../vnc.html:145
msgid "Reset"
msgstr "Återställ"
#: ../vnc.html:150 ../vnc.html:156
msgid "Clipboard"
msgstr "Urklipp"
#: ../vnc.html:160
msgid "Clear"
msgstr "Rensa"
#: ../vnc.html:166
msgid "Fullscreen"
msgstr "Fullskärm"
#: ../vnc.html:171 ../vnc.html:178
msgid "Settings"
msgstr "Inställningar"
#: ../vnc.html:181
msgid "Encrypt"
msgstr "Kryptera"
#: ../vnc.html:184
msgid "True Color"
msgstr "Fullfärg"
#: ../vnc.html:187
msgid "Local Cursor"
msgstr "Lokal Muspekare"
#: ../vnc.html:190
msgid "Clip to Window"
msgstr "Begränsa till Fönster"
#: ../vnc.html:193
msgid "Shared Mode"
msgstr "Delat Läge"
#: ../vnc.html:196
msgid "View Only"
msgstr "Endast Visning"
#: ../vnc.html:200
msgid "Path:"
msgstr "Sökväg:"
#: ../vnc.html:204
msgid "Scaling Mode:"
msgstr "Skalningsläge:"
#: ../vnc.html:206
msgid "None"
msgstr "Ingen"
#: ../vnc.html:207
msgid "Local Scaling"
msgstr "Lokal Skalning"
#: ../vnc.html:208
msgid "Local Downscaling"
msgstr "Lokal Nedskalning"
#: ../vnc.html:209
msgid "Remote Resizing"
msgstr "Ändra Storlek"
#: ../vnc.html:213
msgid "Repeater ID:"
msgstr "Repeater-ID:"
#: ../vnc.html:219
msgid "Style:"
msgstr "Stil:"
#: ../vnc.html:221
msgid "default"
msgstr "standard"
#: ../vnc.html:227
msgid "Logging:"
msgstr "Loggning:"
#: ../vnc.html:234
msgid "Apply"
msgstr "Verkställ"
#: ../vnc.html:241 ../vnc.html:271
msgid "Connect"
msgstr "Anslut"
#: ../vnc.html:244
msgid "Disconnect"
msgstr "Koppla från"
#: ../vnc.html:251
msgid "Connection"
msgstr "Uppkoppling"
#: ../vnc.html:254
msgid "Host:"
msgstr "Värd:"
#: ../vnc.html:258
msgid "Port:"
msgstr "Port:"
#: ../vnc.html:262 ../vnc.html:290
msgid "Password:"
msgstr "Lösenord:"
#: ../vnc.html:266
msgid "Token:"
msgstr "Token:"
#: ../vnc.html:294
msgid "Send Password"
msgstr "Skicka Lösenord"
#: ../vnc.html:319
msgid "Canvas not supported."
msgstr "Canvas stöds ej"
+117
View File
@@ -0,0 +1,117 @@
#!/usr/bin/env node
/*
* xgettext-html: HTML gettext parser
* Copyright (C) 2016 Pierre Ossman
* Licensed under MPL 2.0 (see LICENSE.txt)
*/
var getopt = require('node-getopt');
var jsdom = require("jsdom");
var fs = require("fs");
opt = getopt.create([
['o' , 'output=FILE' , 'write output to specified file'],
['h' , 'help' , 'display this help'],
]).bindHelp().parseSystem();
var strings = {};
function addString(str, location) {
if (str.length == 0) {
return;
}
if (strings[str] === undefined) {
strings[str] = {}
}
strings[str][location] = null;
}
// See https://html.spec.whatwg.org/multipage/dom.html#attr-translate
function process(elem, locator, enabled) {
function isAnyOf(searchElement, items) {
return items.indexOf(searchElement) !== -1;
}
if (elem.hasAttribute("translate")) {
if (isAnyOf(elem.getAttribute("translate"), ["", "yes"])) {
enabled = true;
} else if (isAnyOf(elem.getAttribute("translate"), ["no"])) {
enabled = false;
}
}
if (enabled) {
if (elem.hasAttribute("abbr") &&
elem.tagName === "TH") {
addString(elem.getAttribute("abbr"), locator(elem));
}
if (elem.hasAttribute("alt") &&
isAnyOf(elem.tagName, ["AREA", "IMG", "INPUT"])) {
addString(elem.getAttribute("alt"), locator(elem));
}
if (elem.hasAttribute("download") &&
isAnyOf(elem.tagName, ["A", "AREA"])) {
addString(elem.getAttribute("download"), locator(elem));
}
if (elem.hasAttribute("label") &&
isAnyOf(elem.tagName, ["MENUITEM", "MENU", "OPTGROUP",
"OPTION", "TRACK"])) {
addString(elem.getAttribute("label"), locator(elem));
}
if (elem.hasAttribute("placeholder") &&
isAnyOf(elem.tagName in ["INPUT", "TEXTAREA"])) {
addString(elem.getAttribute("placeholder"), locator(elem));
}
if (elem.hasAttribute("title")) {
addString(elem.getAttribute("title"), locator(elem));
}
if (elem.hasAttribute("value") &&
elem.tagName === "INPUT" &&
isAnyOf(elem.getAttribute("type"), ["reset", "button"])) {
addString(elem.getAttribute("value"), locator(elem));
}
}
for (var i = 0;i < elem.childNodes.length;i++) {
node = elem.childNodes[i];
if (node.nodeType === node.ELEMENT_NODE) {
process(node, locator, enabled);
} else if (node.nodeType === node.TEXT_NODE && enabled) {
addString(node.data.trim(), locator(node));
}
}
}
for (var i = 0;i < opt.argv.length;i++) {
var file;
fn = opt.argv[i];
file = fs.readFileSync(fn, "utf8");
doc = jsdom.jsdom(file);
locator = function (elem) {
offset = jsdom.nodeLocation(elem).start;
line = file.slice(0, offset).split("\n").length;
return fn + ":" + line;
};
process(doc.body, locator, true);
}
var output = "";
for (str in strings) {
output += "#:";
for (location in strings[str]) {
output += " " + location;
}
output += "\n";
output += "msgid " + JSON.stringify(str) + "\n";
output += "msgstr \"\"\n";
output += "\n";
}
fs.writeFileSync(opt.options.output, output);