From 3cdc603aa45850af1e9c25a5a6f28becc6196d2c Mon Sep 17 00:00:00 2001 From: Pierre Ossman Date: Mon, 14 Nov 2016 22:00:21 +0100 Subject: Use gettext .po files for translations This allows the same workflow as most other projects for translations. --- po/Makefile | 29 +++++++++++++++++++++++++++++ po/de.po | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ po/el.po | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ po/nl.po | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ po/noVNC.pot | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ po/po2js | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ po/sv.po | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 370 insertions(+) create mode 100644 po/Makefile create mode 100644 po/de.po create mode 100644 po/el.po create mode 100644 po/nl.po create mode 100644 po/noVNC.pot create mode 100755 po/po2js create mode 100644 po/sv.po (limited to 'po') diff --git a/po/Makefile b/po/Makefile new file mode 100644 index 0000000..d09d164 --- /dev/null +++ b/po/Makefile @@ -0,0 +1,29 @@ +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.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 diff --git a/po/de.po b/po/de.po new file mode 100644 index 0000000..5f15d57 --- /dev/null +++ b/po/de.po @@ -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 , 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 \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" diff --git a/po/el.po b/po/el.po new file mode 100644 index 0000000..5dfb36b --- /dev/null +++ b/po/el.po @@ -0,0 +1,57 @@ +# Greek translations for noVNC package. +# Copyright (C) 2016 Various Authors +# This file is distributed under the same license as the noVNC package. +# Giannis Kosmas , 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: Giannis Kosmas \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:402 +msgid "Connecting..." +msgstr "Συνδέεται..." + +#: ../app/ui.js:409 +msgid "Connected (encrypted) to " +msgstr "Συνδέθηκε (κρυπτογραφημένα) με το " + +#: ../app/ui.js:411 +msgid "Connected (unencrypted) to " +msgstr "Συνδέθηκε (μη κρυπτογραφημένα) με το " + +#: ../app/ui.js:416 +msgid "Disconnecting..." +msgstr "Aποσυνδέεται..." + +#: ../app/ui.js:421 +msgid "Disconnected" +msgstr "Αποσυνδέθηκε" + +#: ../app/ui.js:1006 ../core/rfb.js:278 +msgid "Must set host and port" +msgstr "Πρέπει να οριστεί το όνομα και η πόρτα του διακομιστή" + +#: ../app/ui.js:1059 +msgid "Password is required" +msgstr "Απαιτείται ο κωδικός" + +#: ../app/ui.js:1272 +msgid "" +"Forcing clipping mode since scrollbars aren't supported by IE in fullscreen" +msgstr "" +"Εφαρμογή λειτουργίας αποκοπής αφού δεν υποστηρίζονται οι λωρίδες κύλισης σε " +"πλήρη οθόνη στον IE" + +#: ../core/rfb.js:556 +msgid "Disconnect timeout" +msgstr "Παρέλευση χρονικού ορίου αποσύνδεσης" diff --git a/po/nl.po b/po/nl.po new file mode 100644 index 0000000..8a0bf74 --- /dev/null +++ b/po/nl.po @@ -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 , 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 \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" diff --git a/po/noVNC.pot b/po/noVNC.pot new file mode 100644 index 0000000..ec6f960 --- /dev/null +++ b/po/noVNC.pot @@ -0,0 +1,55 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Various Authors +# This file is distributed under the same license as the noVNC package. +# FIRST AUTHOR , 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 08:11+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../app/ui.js:402 +msgid "Connecting..." +msgstr "" + +#: ../app/ui.js:409 +msgid "Connected (encrypted) to " +msgstr "" + +#: ../app/ui.js:411 +msgid "Connected (unencrypted) to " +msgstr "" + +#: ../app/ui.js:416 +msgid "Disconnecting..." +msgstr "" + +#: ../app/ui.js:421 +msgid "Disconnected" +msgstr "" + +#: ../app/ui.js:1006 ../core/rfb.js:278 +msgid "Must set host and port" +msgstr "" + +#: ../app/ui.js:1059 +msgid "Password is required" +msgstr "" + +#: ../app/ui.js:1272 +msgid "" +"Forcing clipping mode since scrollbars aren't supported by IE in fullscreen" +msgstr "" + +#: ../core/rfb.js:556 +msgid "Disconnect timeout" +msgstr "" diff --git a/po/po2js b/po/po2js new file mode 100755 index 0000000..972f0b2 --- /dev/null +++ b/po/po2js @@ -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 . + */ + +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); diff --git a/po/sv.po b/po/sv.po new file mode 100644 index 0000000..d42b43e --- /dev/null +++ b/po/sv.po @@ -0,0 +1,57 @@ +# 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 , 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: Samuel Mannehed \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:402 +msgid "Connecting..." +msgstr "Ansluter..." + +#: ../app/ui.js:409 +msgid "Connected (encrypted) to " +msgstr "Ansluten (krypterat) till " + +#: ../app/ui.js:411 +msgid "Connected (unencrypted) to " +msgstr "Ansluten (okrypterat) till " + +#: ../app/ui.js:416 +msgid "Disconnecting..." +msgstr "Kopplar ner..." + +#: ../app/ui.js:421 +msgid "Disconnected" +msgstr "Frånkopplad" + +#: ../app/ui.js:1006 ../core/rfb.js:278 +msgid "Must set host and port" +msgstr "Du måste specifiera en host och port" + +#: ../app/ui.js:1059 +msgid "Password is required" +msgstr "Lösenord krävs" + +#: ../app/ui.js:1272 +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" -- cgit v1.2.1