Merge pull request #62 from enotodden/master

Add new norwegian strings and  fix unicode issues.
This commit is contained in:
Micah Lee 2014-06-26 16:05:21 -07:00
commit 126200c9c1
3 changed files with 26 additions and 13 deletions

View File

@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import os, sys, subprocess, time, hashlib, platform, json, locale, socket, argparse, Queue, inspect, base64 import os, sys, subprocess, time, hashlib, platform, json, locale, socket, argparse, Queue, inspect, base64
from random import randint from random import randint
from functools import wraps from functools import wraps
@ -152,12 +153,12 @@ def is_root():
def tails_open_port(port): def tails_open_port(port):
if get_platform() == 'Tails': if get_platform() == 'Tails':
print strings["punching_a_hole"] print translated("punching_a_hole")
subprocess.call(['/sbin/iptables', '-I', 'OUTPUT', '-o', 'lo', '-p', 'tcp', '--dport', str(port), '-j', 'ACCEPT']) subprocess.call(['/sbin/iptables', '-I', 'OUTPUT', '-o', 'lo', '-p', 'tcp', '--dport', str(port), '-j', 'ACCEPT'])
def tails_close_port(port): def tails_close_port(port):
if get_platform() == 'Tails': if get_platform() == 'Tails':
print strings["closing_hole"] print translated("closing_hole")
subprocess.call(['/sbin/iptables', '-I', 'OUTPUT', '-o', 'lo', '-p', 'tcp', '--dport', str(port), '-j', 'REJECT']) subprocess.call(['/sbin/iptables', '-I', 'OUTPUT', '-o', 'lo', '-p', 'tcp', '--dport', str(port), '-j', 'REJECT'])
def load_strings(default="en"): def load_strings(default="en"):
@ -177,6 +178,9 @@ def load_strings(default="en"):
strings[key] = translated[lang][key] strings[key] = translated[lang][key]
return strings return strings
def translated(k):
return strings[k].encode("utf-8")
def file_crunching(filename): def file_crunching(filename):
# calculate filehash, file size # calculate filehash, file size
BLOCKSIZE = 65536 BLOCKSIZE = 65536
@ -219,7 +223,7 @@ def start_hidden_service(port):
except SocketError: except SocketError:
pass pass
if not controller: if not controller:
raise NoTor(strings["cant_connect_ctrlport"].format(controlports)) raise NoTor(translated("cant_connect_ctrlport").format(controlports))
controller.authenticate() controller.authenticate()
# set up hidden service # set up hidden service
@ -239,7 +243,7 @@ def main():
# check for root in Tails # check for root in Tails
if get_platform() == 'Tails' and not is_root(): if get_platform() == 'Tails' and not is_root():
sys.exit(strings["tails_requires_root"]) sys.exit(translated("tails_requires_root"))
# parse arguments # parse arguments
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
@ -255,7 +259,7 @@ def main():
stay_open = args.stay_open stay_open = args.stay_open
if not (filename and os.path.isfile(filename)): if not (filename and os.path.isfile(filename)):
sys.exit(strings["not_a_file"].format(filename)) sys.exit(translated("not_a_file").format(filename))
filename = os.path.abspath(filename) filename = os.path.abspath(filename)
port = choose_port() port = choose_port()
@ -263,24 +267,24 @@ def main():
if not local_only: if not local_only:
# try starting hidden service # try starting hidden service
print strings["connecting_ctrlport"].format(port) print translated("connecting_ctrlport").format(port)
try: try:
onion_host = start_hidden_service(port) onion_host = start_hidden_service(port)
except NoTor as e: except NoTor as e:
sys.exit(e.args[0]) sys.exit(e.args[0])
# startup # startup
print strings["calculating_sha1"] print translated("calculating_sha1")
filehash, filesize = file_crunching(filename) filehash, filesize = file_crunching(filename)
set_file_info(filename, filehash, filesize) set_file_info(filename, filehash, filesize)
tails_open_port(port) tails_open_port(port)
print '\n' + strings["give_this_url"] print '\n' + translated("give_this_url")
if local_only: if local_only:
print 'http://{0}/{1}'.format(local_host, slug) print 'http://{0}/{1}'.format(local_host, slug)
else: else:
print 'http://{0}/{1}'.format(onion_host, slug) print 'http://{0}/{1}'.format(onion_host, slug)
print '' print ''
print strings["ctrlc_to_stop"] print translated("ctrlc_to_stop")
# start the web server # start the web server
app.run(port=port) app.run(port=port)

View File

@ -28,7 +28,16 @@
"ctrlc_to_stop": "Trykk Ctrl+C for å stoppe serveren.", "ctrlc_to_stop": "Trykk Ctrl+C for å stoppe serveren.",
"not_a_file": "{0} er ikke en fil.", "not_a_file": "{0} er ikke en fil.",
"filesize": "Filstørrelse", "filesize": "Filstørrelse",
"sha1_checksum": "SHA1 sjekksum" "sha1_checksum": "SHA1 sjekksum",
"copied_url": "Kopierte URL-en til utklippstavlen",
"download_page_loaded": "Nedlastingsside lastet",
"download_started": "Nedlasting startet",
"download_finished": "Nedlasting fullført",
"other_page_loaded": "En annen side har blitt lastet",
"tails_requires_root": "OnionShare kan må kjøres som administrator i Tails",
"close_on_finish": "Lukk automatisk",
"close_countdown": "Lukker om {0} sekunder",
"choose_file": "Velg en fil å dele"
}, "es": { }, "es": {
"punching_a_hole": "Abriendo un agujero en el cortafuegos.", "punching_a_hole": "Abriendo un agujero en el cortafuegos.",
"closing_hole": "Cerrando el agujero en el cortafuegos.", "closing_hole": "Cerrando el agujero en el cortafuegos.",

View File

@ -13,7 +13,7 @@ try:
except ImportError: except ImportError:
sys.path.append(os.path.abspath(onionshare_gui_dir+"/..")) sys.path.append(os.path.abspath(onionshare_gui_dir+"/.."))
import onionshare import onionshare
from onionshare import translated
import webapp import webapp
window_icon = None window_icon = None
@ -61,7 +61,7 @@ def select_file(strings, filename=None):
if onionshare.get_platform() == 'Tails': if onionshare.get_platform() == 'Tails':
args['directory'] = '/home/amnesia' args['directory'] = '/home/amnesia'
filename = QFileDialog.getOpenFileName(caption=strings['choose_file'], options=QFileDialog.ReadOnly, **args) filename = QFileDialog.getOpenFileName(caption=translated('choose_file'), options=QFileDialog.ReadOnly, **args)
if not filename: if not filename:
return False, False return False, False
@ -69,7 +69,7 @@ def select_file(strings, filename=None):
# validate filename # validate filename
if not os.path.isfile(filename): if not os.path.isfile(filename):
alert(strings["not_a_file"].format(filename), QMessageBox.Warning) alert(translated("not_a_file").format(filename), QMessageBox.Warning)
return False, False return False, False
filename = os.path.abspath(filename) filename = os.path.abspath(filename)