Merge branch 'spring-clean' into 'master'

src: clean main directory

See merge request World/Authenticator!122
This commit is contained in:
Bilal Elmoussaoui 2019-02-11 21:51:13 +00:00
commit dd18c0d76a
79 changed files with 9591 additions and 7683 deletions

View file

@ -5,7 +5,7 @@ trim_trailing_whitespace = true
insert_final_newline = true
charset = utf-8
[*.py]
[*.{py,py.in}]
indent_size = 4
[*.build]

View file

@ -1,30 +1,24 @@
stages:
- flatpak
include: 'https://gitlab.gnome.org/GNOME/citemplates/raw/master/flatpak/flatpak_ci_initiative.yml'
variables:
BUNDLE: "authenticator-git.flatpak"
GIT_SUBMODULE_STRATEGY: normal
BUNDLE: "authenticator-dev.flatpak"
flatpak:
image: registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:master
stage: flatpak
image: 'registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:master'
variables:
MANIFEST_PATH: "build-aux/com.github.bilelmoussaoui.Authenticator.json"
RUNTIME_REPO: "https://sdk.gnome.org/gnome-nightly.flatpakrepo"
FLATPAK_MODULE: "Authenticator"
script:
- flatpak-builder --stop-at=${FLATPAK_MODULE} app ${MANIFEST_PATH}
- flatpak build app meson -Dprofile=development --prefix=/app ${MESON_ARGS} _build
- flatpak build app ninja -C _build install
- flatpak-builder --finish-only --repo=repo app ${MANIFEST_PATH}
- flatpak build-export repo app
- flatpak build-bundle repo ${BUNDLE} --runtime-repo=${RUNTIME_REPO} com.github.bilelmoussaoui.AuthenticatorDevel
artifacts:
paths:
- ${BUNDLE}
- _build/meson-logs/meson-log.txt
expire_in: 30 days
cache:
paths:
- .flatpak-builder/cache
MESON_ARGS: "-Dprofile=development"
RUNTIME_REPO: "https://sdk.gnome.org/gnome-nightly.flatpakrepo"
APP_ID: "com.github.bilelmoussaoui.AuthenticatorDevel"
extends: .flatpak
review:
stage: deploy
dependencies:
- 'flatpak'
extends: '.review'
stop_review:
stage: deploy
extends: '.stop_review'

3
.gitmodules vendored
View file

@ -1,3 +0,0 @@
[submodule "subprojects/libgd"]
path = subprojects/libgd
url = https://gitlab.gnome.org/GNOME/libgd.git

View file

@ -1,288 +0,0 @@
"""
Copyright © 2017 Bilal Elmoussaoui <bil.elmoussaoui@gmail.com>
This file is part of Authenticator.
Authenticator 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.
Authenticator 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 Authenticator. If not, see <http://www.gnu.org/licenses/>.
"""
import json
from gettext import gettext as _
from gi import require_version
require_version("Gtk", "3.0")
require_version('Gd', '1.0')
from gi.repository import Gd, Gio, Gtk, GObject, Gdk
from ..headerbar import HeaderBarButton
from ...models import OTP
from ...utils import load_pixbuf_from_provider
class AddAccountWindow(Gtk.Window):
"""Add Account Window."""
def __init__(self):
Gtk.Window.__init__(self)
self.set_position(Gtk.WindowPosition.CENTER_ON_PARENT)
self.set_size_request(400, 600)
self.resize(400, 600)
self._build_widgets()
self.connect('key_press_event', self._on_key_press)
def _build_widgets(self):
"""Create the Add Account widgets."""
# Header Bar
header_bar = Gtk.HeaderBar()
header_bar.set_show_close_button(False)
header_bar.set_title(_("Add a new account"))
self.set_titlebar(header_bar)
# Next btn
self.add_btn = Gtk.Button()
self.add_btn.set_label(_("Add"))
self.add_btn.connect("clicked", self._on_add)
self.add_btn.get_style_context().add_class("suggested-action")
self.add_btn.set_sensitive(False)
header_bar.pack_end(self.add_btn)
# QR code scan btn
self.scan_btn = HeaderBarButton("qrscanner-symbolic",
_("Scan QR code"))
self.scan_btn.connect("clicked", self._on_scan)
header_bar.pack_end(self.scan_btn)
# Back btn
self.close_btn = Gtk.Button()
self.close_btn.set_label(_("Close"))
self.close_btn.connect("clicked", self._on_quit)
header_bar.pack_start(self.close_btn)
self.account_config = AccountConfig()
self.account_config.connect("changed", self._on_account_config_changed)
self.add(self.account_config)
def _on_scan(self, *_):
"""
QR Scan button clicked signal handler.
"""
if self.account_config:
self.account_config.scan_qr()
def _on_account_config_changed(self, _, state):
"""Set the sensitivity of the AddButton depends on the AccountConfig."""
self.add_btn.set_sensitive(state)
def _on_quit(self, *_):
self.destroy()
def _on_add(self, *_):
from .list import AccountsWidget
from ...models import AccountsManager, Account
account_obj = self.account_config.account
account = Account.create(account_obj["username"], account_obj["provider"], account_obj["token"])
AccountsManager.get_default().add(account)
AccountsWidget.get_default().append(account)
self._on_quit()
def _on_key_press(self, _, event):
_, key_val = event.get_keyval()
modifiers = event.get_state()
if key_val == Gdk.KEY_Escape:
self._on_quit()
# CTRL + Q
if modifiers == Gdk.ModifierType.CONTROL_MASK | Gdk.ModifierType.MOD2_MASK:
if key_val == Gdk.KEY_q:
self._on_scan()
class AccountConfig(Gtk.Box, GObject.GObject):
__gsignals__ = {
'changed': (GObject.SignalFlags.RUN_LAST, None, (bool,)),
}
def __init__(self, **kwargs):
Gtk.Box.__init__(self, orientation=Gtk.Orientation.VERTICAL)
GObject.GObject.__init__(self)
self.is_edit = kwargs.get("edit", False)
self._account = kwargs.get("account", None)
self._providers_store = Gtk.ListStore(str, str)
self.logo_img = Gtk.Image()
self.username_entry = Gtk.Entry()
self.provider_combo = Gtk.ComboBox.new_with_model_and_entry(
self._providers_store)
self.token_entry = Gtk.Entry()
self._build_widgets()
self._fill_data()
@property
def account(self):
"""
Return an instance of Account for the new account.
"""
account = {
"username": self.username_entry.get_text(),
"provider": self.provider_combo.get_child().get_text()
}
if not self.is_edit:
# remove spaces
token = self.token_entry.get_text()
account["token"] = "".join(token.split())
return account
def _build_widgets(self):
container = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
container.set_border_width(36)
self.provider_combo.set_entry_text_column(0)
self.provider_combo.connect("changed", self._on_provider_changed)
# Set up auto completion
self.provider_entry = self.provider_combo.get_child()
self.provider_entry.set_placeholder_text(_("Provider"))
completion = Gtk.EntryCompletion()
completion.set_model(self._providers_store)
completion.set_text_column(0)
self.provider_entry.set_completion(completion)
if self._account:
self.provider_entry.set_text(self._account.provider)
self.username_entry.set_placeholder_text(_("Account name"))
self.username_entry.connect("changed", self._validate)
if self._account:
self.username_entry.set_text(self._account.username)
if not self.is_edit:
self.token_entry.set_placeholder_text(_("Secret token"))
self.token_entry.set_visibility(False)
self.token_entry.connect("changed", self._validate)
# To set the empty logo
if self._account:
pixbuf = load_pixbuf_from_provider(self._account.provider, 96)
else:
pixbuf = load_pixbuf_from_provider(None, 96)
self.logo_img.set_from_pixbuf(pixbuf)
container.pack_start(self.logo_img, False, False, 6)
if not self.is_edit:
container.pack_end(self.token_entry, False, False, 6)
container.pack_end(self.username_entry, False, False, 6)
container.pack_end(self.provider_combo, False, False, 6)
self.pack_start(container, False, False, 6)
def _on_provider_changed(self, combo):
tree_iter = combo.get_active_iter()
if tree_iter is not None:
model = combo.get_model()
logo = model[tree_iter][-1]
else:
entry = combo.get_child()
logo = entry.get_text()
self._validate()
self.logo_img.set_from_pixbuf(load_pixbuf_from_provider(logo, 96))
def _fill_data(self):
uri = 'resource:///com/github/bilelmoussaoui/Authenticator/data.json'
g_file = Gio.File.new_for_uri(uri)
content = str(g_file.load_contents(None)[1].decode("utf-8"))
data = json.loads(content)
data = sorted([(name, logo) for name, logo in data.items()],
key=lambda account: account[0].lower())
for entry in data:
name, logo = entry
self._providers_store.append([name, logo])
def _validate(self, *_):
"""Validate the username and the token."""
provider = self.provider_combo.get_child().get_text()
username = self.username_entry.get_text()
token = "".join(self.token_entry.get_text().split())
if not username:
self.username_entry.get_style_context().add_class("error")
valid_name = False
else:
self.username_entry.get_style_context().remove_class("error")
valid_name = True
if not provider:
self.provider_combo.get_style_context().add_class("error")
valid_provider = False
else:
self.provider_combo.get_style_context().remove_class("error")
valid_provider = True
if (not token or not OTP.is_valid(token)) and not self.is_edit:
self.token_entry.get_style_context().add_class("error")
valid_token = False
else:
self.token_entry.get_style_context().remove_class("error")
valid_token = True
self.emit("changed", all([valid_name, valid_provider, valid_token]))
def scan_qr(self):
"""
Scans a QRCode and fills the entries with the correct data.
"""
from ...models import QRReader, GNOMEScreenshot
filename = GNOMEScreenshot.area()
if filename:
qr_reader = QRReader(filename)
secret = qr_reader.read()
if qr_reader.ZBAR_FOUND:
if not qr_reader.is_valid():
self.__send_notification(_("Invalid QR code"))
else:
self.token_entry.set_text(secret)
if qr_reader.provider is not None:
self.provider_entry.set_text(qr_reader.provider)
if qr_reader.username is not None:
self.username_entry.set_text(qr_reader.username)
else:
self.__send_notification(_("zbar library is not found. "
"QRCode scanner will be disabled"))
def __send_notification(self, message):
"""
Show a notification using Gd.Notification.
:param message: the notification message
:type message: str
"""
notification = Gd.Notification()
notification.set_show_close_button(True)
notification.set_timeout(5)
notification_lbl = Gtk.Label()
notification_lbl.set_text(message)
notification.add(notification_lbl)
self.add(notification)
self.reorder_child(notification, 0)
self.show_all()

View file

@ -1,208 +0,0 @@
"""
Copyright © 2017 Bilal Elmoussaoui <bil.elmoussaoui@gmail.com>
This file is part of Authenticator.
Authenticator 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.
Authenticator 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 Authenticator. If not, see <http://www.gnu.org/licenses/>.
"""
from gettext import gettext as _
from gi import require_version
require_version("Gtk", "3.0")
from gi.repository import Gio, Gtk, GObject, Pango
from .edit import EditAccountWindow
class ActionButton(Gtk.Button):
def __init__(self, icon_name, tooltip):
Gtk.Button.__init__(self)
self._build_widget(icon_name, tooltip)
def _build_widget(self, icon_name, tooltip):
icon = Gio.ThemedIcon(name=icon_name)
image = Gtk.Image.new_from_gicon(icon,
Gtk.IconSize.BUTTON)
self.set_tooltip_text(tooltip)
self.set_image(image)
def hide(self):
self.set_visible(False)
self.set_no_show_all(True)
def show(self):
self.set_visible(True)
self.set_no_show_all(False)
class ActionsBox(Gtk.Box):
"""
AccountRow's Actions Box
"""
def __init__(self):
Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL,
spacing=6)
self.copy_btn = ActionButton("edit-copy-symbolic", _("Copy"))
self.edit_btn = ActionButton("document-edit-symbolic", _("Edit"))
self._build_widget()
def _build_widget(self):
"""Build ActionsBox widgets."""
self.pack_start(self.copy_btn, False, False, 0)
self.pack_start(self.edit_btn, False, False, 0)
class AccountRow(Gtk.ListBoxRow, GObject.GObject):
"""
AccountRow widget.
"""
__gsignals__ = {
'on_selected': (GObject.SignalFlags.RUN_LAST, None, ()),
}
def __init__(self, account):
"""
:param account: Account
"""
Gtk.ListBoxRow.__init__(self)
self.get_style_context().add_class("account-row")
self._account = account
self.check_btn = Gtk.CheckButton()
self._account.connect("otp_updated", self._on_pin_updated)
self._build_widget()
self.show_all()
@property
def account(self):
"""
The account related to the AccountRow
:return: Account Object
"""
return self._account
@property
def checked(self):
"""
Whether the CheckButton is active or not.
:return: bool
"""
return self.check_btn.get_active()
def _build_widget(self):
"""Build the Account Row widget."""
container = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL,
spacing=6)
container.pack_start(self.check_btn, False, False, 3)
self.check_btn.set_visible(False)
self.check_btn.get_style_context().add_class("account-row-checkbtn")
self.check_btn.connect("toggled", self._check_btn_toggled)
self.check_btn.set_no_show_all(True)
# Account Name & Two factor code:
info_container = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
# Account Name
self.username_lbl = Gtk.Label(label=self.account.username)
self.username_lbl.set_tooltip_text(self.account.username)
self.username_lbl.set_ellipsize(Pango.EllipsizeMode.END)
self.username_lbl.set_halign(Gtk.Align.START)
self.username_lbl.get_style_context().add_class("username")
info_container.pack_start(self.username_lbl, False, False, 0)
info_container.set_valign(Gtk.Align.CENTER)
container.pack_start(info_container, True, True, 6)
# Actions container
actions = ActionsBox()
actions.copy_btn.connect("clicked", self._on_copy)
actions.edit_btn.connect("clicked", self._on_edit)
actions.set_valign(Gtk.Align.CENTER)
container.pack_end(actions, False, False, 0)
# Secret code
otp_container = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
pin = self.account.otp.pin
self.pin_label = Gtk.Label()
self.pin_label.set_halign(Gtk.Align.START)
if pin:
self.pin_label.set_text(pin)
else:
self.pin_label.set_text("??????")
self.pin_label.set_tooltip_text(
_("Couldn't generate the secret code"))
self.pin_label.get_style_context().add_class("token-label")
otp_container.pack_start(self.pin_label, False, False, 6)
otp_container.set_valign(Gtk.Align.CENTER)
otp_container.set_halign(Gtk.Align.START)
container.pack_end(otp_container, False, False, 6)
self.add(container)
def _check_btn_toggled(self, *_):
"""
CheckButton signal Handler.
"""
self.emit("on_selected")
def _on_copy(self, *_):
"""
Copy button clicked signal handler.
Copies the OTP pin to the clipboard
"""
self._account.copy_pin()
def _on_edit(self, *_):
"""
Edit Button clicked signal handler.
Opens a new Window to edit the current account.
"""
from ..window import Window
edit_window = EditAccountWindow(self._account)
edit_window.set_transient_for(Window.get_default())
edit_window.connect("updated", self._on_update)
edit_window.show_all()
edit_window.present()
def _on_update(self, _, username, provider):
"""
On account update signal handler.
Updates the account username and provider
:param username: the new account's username
:type username: str
:param provider: the new account's provider
:type provider: str
"""
self.username_lbl.set_text(username)
self.account.update(username, provider)
def _on_pin_updated(self, _, pin):
"""
Updates the pin label each time a new OTP is generated.
otp_updated signal handler.
:param pin: the new OTP
:type pin: str
"""
if pin:
self.pin_label.set_text(pin)

View file

@ -1,64 +0,0 @@
"""
Copyright © 2017 Bilal Elmoussaoui <bil.elmoussaoui@gmail.com>
This file is part of Authenticator.
Authenticator 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.
Authenticator 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 Authenticator. If not, see <http://www.gnu.org/licenses/>.
"""
from gettext import gettext as _
from gi import require_version
require_version("Gtk", "3.0")
from gi.repository import Gtk
class ActionsBar(Gtk.ActionBar):
"""
ActionsBar Widget
"""
# Default instance of ActionsBar
instance = None
def __init__(self):
Gtk.ActionBar.__init__(self)
self._build_widgets()
self.show_all()
self.set_visible(False)
self.set_no_show_all(True)
@staticmethod
def get_default():
if ActionsBar.instance is None:
ActionsBar.instance = ActionsBar()
return ActionsBar.instance
def _build_widgets(self):
"""
Build the ActionsBar widgets.
"""
self.delete_btn = Gtk.Button(label=_("Delete"))
self.delete_btn.set_sensitive(False)
self.pack_end(self.delete_btn)
def on_selected_rows_changed(self, _, selected_rows):
"""
Set the sensitivity of the delete button depending
on the total selected rows
:param selected_rows: the total number of selected rows
:type selected_rows: int
"""
self.delete_btn.set_sensitive(selected_rows > 0)

View file

@ -1,199 +0,0 @@
"""
Copyright © 2017 Bilal Elmoussaoui <bil.elmoussaoui@gmail.com>
This file is part of Authenticator.
Authenticator 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.
Authenticator 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 Authenticator. If not, see <http://www.gnu.org/licenses/>.
"""
from abc import abstractmethod, ABCMeta
from gi import require_version
require_version("Gtk", "3.0")
from gi.repository import Gtk, Gio
from gettext import gettext as _
from ..models import Database
class HeaderBarState:
EMPTY = 0
NORMAL = 2
SELECT = 3
LOCKED = 4
class HeaderBarBtn:
__metaclass__ = ABCMeta
def __init__(self, icon_name, tooltip):
self._build(icon_name, tooltip)
@abstractmethod
def set_image(self, image):
"""Set an image"""
@abstractmethod
def set_tooltip_text(self, tooltip):
"""Set the tooltip text"""
def _build(self, icon_name, tooltip):
"""
:param icon_name:
:param tooltip:
"""
icon = Gio.ThemedIcon(name=icon_name)
image = Gtk.Image.new_from_gicon(icon,
Gtk.IconSize.BUTTON)
self.set_tooltip_text(tooltip)
self.set_image(image)
def hide_(self):
"""Set a button visible or not?."""
self.set_visible(False)
self.set_no_show_all(True)
def show_(self):
self.set_visible(True)
self.set_no_show_all(False)
class HeaderBarButton(Gtk.Button, HeaderBarBtn):
"""HeaderBar Button widget"""
def __init__(self, icon_name, tooltip):
Gtk.Button.__init__(self)
HeaderBarBtn.__init__(self, icon_name, tooltip)
class HeaderBarToggleButton(Gtk.ToggleButton, HeaderBarBtn):
"""HeaderBar Toggle Button widget"""
def __init__(self, icon_name, tooltip):
Gtk.ToggleButton.__init__(self)
HeaderBarBtn.__init__(self, icon_name, tooltip)
class HeaderBar(Gtk.HeaderBar):
"""
HeaderBar widget
"""
instance = None
state = HeaderBarState.NORMAL
def __init__(self):
Gtk.HeaderBar.__init__(self)
self.search_btn = HeaderBarToggleButton("system-search-symbolic",
_("Search"))
self.add_btn = HeaderBarButton("list-add-symbolic",
_("Add a new account"))
self.settings_btn = HeaderBarButton("open-menu-symbolic",
_("Settings"))
self.select_btn = HeaderBarButton("object-select-symbolic",
_("Selection mode"))
self.cancel_btn = Gtk.Button(label=_("Cancel"))
self.popover = None
self._build_widgets()
@staticmethod
def get_default():
"""
:return: Default instance of HeaderBar
"""
if HeaderBar.instance is None:
HeaderBar.instance = HeaderBar()
return HeaderBar.instance
def _build_widgets(self):
"""
Generate the HeaderBar widgets
"""
self.set_show_close_button(True)
left_box = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)
right_box = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL,
spacing=6)
# Hide the search button if nothing is found
if Database.get_default().count > 0:
self.search_btn.show_()
else:
self.search_btn.hide_()
left_box.add(self.add_btn)
right_box.pack_start(self.search_btn, False, False, 0)
right_box.pack_start(self.select_btn, False, False, 0)
right_box.pack_start(self.cancel_btn, False, False, 0)
right_box.pack_end(self.settings_btn, False, False, 0)
self.pack_start(left_box)
self.pack_end(right_box)
def generate_popover_menu(self, menu):
self.settings_btn.connect("clicked", self.toggle_popover)
self.popover = Gtk.Popover.new_from_model(self.settings_btn,
menu)
self.popover.props.width_request = 200
def toggle_popover(self, *_):
if self.popover:
if self.popover.get_visible():
self.popover.hide()
else:
self.popover.show_all()
def toggle_settings_button(self, visible):
self.settings_button.set_visible(visible)
self.settings_button.set_no_show_all(not visible)
def set_state(self, state):
if state != HeaderBarState.SELECT:
self.cancel_btn.set_visible(False)
self.cancel_btn.set_no_show_all(True)
if state == HeaderBarState.EMPTY:
self.add_btn.show_()
self.search_btn.hide_()
self.select_btn.hide_()
self.settings_btn.show_()
elif state == HeaderBarState.SELECT:
self.search_btn.show_()
self.add_btn.hide_()
self.select_btn.hide_()
self.set_show_close_button(False)
self.get_style_context().add_class("selection-mode")
self.cancel_btn.set_visible(True)
self.cancel_btn.set_no_show_all(False)
self.settings_btn.hide_()
self.set_title(_("Click on items to select them"))
elif state == HeaderBarState.LOCKED:
self.add_btn.hide_()
self.select_btn.hide_()
self.search_btn.hide_()
self.cancel_btn.set_visible(False)
self.cancel_btn.set_no_show_all(True)
else:
self.search_btn.show_()
self.add_btn.show_()
self.select_btn.show_()
self.settings_btn.show_()
if self.state == HeaderBarState.SELECT:
self.get_style_context().remove_class("selection-mode")
self.set_show_close_button(True)
self.set_title("")
self.state = state

View file

@ -1,94 +0,0 @@
"""
Copyright © 2017 Bilal Elmoussaoui <bil.elmoussaoui@gmail.com>
This file is part of Authenticator.
Authenticator 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.
Authenticator 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 Authenticator. If not, see <http://www.gnu.org/licenses/>.
"""
from gettext import gettext as _
from gi import require_version
require_version("Gtk", "3.0")
from gi.repository import Gtk, Gio
class LoginWidget(Gtk.Box):
instance = None
def __init__(self):
Gtk.Box.__init__(self, orientation=Gtk.Orientation.VERTICAL)
self.login_btn = Gtk.Button()
self._password_entry = Gtk.Entry()
self._build_widgets()
@staticmethod
def get_default():
if LoginWidget.instance is None:
LoginWidget.instance = LoginWidget()
return LoginWidget.instance
def _build_widgets(self):
self.set_border_width(36)
self.set_halign(Gtk.Align.CENTER)
self.set_valign(Gtk.Align.FILL)
info_container = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
info_container.set_valign(Gtk.Align.START)
gicon = Gio.ThemedIcon(name="dialog-password-symbolic")
image = Gtk.Image.new_from_gicon(gicon, Gtk.IconSize.DIALOG)
label = Gtk.Label()
label.set_text(_("Authenticator is locked"))
label.get_style_context().add_class("loginwidget-mainlabel")
sub_label = Gtk.Label()
sub_label.set_text(_("Enter password to unlock"))
sub_label.get_style_context().add_class("loginwidget-sublabel")
info_container.pack_start(image, False, False, 6)
info_container.pack_start(label, False, False, 3)
info_container.pack_start(sub_label, False, False, 3)
password_container = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
self._password_entry.set_placeholder_text(_("Type your password here"))
self._password_entry.set_visibility(False)
self._password_entry.grab_focus_without_selecting()
self.login_btn.set_label(_("Unlock"))
password_container.pack_start(self._password_entry, False, False, 3)
password_container.pack_start(self.login_btn, False, False, 3)
password_container.set_valign(Gtk.Align.CENTER)
self.pack_start(info_container, False, False, 3)
self.pack_start(password_container, True, False, 3)
def set_has_error(self, has_errors):
if has_errors:
self._password_entry.get_style_context().add_class("error")
else:
self._password_entry.get_style_context().remove_class("error")
@property
def password(self):
return self._password_entry.get_text()
@password.setter
def password(self, new_password):
self._password_entry.set_text(new_password)

View file

@ -1,84 +0,0 @@
"""
Copyright © 2017 Bilal Elmoussaoui <bil.elmoussaoui@gmail.com>
This file is part of Authenticator.
Authenticator 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.
Authenticator 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 Authenticator. If not, see <http://www.gnu.org/licenses/>.
"""
from gi import require_version
require_version("Gtk", "3.0")
from gi.repository import Gtk, GObject
class SearchBar(Gtk.SearchBar):
"""
Search Bar widget.
"""
_search_button = None
def __init__(self, search_button=None, search_list=[]):
Gtk.SearchBar.__init__(self)
self.search_list = search_list
self.search_entry = Gtk.SearchEntry()
self.search_button = search_button
self._build_widgets()
@property
def search_button(self):
return self._search_button
@search_button.setter
def search_button(self, widget):
if widget:
self._search_button = widget
self.bind_property("search-mode-enabled", self._search_button,
"active", GObject.BindingFlags.BIDIRECTIONAL)
def _build_widgets(self):
"""
Build the SearchBar widgets
"""
self.search_entry.set_width_chars(28)
self.search_entry.connect("search-changed",
self.set_filter_func,
self.filter_func)
self.connect_entry(self.search_entry)
self.add(self.search_entry)
@staticmethod
def filter_func(row, data, *_):
"""
Filter function, used to check if the entered data exists on the application ListBox
"""
data = data.lower()
if len(data) > 0:
return (
data in row.account.username.lower()
or
data in row.account.provider.lower()
)
else:
return True
def set_filter_func(self, entry, filter_func):
"""
Filter the data of a listbox from an entry
:param entry: Gtk.Entry
:param filter_func: The function to use as filter
"""
data = entry.get_text().strip()
for search_list in self.search_list:
search_list.set_filter_func(filter_func,
data, False)

View file

@ -1,309 +0,0 @@
"""
Copyright © 2017 Bilal Elmoussaoui <bil.elmoussaoui@gmail.com>
This file is part of Authenticator.
Authenticator 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.
Authenticator 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 Authenticator. If not, see <http://www.gnu.org/licenses/>.
"""
from gettext import gettext as _
from gi import require_version
require_version('Gd', '1.0')
require_version("Gtk", "3.0")
from gi.repository import Gd, Gtk, GObject
from .window import Window
from ..models import Settings, Keyring
class ClickableSettingsBox(Gtk.EventBox):
def __init__(self, label, sub_label=None):
Gtk.EventBox.__init__(self)
# cursor = Gdk.Cursor(Gdk.CursorType.WATCH)
# self.get_window().set_cursor(cursor)
self._build_widgets(label, sub_label)
def _build_widgets(self, label, sub_label=None):
container = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
container.get_style_context().add_class("settings-box")
main_lbl = Gtk.Label()
main_lbl.set_halign(Gtk.Align.START)
main_lbl.get_style_context().add_class("settings-box-main-label")
main_lbl.set_text(label)
container.pack_start(main_lbl, True, True, 3)
self.secondary_lbl = Gtk.Label()
self.secondary_lbl.set_halign(Gtk.Align.START)
self.secondary_lbl.get_style_context().add_class("settings-box-secondary-label")
if sub_label:
self.secondary_lbl.set_text(sub_label)
else:
self.secondary_lbl.set_text("")
container.pack_start(self.secondary_lbl, True, True, 3)
self.add(container)
class SwitchSettingsBox(Gtk.Box, GObject.GObject):
__gsignals__ = {
'changed': (GObject.SignalFlags.RUN_LAST, None, (bool,))
}
def __init__(self, label, sub_label, schema):
Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL)
GObject.GObject.__init__(self)
self.switch = Gtk.Switch()
self._schema = schema
self._build_widgets(label, sub_label)
def _build_widgets(self, label, sub_label):
self.get_style_context().add_class("settings-box")
self.switch.set_state(Settings.get_default().get_boolean(self._schema))
self.switch.connect("state-set", self.__on_toggled)
label_container = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
main_lbl = Gtk.Label()
main_lbl.set_halign(Gtk.Align.START)
main_lbl.get_style_context().add_class("settings-box-main-label")
main_lbl.set_text(label)
label_container.pack_start(main_lbl, False, False, 3)
secondary_lbl = Gtk.Label()
secondary_lbl.set_halign(Gtk.Align.START)
secondary_lbl.get_style_context().add_class("settings-box-secondary-label")
secondary_lbl.set_text(sub_label)
label_container.pack_start(secondary_lbl, False, False, 3)
self.pack_start(label_container, False, False, 0)
switch_container = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
switch_container.pack_start(self.switch, False, False, 0)
switch_container.set_valign(Gtk.Align.CENTER)
self.pack_end(switch_container, False, False, 0)
def __on_toggled(self, *_):
Settings.get_default().set_boolean(self._schema, not self.switch.get_state())
self.emit("changed", not self.switch.get_state())
class SettingsBoxWithEntry(Gtk.Box):
def __init__(self, label, is_password=False):
Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL)
self.get_style_context().add_class("settings-box")
self.entry = Gtk.Entry()
if is_password:
self.entry.set_visibility(False)
self._build_widgets(label)
def _build_widgets(self, label):
entry_label = Gtk.Label()
entry_label.set_text(label)
entry_label.get_style_context().add_class("settings-box-main-label")
entry_label.set_halign(Gtk.Align.START)
self.pack_start(entry_label, True, True, 6)
self.pack_end(self.entry, False, False, 6)
class PasswordWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self)
self.set_modal(True)
self.set_size_request(500, 400)
self.set_position(Gtk.WindowPosition.CENTER_ON_PARENT)
self.resize(500, 400)
self.set_resizable(False)
self.set_border_width(36)
self.old_password = None
self._apply_btn = Gtk.Button()
self._build_widgets()
def _build_widgets(self):
header_bar = Gtk.HeaderBar()
header_bar.set_title(_("Authentication Password"))
header_bar.set_show_close_button(True)
self.set_titlebar(header_bar)
self._apply_btn.set_label(_("Save"))
self._apply_btn.connect("clicked", self.__on_apply_button_clicked)
self._apply_btn.set_sensitive(False)
self._apply_btn.get_style_context().add_class("suggested-action")
header_bar.pack_end(self._apply_btn)
container = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
if Keyring.has_password():
self.old_password = SettingsBoxWithEntry(_("Old Password"), True)
self.old_password.entry.connect("changed", self._validate)
container.pack_start(self.old_password, False, False, 6)
self.password = SettingsBoxWithEntry(_("Password"), True)
self.password.entry.connect("changed", self._validate)
self.repeat_password = SettingsBoxWithEntry(_("Repeat Password"), True)
self.repeat_password.entry.connect("changed", self._validate)
container.pack_start(self.password, False, False, 6)
container.pack_start(self.repeat_password, False, False, 6)
self.add(container)
def _validate(self, *_):
password = self.password.entry.get_text()
repeat_password = self.repeat_password.entry.get_text()
if not password:
self.password.entry.get_style_context().add_class("error")
valid_password = False
else:
self.password.entry.get_style_context().remove_class("error")
valid_password = True
if not repeat_password or password != repeat_password:
self.repeat_password.entry.get_style_context().add_class("error")
valid_repeat_password = False
else:
self.repeat_password.entry.get_style_context().remove_class("error")
valid_repeat_password = True
to_validate = [valid_password, valid_repeat_password]
if self.old_password:
old_password = self.old_password.entry.get_text()
if not old_password or old_password != Keyring.get_password():
self.old_password.entry.get_style_context().add_class("error")
valid_old_password = False
else:
self.old_password.entry.get_style_context().remove_class("error")
valid_old_password = True
to_validate.append(valid_old_password)
self._apply_btn.set_sensitive(all(to_validate))
def __on_apply_button_clicked(self, *_):
if self._apply_btn.get_sensitive():
password = self.password.entry.get_text()
Keyring.set_password(password)
self.destroy()
class SettingsWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self)
self.set_transient_for(Window.get_default())
self.set_position(Gtk.WindowPosition.CENTER_ON_PARENT)
self.set_size_request(600, 600)
self.set_title(_("Settings"))
self.resize(600, 600)
self.stack_switcher = Gtk.StackSwitcher()
self.stack = Gtk.Stack()
self._build_widgets()
def _build_widgets(self):
header_bar = Gtk.HeaderBar()
header_bar.set_show_close_button(True)
self.set_titlebar(header_bar)
header_bar.set_custom_title(self.stack_switcher)
self.stack_switcher.set_stack(self.stack)
self.stack.get_style_context().add_class("settings-main-container")
appearance_container = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
dark_theme = SwitchSettingsBox(_("Dark theme"), _("Use a dark theme, if possible"), "night-mode")
dark_theme.connect("changed", self.__on_dark_theme_changed)
appearance_container.pack_start(dark_theme, False, False, 0)
self.stack.add_titled(appearance_container, "appearance", _("Appearance"))
behaviour_container = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
clear_database = ClickableSettingsBox(_("Clear the database"), _("Erase existing accounts"))
clear_database.connect("button-press-event", self.__on_clear_database_clicked)
app_can_be_locked = SwitchSettingsBox(_("Lock the application"),
_("Possibility to lock the application with a password"), "can-be-locked")
app_can_be_locked.connect("changed", self.__on_app_can_be_locked_changed)
app_password = ClickableSettingsBox(_("Authentication password"),
_("Set up application authentication password"))
app_password.connect("button-press-event", self.__on_app_set_password)
behaviour_container.pack_start(clear_database, False, False, 0)
behaviour_container.pack_start(app_can_be_locked, False, False, 0)
behaviour_container.pack_start(app_password, False, False, 0)
self.stack.add_titled(behaviour_container, "behaviour", _("Behaviour"))
self.add(self.stack)
def __on_app_can_be_locked_changed(self, __, state):
notification = Gd.Notification()
notification.set_timeout(5)
notification_lbl = Gtk.Label()
notification_lbl.set_text(_("The application needs to be restarted first."))
notification.add(notification_lbl)
notification_parent = self.stack.get_child_by_name("behaviour")
notification_parent.add(notification)
notification_parent.reorder_child(notification, 0)
self.show_all()
if state and not Keyring.has_password():
self.__on_app_set_password()
def __on_app_set_password(self, *_):
password_window = PasswordWindow()
password_window.set_transient_for(self)
password_window.show_all()
@staticmethod
def __on_dark_theme_changed(_, state):
gtk_settings = Gtk.Settings.get_default()
gtk_settings.set_property("gtk-application-prefer-dark-theme",
state)
def __on_clear_database_clicked(self, *__):
notification = Gd.Notification()
notification.set_timeout(5)
notification.connect("dismissed", self.__clear_database)
container = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)
notification_lbl = Gtk.Label()
notification_lbl.set_text(_("The existing accounts will be erased in 5 seconds"))
container.pack_start(notification_lbl, False, False, 3)
undo_btn = Gtk.Button()
undo_btn.set_label(_("Undo"))
undo_btn.connect("clicked", lambda widget: notification.hide())
container.pack_end(undo_btn, False, False, 3)
notification.add(container)
notification_parent = self.stack.get_child_by_name("behaviour")
notification_parent.add(notification)
notification_parent.reorder_child(notification, 0)
self.show_all()
@staticmethod
def __clear_database(*_):
from ..models import Database, Keyring, AccountsManager
from ..widgets.accounts import AccountsWidget
Database.get_default().clear()
Keyring.get_default().clear()
AccountsManager.get_default().clear()
AccountsWidget.get_default().clear()

View file

@ -1,256 +0,0 @@
"""
Copyright © 2017 Bilal Elmoussaoui <bil.elmoussaoui@gmail.com>
This file is part of Authenticator.
Authenticator 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.
Authenticator 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 Authenticator. If not, see <http://www.gnu.org/licenses/>.
"""
from gettext import gettext as _
from gi import require_version
require_version('Gd', '1.0')
require_version("Gtk", "3.0")
from gi.repository import Gd, Gtk, GObject, Gio
from ..models import Logger, Settings, Database, AccountsManager
from .headerbar import HeaderBar, HeaderBarState
from .accounts import AccountsWidget, AccountsListState, AddAccountWindow, EmptyAccountsList
from .search_bar import SearchBar
from .actions_bar import ActionsBar
from . import LoginWidget
class Window(Gtk.ApplicationWindow, GObject.GObject):
"""Main Window object."""
__gsignals__ = {
'changed': (GObject.SignalFlags.RUN_LAST, None, (bool,)),
'locked': (GObject.SignalFlags.RUN_LAST, None, ()),
'unlocked': (GObject.SignalFlags.RUN_LAST, None, ())
}
# Default Window instance
instance = None
is_empty = GObject.Property(type=bool, default=False)
def __init__(self):
Gtk.ApplicationWindow.__init__(self, type=Gtk.WindowType.TOPLEVEL)
self.set_icon_name("@APP_ID@")
self.get_style_context().add_class("authenticator-window")
self.resize(550, 600)
self.connect("locked", self.__on_locked)
self.connect("unlocked", self.__on_unlocked)
self.key_press_signal = None
self.restore_state()
AccountsManager.get_default()
self._build_widgets()
self.show_all()
@staticmethod
def get_default():
"""Return the default instance of Window."""
if Window.instance is None:
Window.instance = Window()
return Window.instance
def close(self):
self.save_state()
AccountsManager.get_default().kill()
self.destroy()
def set_menu(self, gio_menu):
"""Set Headerbar popover menu."""
HeaderBar.get_default().generate_popover_menu(gio_menu)
def add_account(self, *_):
if not self.get_application().is_locked:
add_window = AddAccountWindow()
add_window.set_transient_for(self)
add_window.show_all()
add_window.present()
def update_view(self, *_):
header_bar = HeaderBar.get_default()
count = Database.get_default().count
self.set_property("is-empty", count == 0)
if not self.is_empty:
child_name = "accounts-list"
header_bar.set_state(HeaderBarState.NORMAL)
else:
header_bar.set_state(HeaderBarState.EMPTY)
child_name = "empty-accounts-list"
child = self.main_stack.get_child_by_name(child_name)
child.show_all()
self.main_stack.set_visible_child(child)
@staticmethod
def toggle_select(*_):
"""
Toggle select mode
"""
header_bar = HeaderBar.get_default()
accounts_widget = AccountsWidget.get_default()
if header_bar.state == HeaderBarState.NORMAL:
header_bar.set_state(HeaderBarState.SELECT)
accounts_widget.set_state(AccountsListState.SELECT)
elif header_bar.state != HeaderBarState.LOCKED:
header_bar.set_state(HeaderBarState.NORMAL)
accounts_widget.set_state(AccountsListState.NORMAL)
def toggle_search(self, *_):
if not (self.get_application().is_locked or self.is_empty):
toggled = not self.search_bar.get_property("search_mode_enabled")
self.search_bar.set_property("search_mode_enabled", toggled)
def save_state(self):
"""Save window position & size."""
settings = Settings.get_default()
settings.window_position = self.get_position()
settings.window_maximized = self.is_maximized()
def restore_state(self):
"""Restore the window's state."""
settings = Settings.get_default()
# Restore the window position
position_x, position_y = settings.window_position
if position_x != 0 and position_y != 0:
self.move(position_x, position_y)
Logger.debug("[Window] Restore position x: {}, y: {}".format(position_x,
position_y))
else:
# Fallback to the center
self.set_position(Gtk.WindowPosition.CENTER)
if settings.window_maximized:
self.maximize()
def _build_widgets(self):
"""Build main window widgets."""
# Actions
self.__add_action("toggle-select", Window.toggle_select, "is_empty")
self.__add_action("add-account", self.add_account)
self.__add_action("toggle-searchbar", self.toggle_search)
# HeaderBar
header_bar = HeaderBar.get_default()
header_bar.select_btn.set_action_name("win.toggle-select")
header_bar.add_btn.set_action_name("win.add-account")
header_bar.cancel_btn.set_action_name("win.toggle-select")
self.set_titlebar(header_bar)
# Main Container
self.main_container = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
# Main Stack
self.main_stack = Gtk.Stack()
# Accounts List
account_list_cntr = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
accounts_widget = AccountsWidget.get_default()
accounts_widget.connect("changed", self.update_view)
# Search Bar
self.search_bar = SearchBar()
self.search_bar.search_button = header_bar.search_btn
self.search_bar.search_list = accounts_widget.accounts_lists
# Actions Bar
actions_bar = ActionsBar.get_default()
actions_bar.delete_btn.connect("clicked",
self.__on_delete_clicked)
accounts_widget.connect("selected-rows-changed",
actions_bar.on_selected_rows_changed)
account_list_cntr.pack_start(self.search_bar, False, False, 0)
account_list_cntr.pack_start(accounts_widget, True, True, 0)
account_list_cntr.pack_start(actions_bar, False, False, 0)
self.main_stack.add_named(account_list_cntr,
"accounts-list")
# Empty accounts list
self.main_stack.add_named(EmptyAccountsList.get_default(),
"empty-accounts-list")
login_widget = LoginWidget.get_default()
login_widget.login_btn.connect("clicked", self.__on_unlock)
self.main_stack.add_named(login_widget, "login")
self.main_container.pack_start(self.main_stack, True, True, 0)
self.add(self.main_container)
self.update_view()
actions_bar.bind_property("visible", header_bar.cancel_btn,
"visible",
GObject.BindingFlags.BIDIRECTIONAL)
actions_bar.bind_property("no_show_all", header_bar.cancel_btn,
"no_show_all",
GObject.BindingFlags.BIDIRECTIONAL)
def _on_account_delete(self, *_):
Window.toggle_select()
self.update_view()
def __on_delete_clicked(self, *__):
notification = Gd.Notification()
accounts_widget = AccountsWidget.get_default()
notification.connect("dismissed", accounts_widget.delete_selected)
notification.set_timeout(5)
container = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)
notification_lbl = Gtk.Label()
notification_lbl.set_text(_("An account or more were removed."))
container.pack_start(notification_lbl, False, False, 3)
undo_btn = Gtk.Button()
undo_btn.set_label(_("Undo"))
undo_btn.connect("clicked", lambda widget: notification.hide())
container.pack_end(undo_btn, False, False, 3)
notification.add(container)
accounts_widget.add(notification)
accounts_widget.reorder_child(notification, 1)
accounts_widget.show_all()
def __on_locked(self, *_):
if self.key_press_signal:
self.disconnect(self.key_press_signal)
HeaderBar.get_default().set_state(HeaderBarState.LOCKED)
child = self.main_stack.get_child_by_name("login")
child.show_all()
self.main_stack.set_visible_child(child)
def __on_unlocked(self, *_):
self.update_view()
def __on_unlock(self, *_):
from ..models import Keyring
login_widget = LoginWidget.get_default()
typed_password = login_widget.password
if typed_password == Keyring.get_password():
self.get_application().set_property("is-locked", False)
login_widget.set_has_error(False)
login_widget.password = ""
self.key_press_signal = self.connect("key-press-event", lambda x,
y: self.search_bar.handle_event(y))
self.update_view()
else:
login_widget.set_has_error(True)
def __add_action(self, key, callback, prop_bind=None, bind_flag=GObject.BindingFlags.INVERT_BOOLEAN):
action = Gio.SimpleAction.new(key, None)
action.connect("activate", callback)
if prop_bind:
self.bind_property(prop_bind, action, "enabled", bind_flag)
self.add_action(action)

View file

@ -1,20 +1,16 @@
Hey newcomer, welcome to Authenticator.
# Hey newcomer, welcome to Authenticator
The application is built using Python3, Gtk 3, GLib and other GNOME technologies around it. It's built to run on GNOME & Librem 5 phone.
## If you're a translator:
## If you're a translator
You can translate Authenticator here: https://hosted.weblate.org/engage/authenticator/
## If you're a developer
## If you're a developer:
You want to work on fixing a bug, adding a new feature, please first join our Matrix Channel and ask if there's anyone working on that already.
You want to work on fixing a bug, adding a new feature, please first join our Matrix Channel and ask if there's anyone working on that already.
The Matrix Channel: https://matrix.to/#/#authenticator:matrix.org
We suggest you to use [GNOME Builder](https://flathub.org/apps/details/org.gnome.Builder) as the IDE supports Flatpak and you can hack on Authenticator, click on run and voilà, you have got to test your modifications without having to think about installing the dependencies or how to build the application itself.
Thanks and good hacking.
Thanks and good hacking.

View file

@ -150,8 +150,7 @@
],
"sources": [{
"type": "git",
"url": "https://gitlab.gnome.org/World/Authenticator.git",
"branch": "master"
"url": "https://gitlab.gnome.org/World/Authenticator.git"
}]
}
]

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<id>@appid@.desktop</id>
<component type="desktop-application">
<id>@appid@</id>
<metadata_license>CC0</metadata_license>
<project_license>GPL-3.0+</project_license>
<name>Authenticator</name>
@ -27,9 +27,6 @@
<url type="bugtracker">https://gitlab.gnome.org/World/Authenticator/issues</url>
<url type="translate">https://hosted.weblate.org/projects/authenticator/translation/</url>
<url type="donation">https://www.paypal.me/BilalELMoussaoui</url>
<categories>
<category>Utility</category>
</categories>
<content_rating type="oars-1.0" />
<releases>
<release version="0.2.5" date="2018-09-11">
@ -106,5 +103,6 @@
</releases>
<developer_name>Bilal Elmoussaoui</developer_name>
<update_contact>bil.elmoussaoui@gmail.com</update_contact>
<translation type="gettext">Authenticator</translation>
<translation type="gettext">@gettext-package@</translation>
<launchable type="desktop-id">@appid@.desktop</launchable>
</component>

View file

@ -6,11 +6,17 @@
<file alias="qrscanner-symbolic.svg">icons/hicolor/symbolic/actions/qrscanner-symbolic.svg</file>
<!-- Accounts logo fallback -->
<file alias="authenticator-fallback">icons/hicolor/scalable/apps/com.github.bilelmoussaoui.Authenticator.svg</file>
<file alias="authenticator-symbolic.svg">icons/hicolor/symbolic/apps/com.github.bilelmoussaoui.Authenticator-symbolic.svg</file>
<!-- UI Files -->
<file compressed="true" preprocess="xml-stripblanks" alias="shortcuts.ui">ui/shortcuts.ui</file>
<file compressed="true" preprocess="xml-stripblanks" alias="about_dialog.ui">about_dialog.ui</file>
<file compressed="true" preprocess="xml-stripblanks" alias="account_config.ui">ui/account_config.ui</file>
<file compressed="true" preprocess="xml-stripblanks" alias="account_add.ui">ui/account_add.ui</file>
<file compressed="true" preprocess="xml-stripblanks" alias="account_edit.ui">ui/account_edit.ui</file>
<file compressed="true" preprocess="xml-stripblanks" alias="account_row.ui">ui/account_row.ui</file>
<file compressed="true" preprocess="xml-stripblanks" alias="window.ui">window.ui</file>
<file compressed="true" preprocess="xml-stripblanks" alias="settings.ui">settings.ui</file>
<!-- Default pre-shipped icons -->
<file alias="amazon.svg">icons/hicolor/48x48/apps/amazon.svg</file>

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<schemalist>
<schema path="@schema-path@" id="@app-id@" gettext-domain="Authenticator">
<schema path="@schema-path@" id="@app-id@" gettext-domain="@gettext-package@">
<key name="window-position" type="ai">
<default>[0,0]</default>
<summary>Default window position</summary>
@ -16,15 +16,5 @@
<summary>Default window maximized behaviour</summary>
<description></description>
</key>
<key name="is-locked" type="b">
<default>false</default>
<summary>Whether the application is locked with a password or not</summary>
<description></description>
</key>
<key name="can-be-locked" type="b">
<default>false</default>
<summary>Whether the application can be locked or not</summary>
<description></description>
</key>
</schema>
</schemalist>

View file

@ -1,22 +1,34 @@
about_dialog_conf = configuration_data()
about_dialog_conf.set('APP_ID', application_id)
about_dialog_conf.set('VERSION', meson.project_version())
ui_config = configuration_data()
ui_config.set('APP_ID', application_id)
ui_config.set('VERSION', meson.project_version())
ui_preconfigured_files = files(
'ui/about_dialog.ui.in',
'ui/settings.ui.in',
'ui/window.ui.in',
)
ui_dependencies = []
foreach ui_file: ui_preconfigured_files
ui_dependencies += configure_file(
input: ui_file,
output: '@BASENAME@',
configuration: ui_config
)
endforeach
gnome.compile_resources(
application_id,
meson.project_name() + '.gresource.xml',
gresource_bundle: true,
install_dir: join_paths(get_option('datadir'), meson.project_name()),
install: true,
dependencies: configure_file(
input: 'ui/about_dialog.ui.in',
output: 'about_dialog.ui',
configuration: about_dialog_conf
)
dependencies: ui_dependencies
)
# Install gschema
gschema_conf = configuration_data()
gschema_conf.set('app-id', application_id)
gschema_conf.set('gettext_package', gettext_package)
if get_option('profile') == 'development'
gschema_conf.set('schema-path', '/com/github/bilelmoussaoui/Authenticator/')
else
@ -80,6 +92,7 @@ endif
# Freedesktop AppData File
appdata_conf = configuration_data()
appdata_conf.set('appid', application_id)
appdata_conf.set('gettext_package', gettext_package)
appdata_file = i18n.merge_file(
'appdata',
input: configure_file(
@ -93,11 +106,11 @@ appdata_file = i18n.merge_file(
install_dir: join_paths(get_option('datadir'), 'metainfo')
)
# Validate AppData File
appstreamcli = find_program('appstream-util', required: false)
if appstreamcli.found()
appstream_util = find_program('appstream-util', required: false)
if appstream_util.found()
test (
'Validate appdata file',
appstreamcli,
appstream_util,
args: ['validate-relax', '--nonet', appdata_file.full_path()]
)
endif

View file

@ -1,31 +1,49 @@
.accounts-widget{
margin-top: 0px;
.account-row,
.settings-row{
background-color: mix(@theme_base_color,@theme_bg_color,0.3);
padding: 2px 8px;
margin:0;
border: 1px solid mix(@theme_base_color,@theme_fg_color,0.3);
border-bottom: 0px;
}
.account-row:last-child, .settings-row:last-child {
border-bottom: 1px solid mix(@theme_base_color,@theme_fg_color,0.3);
}
/* AccountsList */
.accounts-list{
background-color: @theme_bg_color;
}
.account-row,
.settings-box{
padding: 6px;
border: 1px solid mix(@theme_base_color,@theme_fg_color,0.3);
background-color: mix(@theme_base_color,@theme_bg_color,0.3);
margin: 6px;
}
.account-row:selected GtkImage {
color: mix(@theme_base_color,@theme_fg_color,0.3);
}
.account-row-checkbtn{
padding-left: 6px;
}
.provider-lbl,
.gpg-key-lbl{
font-size: 18px;
.provider-label{
font-size:14px;
font-weight: bold;
}
/* AccountRow */
.account-row .account-name-label{
font-size: 13px;
padding: 3px 6px;
}
.account-row .pin-label{
font-size: 12px;
}
/* Settings */
.settings-category-title{
font-size:13px;
font-weight:600;
padding: 6px 3px;
}
.settings-box-main-label{
font-size:12px;
}
.settings-box-secondary-label{
font-size:12px;
color: mix(@theme_base_color,@theme_fg_color,0.6);
}
.application-name {
font-size: 14px;
color: @theme_fg_color;
@ -37,34 +55,7 @@
font-size: 16px;
}
.token-label{
font-size: 14px;
}
.settings-box-main-label{
font-size: 14px;
padding: 3px 6px;
}
.settings-box-secondary-label {
font-size:12px;
font-style:italic;
color: mix(@theme_base_color,@theme_fg_color,0.6);
padding: 3px 6px;
}
.settings-main-container{
margin-left: 36px;
margin-right: 36px;
}
.loginwidget-sublabel{
font-size: 12px;
color: mix(@theme_base_color,@theme_fg_color,0.6);
}
.loginwidget-mainlabel{
font-size: 18px;
}
/* Common */
.progress-bar trough progress {
border-top-left-radius: 0px;
border-bottom-left-radius: 0px;
@ -73,3 +64,6 @@
.progress-bar trough {
border-radius: 0px
}
.app-notification{
font-size:11px;
}

68
data/ui/account_add.ui Normal file
View file

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.0 -->
<interface>
<requires lib="gtk+" version="3.22"/>
<object class="GtkImage" id="scan_img">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">qrscanner-symbolic</property>
</object>
<template class="AddAccountWindow" parent="GtkWindow">
<property name="can_focus">False</property>
<property name="type">popup</property>
<property name="resizable">False</property>
<property name="window_position">center-on-parent</property>
<property name="default_width">350</property>
<property name="default_height">500</property>
<child>
<placeholder/>
</child>
<child type="titlebar">
<object class="GtkHeaderBar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="title" translatable="yes">Add a new account</property>
<child>
<object class="GtkButton" id="close_btn">
<property name="label" translatable="yes">Close</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="close_btn_clicked" swapped="no"/>
</object>
</child>
<child>
<object class="GtkButton" id="add_btn">
<property name="label" translatable="yes">Add</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="add_btn_clicked" swapped="no"/>
<style>
<class name="suggested-action"/>
</style>
</object>
<packing>
<property name="pack_type">end</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="scan_btn">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Scan QR Code</property>
<property name="image">scan_img</property>
<signal name="clicked" handler="scan_btn_clicked" swapped="no"/>
</object>
<packing>
<property name="pack_type">end</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</template>
</interface>

154
data/ui/account_config.ui Normal file
View file

@ -0,0 +1,154 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.0 -->
<interface>
<requires lib="gtk+" version="3.22"/>
<object class="GtkListStore" id="providers_store">
<columns>
<!-- column-name name -->
<column type="gchararray"/>
<!-- column-name logo -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkEntryCompletion" id="provider_completion">
<property name="model">providers_store</property>
<property name="text_column">0</property>
<property name="inline_completion">True</property>
<property name="inline_selection">True</property>
</object>
<template class="AccountConfig" parent="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkRevealer" id="notification">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkOverlay">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkLabel" id="notification_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<style>
<class name="app-notification"/>
</style>
</object>
<packing>
<property name="index">-1</property>
</packing>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">36</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkImage" id="provider_img">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="hexpand">True</property>
<property name="icon_name">com.github.bilelmoussaoui.Authenticator-symbolic</property>
<property name="icon_size">6</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">12</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkGrid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="valign">baseline</property>
<property name="hexpand">True</property>
<property name="row_spacing">6</property>
<property name="column_spacing">6</property>
<property name="column_homogeneous">True</property>
<child>
<object class="GtkEntry" id="token_entry">
<property name="can_focus">True</property>
<property name="no_show_all">True</property>
<property name="hexpand">True</property>
<property name="visibility">False</property>
<property name="placeholder_text" translatable="yes">2FA Token</property>
<property name="input_purpose">pin</property>
<signal name="changed" handler="account_edited" swapped="no"/>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">2</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="account_name_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="placeholder_text" translatable="yes">Account Name</property>
<property name="enable_emoji_completion">True</property>
<signal name="changed" handler="account_edited" swapped="no"/>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkComboBox" id="provider_combobox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="model">providers_store</property>
<property name="active">0</property>
<property name="has_entry">True</property>
<property name="entry_text_column">0</property>
<property name="id_column">0</property>
<signal name="changed" handler="provider_changed" swapped="no"/>
<child internal-child="entry">
<object class="GtkEntry" id="provider_entry">
<property name="can_focus">False</property>
<property name="placeholder_text" translatable="yes">Provider</property>
<property name="completion">provider_completion</property>
</object>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="padding">6</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</template>
</interface>

47
data/ui/account_edit.ui Normal file
View file

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.0 -->
<interface>
<requires lib="gtk+" version="3.22"/>
<template class="EditAccountWindow" parent="GtkWindow">
<property name="can_focus">False</property>
<property name="type">popup</property>
<property name="resizable">False</property>
<property name="window_position">center-on-parent</property>
<property name="default_width">350</property>
<property name="default_height">500</property>
<child>
<placeholder/>
</child>
<child type="titlebar">
<object class="GtkHeaderBar" id="headerbar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkButton" id="close_btn">
<property name="label" translatable="yes">Close</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="close_btn_clicked" swapped="no"/>
</object>
</child>
<child>
<object class="GtkButton" id="save_btn">
<property name="label" translatable="yes">Save</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="save_btn_clicked" swapped="no"/>
<style>
<class name="suggested-action"/>
</style>
</object>
<packing>
<property name="pack_type">end</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</template>
</interface>

149
data/ui/account_row.ui Normal file
View file

@ -0,0 +1,149 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.0 -->
<interface>
<requires lib="gtk+" version="3.22"/>
<object class="GtkImage" id="copy_img">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">edit-copy-symbolic</property>
</object>
<object class="GtkPopoverMenu" id="more_actions_popover">
<property name="can_focus">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="valign">center</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkModelButton" id="edit_btn">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="receives_default">False</property>
<property name="text" translatable="yes">Edit</property>
<signal name="clicked" handler="edit_btn_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkModelButton" id="delete_btn">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="receives_default">False</property>
<property name="text" translatable="yes">Delete</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="submenu">main</property>
<property name="position">1</property>
</packing>
</child>
</object>
<template class="AccountRow" parent="GtkListBoxRow">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="valign">center</property>
<property name="selectable">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkMenuButton" id="more_actions_btn">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="receives_default">False</property>
<property name="valign">center</property>
<property name="popover">more_actions_popover</property>
<child>
<object class="GtkImage" id="more_actions_img">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">view-more-symbolic</property>
</object>
</child>
<style>
<class name="image-button"/>
<class name="flat"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="copy_btn">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Copy PIN to clipboard</property>
<property name="valign">center</property>
<property name="image">copy_img</property>
<signal name="clicked" handler="copy_btn_clicked" swapped="no"/>
<style>
<class name="flat"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">end</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="pin_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="valign">center</property>
<style>
<class name="pin-label"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">3</property>
<property name="pack_type">end</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="account_name_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="ellipsize">end</property>
<style>
<class name="account-name-label"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">3</property>
<property name="position">3</property>
</packing>
</child>
</object>
</child>
<style>
<class name="account-row"/>
</style>
</template>
</interface>

482
data/ui/settings.ui.in Normal file
View file

@ -0,0 +1,482 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.0 -->
<interface>
<requires lib="gtk+" version="3.22"/>
<object class="GtkImage" id="previous_img">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">go-previous-symbolic</property>
</object>
<template class="SettingsWindow" parent="GtkWindow">
<property name="can_focus">False</property>
<property name="type">popup</property>
<property name="window_position">center-on-parent</property>
<property name="default_width">350</property>
<property name="default_height">500</property>
<property name="gravity">center</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkRevealer" id="notification">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkOverlay">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkLabel" id="notification_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<style>
<class name="app-notification"/>
</style>
</object>
<packing>
<property name="index">-1</property>
</packing>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkStack" id="main_stack">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">36</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes">Behaviour</property>
<style>
<class name="settings-category-title"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkListBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="selection_mode">none</property>
<child>
<object class="GtkListBoxRow">
<property name="visible">True</property>
<property name="can_focus">True</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes">Dark theme</property>
<style>
<class name="settings-box-main-label"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">6</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes">Use a dark theme, if possible</property>
<style>
<class name="settings-box-secondary-label"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">6</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkSwitch" id="dark_theme_switch">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="halign">end</property>
<property name="valign">center</property>
<signal name="state-set" handler="dark_theme_switch_state_changed" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">end</property>
<property name="position">1</property>
</packing>
</child>
<style>
<class name="settings-box"/>
</style>
</object>
</child>
<style>
<class name="settings-row"/>
</style>
</object>
</child>
<child>
<object class="GtkListBoxRow">
<property name="visible">True</property>
<property name="can_focus">True</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes">Lock the application</property>
<style>
<class name="settings-box-main-label"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">6</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes">Lock the application with a password</property>
<style>
<class name="settings-box-secondary-label"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">6</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkSwitch" id="lock_switch">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="halign">end</property>
<property name="valign">center</property>
<signal name="state-set" handler="lock_switch_state_changed" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">end</property>
<property name="position">1</property>
</packing>
</child>
<style>
<class name="settings-box"/>
</style>
</object>
</child>
<style>
<class name="settings-row"/>
</style>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="name">settings_view</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="hexpand">True</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">@APP_ID@-symbolic</property>
<property name="icon_size">6</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">6</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="margin_bottom">20</property>
<property name="label" translatable="yes">Keep your accounts safer </property>
<property name="ellipsize">end</property>
<style>
<class name="label-help"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">6</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">end</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
<property name="label" translatable="yes">Password</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">6</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="password_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="valign">center</property>
<property name="visibility">False</property>
<property name="input_purpose">password</property>
<signal name="changed" handler="password_entry_changed" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">6</property>
<property name="pack_type">end</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">6</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">end</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
<property name="label" translatable="yes">Repeat Password</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">6</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="repeat_password_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="valign">center</property>
<property name="visibility">False</property>
<property name="input_purpose">password</property>
<signal name="changed" handler="password_entry_changed" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">6</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">6</property>
<property name="position">3</property>
</packing>
</child>
</object>
<packing>
<property name="name">password_view</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar" id="headerbar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="show_close_button">True</property>
<child type="title">
<object class="GtkStack" id="headerbar_stack">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Settings</property>
<style>
<class name="title"/>
</style>
</object>
<packing>
<property name="name">headerbar_settings</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child type="center">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Authenticator Password</property>
<style>
<class name="title"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkButton" id="back_btn">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="image">previous_img</property>
<signal name="clicked" handler="back_btn_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="save_btn">
<property name="label" translatable="yes">Save</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="save_btn_clicked" swapped="no"/>
<style>
<class name="suggested-action"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">end</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="name">headerbar_password</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</child>
</template>
</interface>

View file

@ -45,13 +45,6 @@
<property name="accelerator">&lt;Primary&gt;N</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="visible">True</property>
<property name="title" translatable="yes" context="shortcut window">Select</property>
<property name="accelerator">&lt;Primary&gt;S</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="visible">True</property>

297
data/ui/window.ui.in Normal file
View file

@ -0,0 +1,297 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.0 -->
<interface>
<requires lib="gtk+" version="3.22"/>
<object class="GtkImage" id="add_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">list-add-symbolic</property>
</object>
<object class="GtkImage" id="primary_menu_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">open-menu-symbolic</property>
</object>
<object class="GtkImage" id="search_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">system-search-symbolic</property>
</object>
<template class="Window" parent="GtkApplicationWindow">
<property name="width_request">350</property>
<property name="height_request">500</property>
<property name="can_focus">False</property>
<property name="default_width">350</property>
<property name="default_height">500</property>
<child>
<object class="GtkStack" id="main_stack">
<property name="width_request">350</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkBox" id="empty_accounts_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkImage" id="empty_accounts_list_img">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="icon_name">dialog-information-symbolic</property>
<property name="icon_size">6</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">6</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="label" translatable="yes">There are no accounts yet…</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">6</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="name">empty_state</property>
</packing>
</child>
<child>
<object class="GtkBox" id="accounts_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkSearchBar" id="search_bar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkSearchEntry" id="search_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="primary_icon_name">edit-find-symbolic</property>
<property name="primary_icon_activatable">False</property>
<property name="primary_icon_sensitive">False</property>
<signal name="search-changed" handler="search_changed" swapped="no"/>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkRevealer" id="notification">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkOverlay">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkLabel" id="notification_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<style>
<class name="app-notification"/>
</style>
</object>
<packing>
<property name="index">-1</property>
</packing>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow" id="accounts_scrolled_window">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="shadow_type">in</property>
<child>
<object class="GtkViewport" id="accounts_viewport">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child>
<placeholder/>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="name">normal_state</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox" id="LoginWidget">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="border_width">36</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="hexpand">True</property>
<property name="icon_name">@APP_ID@-symbolic</property>
<property name="icon_size">6</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">10</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Authenticator is locked</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">6</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkEntry" id="password_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="halign">center</property>
<property name="visibility">False</property>
<property name="input_purpose">password</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">6</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="unlock_btn">
<property name="label" translatable="yes">Unlock</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="halign">center</property>
<signal name="clicked" handler="unlock_btn_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">6</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="name">locked_state</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar" id="headerbar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="title" translatable="yes">Authenticator</property>
<property name="show_close_button">True</property>
<child>
<object class="GtkButton" id="add_btn">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="action_name">win.add-account</property>
<property name="image">add_image</property>
<signal name="clicked" handler="add_btn_clicked" swapped="no"/>
</object>
</child>
<child>
<object class="GtkButton" id="primary_menu_btn">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="image">primary_menu_image</property>
<signal name="clicked" handler="primary_menu_btn_clicked" swapped="no"/>
</object>
<packing>
<property name="pack_type">end</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="search_btn">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="action_name">win.toggle-searchbar</property>
<property name="image">search_image</property>
<signal name="toggled" handler="search_btn_toggled" swapped="no"/>
</object>
<packing>
<property name="pack_type">end</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</template>
</interface>

View file

@ -8,9 +8,12 @@ python = import('python3')
gnome = import('gnome')
i18n = import('i18n')
gettext_package = 'Authenticator'
if get_option('profile') == 'development'
profile = 'Devel'
name_suffix = ' (Development)'
gettext_package += '-devel'
else
profile = ''
name_suffix = ''
@ -37,32 +40,20 @@ else
message('Found python3 binary')
endif
LIB_DIR = join_paths(get_option('prefix'), get_option('libdir'), meson.project_name())
LOCALE_DIR = join_paths(get_option('prefix'), get_option('localedir'))
DATA_DIR = join_paths(get_option('prefix'), get_option('datadir'), meson.project_name())
PKGDATA_DIR = join_paths(get_option('prefix'), get_option('datadir'), meson.project_name())
LIBEXEC_DIR = join_paths(get_option('prefix'), get_option('libexecdir'))
libgd_dep = dependency('gdlib', required: false)
if not libgd_dep.found()
libgd_proj = subproject('libgd',
default_options: [
'with-introspection=true',
'with-notification=true',
'static=false',
'pkgdatadir=' + DATA_DIR,
'pkglibdir=' + LIB_DIR
]
)
endif
# Configuration params
conf = configuration_data()
conf.set('APP_ID', application_id)
conf.set('DATA_DIR', DATA_DIR)
conf.set('GETTEXT_PACKAGE', gettext_package)
conf.set('PKGDATA_DIR', PKGDATA_DIR)
conf.set('LOCALE_DIR', LOCALE_DIR)
conf.set('PYTHON_DIR', join_paths(get_option('prefix'), python.sysconfig_path('purelib')))
conf.set('PYTHON_EXEC_DIR', join_paths(get_option('prefix'), python.sysconfig_path('stdlib')))
conf.set('VERSION', meson.project_version())
conf.set('LIB_DIR', LIB_DIR)
conf.set('PROFILE', profile)
conf.set('NAME_SUFFIX', name_suffix)
conf.set('libexecdir', LIBEXEC_DIR)
@ -70,64 +61,6 @@ conf.set('PYTHON', python3.path())
subdir('data')
subdir('po')
configure_file(
input: 'authenticator.py.in',
output: 'authenticator',
configuration: conf,
install_dir: get_option('bindir')
)
configure_file(
input: 'authenticator-search-provider.py.in',
output: 'authenticator-search-provider',
configuration: conf,
install_dir: get_option('libexecdir')
)
configure_file(
input: 'Authenticator/models/settings.py.in',
output: 'settings.py',
configuration: conf,
install_dir: join_paths(python.sysconfig_path('purelib'),
'Authenticator/models')
)
configure_file(
input: 'Authenticator/widgets/window.py.in',
output: 'window.py',
configuration: conf,
install_dir: join_paths(python.sysconfig_path('purelib'),
'Authenticator/widgets')
)
configure_file(
input: 'Authenticator/utils.py.in',
output: 'utils.py',
configuration: conf,
install_dir: join_paths(python.sysconfig_path('purelib'),
'Authenticator')
)
configure_file(
input: 'Authenticator/application.py.in',
output: 'application.py',
configuration: conf,
install_dir: join_paths(python.sysconfig_path('purelib'),
'Authenticator')
)
install_subdir(
'Authenticator',
install_dir: python.sysconfig_path('purelib'),
exclude_files: [
'models/settings.py.in',
'widgets/window.py.in',
'utils.py.in',
'application.py.in'
]
)
subdir('src')
meson.add_install_script('build-aux/meson_post_install.py')

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Authenticator\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-25 19:58+0100\n"
"POT-Creation-Date: 2019-02-11 22:35+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"
@ -17,226 +17,12 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: Authenticator/application.py.in:39
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:6
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:3
#: data/ui/window.ui.in:255 src/Authenticator/application.py.in:36
msgid "Authenticator"
msgstr ""
#: Authenticator/application.py.in:91 Authenticator/widgets/settings.py:239
msgid "Lock the application"
msgstr ""
#: Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr ""
#: Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr ""
#: Authenticator/application.py.in:102
msgid "Restore"
msgstr ""
#: Authenticator/application.py.in:103
msgid "Backup"
msgstr ""
#. Night mode action
#: Authenticator/application.py.in:111
msgid "Preferences"
msgstr ""
#: Authenticator/application.py.in:112
msgid "Donate"
msgstr ""
#: Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr ""
#: Authenticator/application.py.in:114
msgid "About Authenticator"
msgstr ""
#: Authenticator/models/account.py:74
msgid "Default"
msgstr ""
#: Authenticator/widgets/accounts/add.py:50
#: Authenticator/widgets/headerbar.py:101
msgid "Add a new account"
msgstr ""
#: Authenticator/widgets/accounts/add.py:54
msgid "Add"
msgstr ""
#: Authenticator/widgets/accounts/add.py:62
msgid "Scan QR code"
msgstr ""
#: Authenticator/widgets/accounts/add.py:68
#: Authenticator/widgets/accounts/edit.py:58
msgid "Close"
msgstr ""
#: Authenticator/widgets/accounts/add.py:161
msgid "Provider"
msgstr ""
#: Authenticator/widgets/accounts/add.py:171
msgid "Account name"
msgstr ""
#: Authenticator/widgets/accounts/add.py:177
msgid "Secret token"
msgstr ""
#: Authenticator/widgets/accounts/add.py:260
msgid "Invalid QR code"
msgstr ""
#: Authenticator/widgets/accounts/add.py:268
msgid "zbar library is not found. QRCode scanner will be disabled"
msgstr ""
#: Authenticator/widgets/accounts/edit.py:47
msgid "Edit {} - {}"
msgstr ""
#: Authenticator/widgets/accounts/edit.py:52
#: Authenticator/widgets/settings.py:143 Authenticator/widgets/utils.py:20
msgid "Save"
msgstr ""
#: Authenticator/widgets/accounts/list.py:164
msgid "The One-Time Passwords expires in {} seconds"
msgstr ""
#. Label
#: Authenticator/widgets/accounts/list.py:286
msgid "There are no accounts yet…"
msgstr ""
#: Authenticator/widgets/accounts/row.py:59
msgid "Copy"
msgstr ""
#: Authenticator/widgets/accounts/row.py:60
msgid "Edit"
msgstr ""
#: Authenticator/widgets/accounts/row.py:150
msgid "Couldn't generate the secret code"
msgstr ""
#: Authenticator/widgets/actions_bar.py:52
msgid "Delete"
msgstr ""
#: Authenticator/widgets/headerbar.py:99
msgid "Search"
msgstr ""
#: Authenticator/widgets/headerbar.py:103 Authenticator/widgets/settings.py:212
msgid "Settings"
msgstr ""
#: Authenticator/widgets/headerbar.py:105
msgid "Selection mode"
msgstr ""
#: Authenticator/widgets/headerbar.py:107 Authenticator/widgets/utils.py:22
#: Authenticator/widgets/utils.py:48
msgid "Cancel"
msgstr ""
#: Authenticator/widgets/headerbar.py:183
msgid "Click on items to select them"
msgstr ""
#: Authenticator/widgets/settings.py:139
msgid "Authentication Password"
msgstr ""
#: Authenticator/widgets/settings.py:152
msgid "Old Password"
msgstr ""
#: Authenticator/widgets/settings.py:156
msgid "Password"
msgstr ""
#: Authenticator/widgets/settings.py:159
msgid "Repeat Password"
msgstr ""
#: Authenticator/widgets/settings.py:229
msgid "Dark theme"
msgstr ""
#: Authenticator/widgets/settings.py:229
msgid "Use a dark theme, if possible"
msgstr ""
#: Authenticator/widgets/settings.py:232
msgid "Appearance"
msgstr ""
#: Authenticator/widgets/settings.py:236
msgid "Clear the database"
msgstr ""
#: Authenticator/widgets/settings.py:236
msgid "Erase existing accounts"
msgstr ""
#: Authenticator/widgets/settings.py:240
msgid "Possibility to lock the application with a password"
msgstr ""
#: Authenticator/widgets/settings.py:243
msgid "Authentication password"
msgstr ""
#: Authenticator/widgets/settings.py:244
msgid "Set up application authentication password"
msgstr ""
#: Authenticator/widgets/settings.py:250
msgid "Behaviour"
msgstr ""
#: Authenticator/widgets/settings.py:259
msgid "The application needs to be restarted first."
msgstr ""
#: Authenticator/widgets/settings.py:288
msgid "The existing accounts will be erased in 5 seconds"
msgstr ""
#: Authenticator/widgets/settings.py:292 Authenticator/widgets/window.py.in:217
msgid "Undo"
msgstr ""
#: Authenticator/widgets/utils.py:18
msgid "Open"
msgstr ""
#: Authenticator/widgets/utils.py:32 Authenticator/widgets/utils.py:37
msgid "JSON files"
msgstr ""
#: Authenticator/widgets/utils.py:47
msgid "Select"
msgstr ""
#: Authenticator/widgets/window.py.in:213
msgid "An account or more were removed."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:7
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:5
msgid "Two-factor authentication code generator"
@ -264,6 +50,114 @@ msgstr ""
msgid "Huge database of (290+) websites/applications"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:34
msgid ""
"Since I have moved the application to GOME Gitlab's World group, a Flatpak "
"build for each new commit is available to download from the site's website."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:38
msgid "Backup and restore from a basic JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:39
msgid "Backup and restore from an encrypted-GPG JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:40
msgid "Add andOTP support (free and open Android 2FA application)"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:41
msgid "New Settings Widow with 3 sections: appearance, behavior and backup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:42
msgid "Fix Flatpak Build with the latest GNOME Runtime"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:43
msgid "Move the project to GOME Gitlab's World group"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:50
msgid "GNOME Shell Search provider"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:51
msgid "Codes expire simultaneously #91"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:58
msgid "Revamped main window to more closely follow the GNOME HIG"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:59
msgid "Revamped add a new account window to make it easier to use"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:60
msgid ""
"Possibility to add an account from a provider not listed in the shipped "
"database"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:61
msgid "Possibilty to edit an account"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:62
msgid "One Time Password now visible by default"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:69
msgid "Fix python-dbus by using GDbus instead"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:76
msgid "Fix the QRScanner on GNOME Shell"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:77
msgid "Add a new entry for the account's username"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:78
msgid "Updated database of supported accounts"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:85
msgid "HOTFIX: App not running in DE other than GNOME"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:92
msgid "Rename project to Authenticator"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:93
msgid "Cleaner code base"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:94
msgid "Faster startup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:95
msgid "Remove unneeded features"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:96
msgid "Switch to pyzbar instead of zbarlight"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:97
msgid "Flatpak package"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:104
msgid "Bilal Elmoussaoui"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:4
msgid "Two-factor authentication"
msgstr ""
@ -293,14 +187,6 @@ msgstr ""
msgid "Default window maximized behaviour"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:21
msgid "Whether the application is locked with a password or not"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:26
msgid "Whether the application can be locked or not"
msgstr ""
#: data/ui/about_dialog.ui.in:10
msgid "Two-factor authentication code generator."
msgstr ""
@ -309,6 +195,79 @@ msgstr ""
msgid "translator-credits"
msgstr ""
#: data/ui/account_add.ui:24
msgid "Add a new account"
msgstr ""
#: data/ui/account_add.ui:27 data/ui/account_edit.ui:21
msgid "Close"
msgstr ""
#: data/ui/account_add.ui:36
msgid "Add"
msgstr ""
#: data/ui/account_add.ui:56
msgid "Scan QR Code"
msgstr ""
#: data/ui/account_edit.ui:30 data/ui/settings.ui.in:454
#: src/Authenticator/widgets/utils.py:34
msgid "Save"
msgstr ""
#: data/ui/account_row.ui:23
msgid "Edit"
msgstr ""
#: data/ui/account_row.ui:37
msgid "Delete"
msgstr ""
#: data/ui/account_row.ui:92
msgid "Copy PIN to clipboard"
msgstr ""
#: data/ui/settings.ui.in:66
msgid "Behaviour"
msgstr ""
#: data/ui/settings.ui.in:100
msgid "Dark theme"
msgstr ""
#: data/ui/settings.ui.in:117
msgid "Use a dark theme, if possible"
msgstr ""
#: data/ui/settings.ui.in:179 src/Authenticator/application.py.in:91
msgid "Lock the application"
msgstr ""
#: data/ui/settings.ui.in:196
msgid "Lock the application with a password"
msgstr ""
#: data/ui/settings.ui.in:279
msgid "Keep your accounts safer "
msgstr ""
#: data/ui/settings.ui.in:303
msgid "Password"
msgstr ""
#: data/ui/settings.ui.in:348
msgid "Repeat Password"
msgstr ""
#: data/ui/settings.ui.in:410
msgid "Settings"
msgstr ""
#: data/ui/settings.ui.in:427
msgid "Authenticator Password"
msgstr ""
#: data/ui/shortcuts.ui:13
msgctxt "shortcut window"
msgid "General"
@ -341,18 +300,102 @@ msgstr ""
#: data/ui/shortcuts.ui:51
msgctxt "shortcut window"
msgid "Select"
msgstr ""
#: data/ui/shortcuts.ui:58
msgctxt "shortcut window"
msgid "Search"
msgstr ""
#: authenticator.py.in:54
#: data/ui/window.ui.in:60
msgid "There are no accounts yet…"
msgstr ""
#: data/ui/window.ui.in:187
msgid "Authenticator is locked"
msgstr ""
#: data/ui/window.ui.in:222
msgid "Unlock"
msgstr ""
#: src/authenticator.py.in:49
msgid "Start in debug mode"
msgstr ""
#: authenticator.py.in:56
#: src/authenticator.py.in:51
msgid "Authenticator version number"
msgstr ""
#: src/Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr ""
#: src/Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr ""
#: src/Authenticator/application.py.in:102
msgid "Restore"
msgstr ""
#: src/Authenticator/application.py.in:103
msgid "Backup"
msgstr ""
#. Night mode action
#: src/Authenticator/application.py.in:111
msgid "Preferences"
msgstr ""
#: src/Authenticator/application.py.in:112
msgid "Donate"
msgstr ""
#: src/Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr ""
#: src/Authenticator/application.py.in:114
msgid "About Authenticator"
msgstr ""
#: src/Authenticator/models/account.py:70
msgid "Default"
msgstr ""
#: src/Authenticator/widgets/accounts/add.py:204
msgid "Invalid QR code"
msgstr ""
#: src/Authenticator/widgets/accounts/edit.py:45
msgid "Edit {} - {}"
msgstr ""
#: src/Authenticator/widgets/accounts/list.py:144
msgid "The One-Time Passwords expires in {} seconds"
msgstr ""
#: src/Authenticator/widgets/accounts/row.py:75
msgid "Couldn't generate the secret code"
msgstr ""
#: src/Authenticator/widgets/settings.py:73
msgid "Authentication password was unset. Please restart the application"
msgstr ""
#: src/Authenticator/widgets/settings.py:81
msgid "Authentication password is now enabled. Please restart the application."
msgstr ""
#: src/Authenticator/widgets/utils.py:32
msgid "Open"
msgstr ""
#: src/Authenticator/widgets/utils.py:36 src/Authenticator/widgets/utils.py:62
msgid "Cancel"
msgstr ""
#: src/Authenticator/widgets/utils.py:46 src/Authenticator/widgets/utils.py:51
msgid "JSON files"
msgstr ""
#: src/Authenticator/widgets/utils.py:61
msgid "Select"
msgstr ""

View file

@ -1,18 +1,20 @@
Authenticator/application.py.in
Authenticator/models/account.py
Authenticator/widgets/accounts/add.py
Authenticator/widgets/accounts/edit.py
Authenticator/widgets/accounts/list.py
Authenticator/widgets/accounts/row.py
Authenticator/widgets/actions_bar.py
Authenticator/widgets/headerbar.py
Authenticator/widgets/search_bar.py
Authenticator/widgets/settings.py
Authenticator/widgets/utils.py
Authenticator/widgets/window.py.in
data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in
data/com.github.bilelmoussaoui.Authenticator.desktop.in.in
data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in
data/ui/about_dialog.ui.in
data/ui/account_add.ui
data/ui/account_edit.ui
data/ui/account_row.ui
data/ui/settings.ui.in
data/ui/shortcuts.ui
authenticator.py.in
data/ui/window.ui.in
src/authenticator.py.in
src/Authenticator/application.py.in
src/Authenticator/models/account.py
src/Authenticator/widgets/accounts/add.py
src/Authenticator/widgets/accounts/edit.py
src/Authenticator/widgets/accounts/list.py
src/Authenticator/widgets/accounts/row.py
src/Authenticator/widgets/settings.py
src/Authenticator/widgets/utils.py

599
po/ar.po
View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Authenticator\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-25 19:56+0100\n"
"POT-Creation-Date: 2019-02-11 22:35+0100\n"
"PO-Revision-Date: 2018-11-15 08:07+0000\n"
"Last-Translator: alaazghoul <a.z9@live.com>\n"
"Language-Team: Arabic <https://hosted.weblate.org/projects/authenticator/"
@ -20,232 +20,12 @@ msgstr ""
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
"X-Generator: Weblate 3.3-dev\n"
#: Authenticator/application.py.in:39
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:6
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:3
#: data/ui/window.ui.in:255 src/Authenticator/application.py.in:36
msgid "Authenticator"
msgstr "الموثق"
#: Authenticator/application.py.in:91 Authenticator/widgets/settings.py:239
msgid "Lock the application"
msgstr "اقفل التطبيق"
#: Authenticator/application.py.in:99
#, fuzzy
msgid "from a plain-text JSON file"
msgstr "من ملف نص عادي Json"
#: Authenticator/application.py.in:100
#, fuzzy
msgid "in a plain-text JSON file"
msgstr "في نص عادي ملف JSON"
#: Authenticator/application.py.in:102
msgid "Restore"
msgstr "استرجاع"
#: Authenticator/application.py.in:103
msgid "Backup"
msgstr "نسخة احتياطية"
#. Night mode action
#: Authenticator/application.py.in:111
msgid "Preferences"
msgstr ""
#: Authenticator/application.py.in:112
msgid "Donate"
msgstr ""
#: Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr ""
#: Authenticator/application.py.in:114
#, fuzzy
msgid "About Authenticator"
msgstr "الموثق"
#: Authenticator/models/account.py:74
msgid "Default"
msgstr "الافتراضي"
#: Authenticator/widgets/accounts/add.py:50
#: Authenticator/widgets/headerbar.py:101
msgid "Add a new account"
msgstr "اضافة حساب جديد"
#: Authenticator/widgets/accounts/add.py:54
msgid "Add"
msgstr "اضافة"
#: Authenticator/widgets/accounts/add.py:62
msgid "Scan QR code"
msgstr "امسح كود QR"
#: Authenticator/widgets/accounts/add.py:68
#: Authenticator/widgets/accounts/edit.py:58
msgid "Close"
msgstr "اغلاق"
#: Authenticator/widgets/accounts/add.py:161
msgid "Provider"
msgstr "المزود"
#: Authenticator/widgets/accounts/add.py:171
msgid "Account name"
msgstr "اسم الحساب"
#: Authenticator/widgets/accounts/add.py:177
#, fuzzy
msgid "Secret token"
msgstr "الرمز السري"
#: Authenticator/widgets/accounts/add.py:260
msgid "Invalid QR code"
msgstr "رمز QR خاطئ"
#: Authenticator/widgets/accounts/add.py:268
msgid "zbar library is not found. QRCode scanner will be disabled"
msgstr "مكتبة zbar غير موجودة. سيتم تعطيل ماسح كود QR"
#: Authenticator/widgets/accounts/edit.py:47
msgid "Edit {} - {}"
msgstr "تحرير {} - {}"
#: Authenticator/widgets/accounts/edit.py:52
#: Authenticator/widgets/settings.py:143 Authenticator/widgets/utils.py:20
msgid "Save"
msgstr "احفظ"
#: Authenticator/widgets/accounts/list.py:164
msgid "The One-Time Passwords expires in {} seconds"
msgstr "رقم سري المرة الواحدة سينتهي في {} ثانية"
#. Label
#: Authenticator/widgets/accounts/list.py:286
#, fuzzy
msgid "There are no accounts yet…"
msgstr "ليس هناك حساب بعد …"
#: Authenticator/widgets/accounts/row.py:59
msgid "Copy"
msgstr "نسخ"
#: Authenticator/widgets/accounts/row.py:60
msgid "Edit"
msgstr "تحرير"
#: Authenticator/widgets/accounts/row.py:150
msgid "Couldn't generate the secret code"
msgstr "لم يتكمن من توليد المفتاح السري"
#: Authenticator/widgets/actions_bar.py:52
msgid "Delete"
msgstr "حذف"
#: Authenticator/widgets/headerbar.py:99
msgid "Search"
msgstr "بحث"
#: Authenticator/widgets/headerbar.py:103 Authenticator/widgets/settings.py:212
msgid "Settings"
msgstr "الاعدادات"
#: Authenticator/widgets/headerbar.py:105
msgid "Selection mode"
msgstr "وضع الاختيار"
#: Authenticator/widgets/headerbar.py:107 Authenticator/widgets/utils.py:22
#: Authenticator/widgets/utils.py:48
msgid "Cancel"
msgstr "الغاء"
#: Authenticator/widgets/headerbar.py:183
msgid "Click on items to select them"
msgstr "اضغط على العناصر ليتم اختيارهم"
#: Authenticator/widgets/settings.py:139
msgid "Authentication Password"
msgstr "رقم سر الموثق"
#: Authenticator/widgets/settings.py:152
msgid "Old Password"
msgstr "الرقم السري القديم"
#: Authenticator/widgets/settings.py:156
msgid "Password"
msgstr "الرقم السري"
#: Authenticator/widgets/settings.py:159
msgid "Repeat Password"
msgstr "اعادة الرقم السري"
#: Authenticator/widgets/settings.py:229
msgid "Dark theme"
msgstr "الوضع المعتم"
#: Authenticator/widgets/settings.py:229
msgid "Use a dark theme, if possible"
msgstr "استخدم الوضع المعتم، ان امكن."
#: Authenticator/widgets/settings.py:232
msgid "Appearance"
msgstr "المظهر"
#: Authenticator/widgets/settings.py:236
msgid "Clear the database"
msgstr "تنظيف قاعدة البيانات"
#: Authenticator/widgets/settings.py:236
msgid "Erase existing accounts"
msgstr "مسح حسابات موجودة"
#: Authenticator/widgets/settings.py:240
msgid "Possibility to lock the application with a password"
msgstr "امكانية غلق التطبيق باستخدام رقم سري"
#: Authenticator/widgets/settings.py:243
msgid "Authentication password"
msgstr "رقم سر الموثق"
#: Authenticator/widgets/settings.py:244
msgid "Set up application authentication password"
msgstr "تثبيت رقم سري تطبيق الموثق"
#: Authenticator/widgets/settings.py:250
#, fuzzy
msgid "Behaviour"
msgstr "السلوك"
#: Authenticator/widgets/settings.py:259
msgid "The application needs to be restarted first."
msgstr "يحتاج التطبيق لإعادة التشغيل أولاً."
#: Authenticator/widgets/settings.py:288
msgid "The existing accounts will be erased in 5 seconds"
msgstr "الحسابات الحالية ستحذف في ٥ ثوان"
#: Authenticator/widgets/settings.py:292 Authenticator/widgets/window.py.in:217
msgid "Undo"
msgstr "تراجع"
#: Authenticator/widgets/utils.py:18
msgid "Open"
msgstr "فتح"
#: Authenticator/widgets/utils.py:32 Authenticator/widgets/utils.py:37
msgid "JSON files"
msgstr "ملف JSON"
#: Authenticator/widgets/utils.py:47
msgid "Select"
msgstr "اختيار"
#: Authenticator/widgets/window.py.in:213
msgid "An account or more were removed."
msgstr "حساب أو أكثر تم ازالتهم."
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:7
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:5
#, fuzzy
@ -274,6 +54,117 @@ msgstr "واجهة مستخدم جميلة"
msgid "Huge database of (290+) websites/applications"
msgstr "قاعدة بيانات ضخمة مكونة من (أكثر من ٢٩٠) موقع/تطبيق"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:34
msgid ""
"Since I have moved the application to GOME Gitlab's World group, a Flatpak "
"build for each new commit is available to download from the site's website."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:38
msgid "Backup and restore from a basic JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:39
#, fuzzy
msgid "Backup and restore from an encrypted-GPG JSON file"
msgstr "من OpenPGP مشفر ملف JSON"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:40
msgid "Add andOTP support (free and open Android 2FA application)"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:41
msgid "New Settings Widow with 3 sections: appearance, behavior and backup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:42
msgid "Fix Flatpak Build with the latest GNOME Runtime"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:43
msgid "Move the project to GOME Gitlab's World group"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:50
msgid "GNOME Shell Search provider"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:51
msgid "Codes expire simultaneously #91"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:58
msgid "Revamped main window to more closely follow the GNOME HIG"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:59
msgid "Revamped add a new account window to make it easier to use"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:60
msgid ""
"Possibility to add an account from a provider not listed in the shipped "
"database"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:61
msgid "Possibilty to edit an account"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:62
msgid "One Time Password now visible by default"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:69
msgid "Fix python-dbus by using GDbus instead"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:76
msgid "Fix the QRScanner on GNOME Shell"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:77
msgid "Add a new entry for the account's username"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:78
msgid "Updated database of supported accounts"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:85
msgid "HOTFIX: App not running in DE other than GNOME"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:92
#, fuzzy
msgid "Rename project to Authenticator"
msgstr "عن الموثق"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:93
#, fuzzy
msgid "Cleaner code base"
msgstr "تنظيف قاعدة البيانات"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:94
msgid "Faster startup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:95
msgid "Remove unneeded features"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:96
msgid "Switch to pyzbar instead of zbarlight"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:97
msgid "Flatpak package"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:104
msgid "Bilal Elmoussaoui"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:4
msgid "Two-factor authentication"
msgstr "التوثيق الثنائي"
@ -305,18 +196,91 @@ msgstr "تفعيل/تعطيل الوضع الليلي في التطبيق"
msgid "Default window maximized behaviour"
msgstr "السلوك الأقصى للنافذة الافتراضية"
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:21
msgid "Whether the application is locked with a password or not"
msgstr "سواء أكان التطبيق مغلق برقم سري أو لا"
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:26
msgid "Whether the application can be locked or not"
msgstr "سواء أكان التطبيق يمكن اغلاقه أو لا"
#: data/ui/about_dialog.ui.in:10
msgid "Two-factor authentication code generator."
msgstr "كود توليد التوثيق الثنائي."
#: data/ui/about_dialog.ui.in:13
msgid "translator-credits"
msgstr "فضل-المترجم"
#: data/ui/account_add.ui:24
msgid "Add a new account"
msgstr "اضافة حساب جديد"
#: data/ui/account_add.ui:27 data/ui/account_edit.ui:21
msgid "Close"
msgstr "اغلاق"
#: data/ui/account_add.ui:36
msgid "Add"
msgstr "اضافة"
#: data/ui/account_add.ui:56
#, fuzzy
msgid "Scan QR Code"
msgstr "امسح كود QR"
#: data/ui/account_edit.ui:30 data/ui/settings.ui.in:454
#: src/Authenticator/widgets/utils.py:34
msgid "Save"
msgstr "احفظ"
#: data/ui/account_row.ui:23
msgid "Edit"
msgstr "تحرير"
#: data/ui/account_row.ui:37
msgid "Delete"
msgstr "حذف"
#: data/ui/account_row.ui:92
msgid "Copy PIN to clipboard"
msgstr ""
#: data/ui/settings.ui.in:66
#, fuzzy
msgid "Behaviour"
msgstr "السلوك"
#: data/ui/settings.ui.in:100
msgid "Dark theme"
msgstr "الوضع المعتم"
#: data/ui/settings.ui.in:117
msgid "Use a dark theme, if possible"
msgstr "استخدم الوضع المعتم، ان امكن."
#: data/ui/settings.ui.in:179 src/Authenticator/application.py.in:91
msgid "Lock the application"
msgstr "اقفل التطبيق"
#: data/ui/settings.ui.in:196
#, fuzzy
msgid "Lock the application with a password"
msgstr "امكانية غلق التطبيق باستخدام رقم سري"
#: data/ui/settings.ui.in:279
msgid "Keep your accounts safer "
msgstr ""
#: data/ui/settings.ui.in:303
msgid "Password"
msgstr "الرقم السري"
#: data/ui/settings.ui.in:348
msgid "Repeat Password"
msgstr "اعادة الرقم السري"
#: data/ui/settings.ui.in:410
msgid "Settings"
msgstr "الاعدادات"
#: data/ui/settings.ui.in:427
#, fuzzy
msgid "Authenticator Password"
msgstr "رقم سر الموثق"
#: data/ui/shortcuts.ui:13
msgctxt "shortcut window"
msgid "General"
@ -353,33 +317,178 @@ msgstr "اضافة"
#: data/ui/shortcuts.ui:51
#, fuzzy
msgctxt "shortcut window"
msgid "Select"
msgstr "اختيار"
#: data/ui/shortcuts.ui:58
#, fuzzy
msgctxt "shortcut window"
msgid "Search"
msgstr "بحث"
#: authenticator.py.in:54
#: data/ui/window.ui.in:60
#, fuzzy
msgid "There are no accounts yet…"
msgstr "ليس هناك حساب بعد …"
#: data/ui/window.ui.in:187
#, fuzzy
msgid "Authenticator is locked"
msgstr "الموثق"
#: data/ui/window.ui.in:222
msgid "Unlock"
msgstr ""
#: src/authenticator.py.in:49
msgid "Start in debug mode"
msgstr "البدء في وضع التصحيح"
#: authenticator.py.in:56
#: src/authenticator.py.in:51
msgid "Authenticator version number"
msgstr "رقم نسخة الموثق"
#~ msgid "translator-credits"
#~ msgstr "فضل-المترجم"
#: src/Authenticator/application.py.in:99
#, fuzzy
msgid "from a plain-text JSON file"
msgstr "من ملف نص عادي Json"
#: src/Authenticator/application.py.in:100
#, fuzzy
msgid "in a plain-text JSON file"
msgstr "في نص عادي ملف JSON"
#: src/Authenticator/application.py.in:102
msgid "Restore"
msgstr "استرجاع"
#: src/Authenticator/application.py.in:103
msgid "Backup"
msgstr "نسخة احتياطية"
#. Night mode action
#: src/Authenticator/application.py.in:111
msgid "Preferences"
msgstr ""
#: src/Authenticator/application.py.in:112
msgid "Donate"
msgstr ""
#: src/Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr ""
#: src/Authenticator/application.py.in:114
#, fuzzy
msgid "About Authenticator"
msgstr "الموثق"
#: src/Authenticator/models/account.py:70
msgid "Default"
msgstr "الافتراضي"
#: src/Authenticator/widgets/accounts/add.py:204
msgid "Invalid QR code"
msgstr "رمز QR خاطئ"
#: src/Authenticator/widgets/accounts/edit.py:45
msgid "Edit {} - {}"
msgstr "تحرير {} - {}"
#: src/Authenticator/widgets/accounts/list.py:144
msgid "The One-Time Passwords expires in {} seconds"
msgstr "رقم سري المرة الواحدة سينتهي في {} ثانية"
#: src/Authenticator/widgets/accounts/row.py:75
msgid "Couldn't generate the secret code"
msgstr "لم يتكمن من توليد المفتاح السري"
#: src/Authenticator/widgets/settings.py:73
msgid "Authentication password was unset. Please restart the application"
msgstr ""
#: src/Authenticator/widgets/settings.py:81
msgid "Authentication password is now enabled. Please restart the application."
msgstr ""
#: src/Authenticator/widgets/utils.py:32
msgid "Open"
msgstr "فتح"
#: src/Authenticator/widgets/utils.py:36 src/Authenticator/widgets/utils.py:62
msgid "Cancel"
msgstr "الغاء"
#: src/Authenticator/widgets/utils.py:46 src/Authenticator/widgets/utils.py:51
msgid "JSON files"
msgstr "ملف JSON"
#: src/Authenticator/widgets/utils.py:61
msgid "Select"
msgstr "اختيار"
#~ msgid "Provider"
#~ msgstr "المزود"
#~ msgid "Account name"
#~ msgstr "اسم الحساب"
#, fuzzy
#~ msgid "Secret token"
#~ msgstr "الرمز السري"
#~ msgid "zbar library is not found. QRCode scanner will be disabled"
#~ msgstr "مكتبة zbar غير موجودة. سيتم تعطيل ماسح كود QR"
#~ msgid "Copy"
#~ msgstr "نسخ"
#~ msgid "Search"
#~ msgstr "بحث"
#~ msgid "Selection mode"
#~ msgstr "وضع الاختيار"
#~ msgid "Click on items to select them"
#~ msgstr "اضغط على العناصر ليتم اختيارهم"
#~ msgid "Old Password"
#~ msgstr "الرقم السري القديم"
#~ msgid "Appearance"
#~ msgstr "المظهر"
#~ msgid "Erase existing accounts"
#~ msgstr "مسح حسابات موجودة"
#~ msgid "Authentication password"
#~ msgstr "رقم سر الموثق"
#~ msgid "Set up application authentication password"
#~ msgstr "تثبيت رقم سري تطبيق الموثق"
#~ msgid "The application needs to be restarted first."
#~ msgstr "يحتاج التطبيق لإعادة التشغيل أولاً."
#~ msgid "The existing accounts will be erased in 5 seconds"
#~ msgstr "الحسابات الحالية ستحذف في ٥ ثوان"
#~ msgid "Undo"
#~ msgstr "تراجع"
#~ msgid "An account or more were removed."
#~ msgstr "حساب أو أكثر تم ازالتهم."
#~ msgid "Whether the application is locked with a password or not"
#~ msgstr "سواء أكان التطبيق مغلق برقم سري أو لا"
#~ msgid "Whether the application can be locked or not"
#~ msgstr "سواء أكان التطبيق يمكن اغلاقه أو لا"
#, fuzzy
#~ msgctxt "shortcut window"
#~ msgid "Select"
#~ msgstr "اختيار"
#, fuzzy
#~ msgid "Authenticator@NAME_SUFFIX@"
#~ msgstr "الموثق"
#~ msgid "from an OpenPGP-encrypted JSON file"
#~ msgstr "من OpenPGP مشفر ملف JSON"
#~ msgid "in an OpenPGP-encrypted JSON file"
#~ msgstr "في OpenPGP مشفر ملف JSON"
@ -416,10 +525,6 @@ msgstr "رقم نسخة الموثق"
#~ msgid "com.github.bilelmoussaoui.Authenticator"
#~ msgstr "com.github.bilelmoussaoui.Authenticator"
#, fuzzy
#~ msgid "Rename project to Authenticator"
#~ msgstr "عن الموثق"
#~ msgid "Next"
#~ msgstr "التالي"

625
po/ca.po
View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Authenticator\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-25 19:56+0100\n"
"POT-Creation-Date: 2019-02-11 22:35+0100\n"
"PO-Revision-Date: 2019-01-14 07:19+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fitojb@ubuntu.com>\n"
"Language-Team: Catalan <https://hosted.weblate.org/projects/authenticator/"
@ -19,227 +19,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.4-dev\n"
#: Authenticator/application.py.in:39
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:6
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:3
#: data/ui/window.ui.in:255 src/Authenticator/application.py.in:36
msgid "Authenticator"
msgstr "Authenticator"
#: Authenticator/application.py.in:91 Authenticator/widgets/settings.py:239
msgid "Lock the application"
msgstr "Bloca laplicació"
#: Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr "des dun fitxer JSON de text sense format"
#: Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr "en un fitxer JSON de text sense format"
#: Authenticator/application.py.in:102
msgid "Restore"
msgstr "Restaura"
#: Authenticator/application.py.in:103
msgid "Backup"
msgstr "Còpia de seguretat"
#. Night mode action
#: Authenticator/application.py.in:111
msgid "Preferences"
msgstr "Preferències"
#: Authenticator/application.py.in:112
msgid "Donate"
msgstr "Fes un donatiu"
#: Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr "Dreceres de teclat"
#: Authenticator/application.py.in:114
msgid "About Authenticator"
msgstr "Quant a lAuthenticator"
#: Authenticator/models/account.py:74
msgid "Default"
msgstr "Per defecte"
#: Authenticator/widgets/accounts/add.py:50
#: Authenticator/widgets/headerbar.py:101
msgid "Add a new account"
msgstr "Afegeix un compte nou"
#: Authenticator/widgets/accounts/add.py:54
msgid "Add"
msgstr "Afegeix"
#: Authenticator/widgets/accounts/add.py:62
msgid "Scan QR code"
msgstr "Escaneja un codi QR"
#: Authenticator/widgets/accounts/add.py:68
#: Authenticator/widgets/accounts/edit.py:58
msgid "Close"
msgstr "Tanca"
#: Authenticator/widgets/accounts/add.py:161
msgid "Provider"
msgstr "Proveïdor"
#: Authenticator/widgets/accounts/add.py:171
msgid "Account name"
msgstr "Nom del compte"
#: Authenticator/widgets/accounts/add.py:177
msgid "Secret token"
msgstr "Testimoni secret"
#: Authenticator/widgets/accounts/add.py:260
msgid "Invalid QR code"
msgstr "El codi QR no és vàlid"
#: Authenticator/widgets/accounts/add.py:268
msgid "zbar library is not found. QRCode scanner will be disabled"
msgstr ""
"No sha trobat la biblioteca zbar. Sinhabilitarà lescàner de codis QR"
#: Authenticator/widgets/accounts/edit.py:47
msgid "Edit {} - {}"
msgstr "Edita {} - {}"
#: Authenticator/widgets/accounts/edit.py:52
#: Authenticator/widgets/settings.py:143 Authenticator/widgets/utils.py:20
msgid "Save"
msgstr "Desa"
#: Authenticator/widgets/accounts/list.py:164
msgid "The One-Time Passwords expires in {} seconds"
msgstr "La contrasenya dun sol ús caducarà en {} segons"
#. Label
#: Authenticator/widgets/accounts/list.py:286
msgid "There are no accounts yet…"
msgstr "Encara no hi ha cap compte…"
#: Authenticator/widgets/accounts/row.py:59
msgid "Copy"
msgstr "Copia"
#: Authenticator/widgets/accounts/row.py:60
msgid "Edit"
msgstr "Edita"
#: Authenticator/widgets/accounts/row.py:150
msgid "Couldn't generate the secret code"
msgstr "No sha pogut generar el codi secret"
#: Authenticator/widgets/actions_bar.py:52
msgid "Delete"
msgstr "Suprimeix"
#: Authenticator/widgets/headerbar.py:99
msgid "Search"
msgstr "Cerca"
#: Authenticator/widgets/headerbar.py:103 Authenticator/widgets/settings.py:212
msgid "Settings"
msgstr "Paràmetres"
#: Authenticator/widgets/headerbar.py:105
msgid "Selection mode"
msgstr "Mode de selecció"
#: Authenticator/widgets/headerbar.py:107 Authenticator/widgets/utils.py:22
#: Authenticator/widgets/utils.py:48
msgid "Cancel"
msgstr "Cancel·la"
#: Authenticator/widgets/headerbar.py:183
msgid "Click on items to select them"
msgstr "Feu clic als elements per a seleccionar-los"
#: Authenticator/widgets/settings.py:139
msgid "Authentication Password"
msgstr "Contrasenya dautenticació"
#: Authenticator/widgets/settings.py:152
msgid "Old Password"
msgstr "Contrasenya anterior"
#: Authenticator/widgets/settings.py:156
msgid "Password"
msgstr "Contrasenya"
#: Authenticator/widgets/settings.py:159
msgid "Repeat Password"
msgstr "Repetiu la contrasenya"
#: Authenticator/widgets/settings.py:229
msgid "Dark theme"
msgstr "Tema fosc"
#: Authenticator/widgets/settings.py:229
msgid "Use a dark theme, if possible"
msgstr "Utilitza un tema fosc si és possible"
#: Authenticator/widgets/settings.py:232
msgid "Appearance"
msgstr "Aparença"
#: Authenticator/widgets/settings.py:236
msgid "Clear the database"
msgstr "Neteja la base de dades"
#: Authenticator/widgets/settings.py:236
msgid "Erase existing accounts"
msgstr "Esborra els comptes existents"
#: Authenticator/widgets/settings.py:240
msgid "Possibility to lock the application with a password"
msgstr "Possibilitat de blocar laplicació mitjançant una contrasenya"
#: Authenticator/widgets/settings.py:243
msgid "Authentication password"
msgstr "Contrasenya dautenticació"
#: Authenticator/widgets/settings.py:244
msgid "Set up application authentication password"
msgstr "Configura la contrasenya dautenticació de laplicació"
#: Authenticator/widgets/settings.py:250
msgid "Behaviour"
msgstr "Comportament"
#: Authenticator/widgets/settings.py:259
msgid "The application needs to be restarted first."
msgstr "Heu de reiniciar laplicació primer."
#: Authenticator/widgets/settings.py:288
msgid "The existing accounts will be erased in 5 seconds"
msgstr "Els comptes existents sesborraran en 5 segons"
#: Authenticator/widgets/settings.py:292 Authenticator/widgets/window.py.in:217
msgid "Undo"
msgstr "Desfés"
#: Authenticator/widgets/utils.py:18
msgid "Open"
msgstr "Obre"
#: Authenticator/widgets/utils.py:32 Authenticator/widgets/utils.py:37
msgid "JSON files"
msgstr "Fitxers JSON"
#: Authenticator/widgets/utils.py:47
msgid "Select"
msgstr "Selecciona"
#: Authenticator/widgets/window.py.in:213
msgid "An account or more were removed."
msgstr "Sha suprimit almenys un compte."
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:7
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:5
msgid "Two-factor authentication code generator"
@ -269,6 +54,125 @@ msgstr "Una interfície bonica"
msgid "Huge database of (290+) websites/applications"
msgstr "Una immensa base de dades de més de 290 llocs web i aplicacions"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:34
msgid ""
"Since I have moved the application to GOME Gitlab's World group, a Flatpak "
"build for each new commit is available to download from the site's website."
msgstr ""
"Com que vaig moure laplicació al grup «World» del GitLab del GNOME, hi ha "
"disponible una compilació nova per cada entrega de codi nova al lloc web de "
"laplicació."
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:38
msgid "Backup and restore from a basic JSON file"
msgstr "Còpia de seguretat i restauració des de fitxers JSON bàsics"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:39
msgid "Backup and restore from an encrypted-GPG JSON file"
msgstr ""
"Còpia de seguretat i restauració des de fitxers JSON xifrats amb el GPG"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:40
msgid "Add andOTP support (free and open Android 2FA application)"
msgstr ""
"Compatibilitat amb landOTP (aplicació lliure i oberta dautenticació amb "
"dos components per a lAndroid)"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:41
msgid "New Settings Widow with 3 sections: appearance, behavior and backup"
msgstr ""
"Nova finestra de configuració amb tres seccions: Aparença, Comportament i "
"Còpia de seguretat"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:42
msgid "Fix Flatpak Build with the latest GNOME Runtime"
msgstr ""
"Sha corregit la compilació Flatpak amb lentorn dexecució GNOME més recent"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:43
msgid "Move the project to GOME Gitlab's World group"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:50
msgid "GNOME Shell Search provider"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:51
msgid "Codes expire simultaneously #91"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:58
msgid "Revamped main window to more closely follow the GNOME HIG"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:59
msgid "Revamped add a new account window to make it easier to use"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:60
msgid ""
"Possibility to add an account from a provider not listed in the shipped "
"database"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:61
msgid "Possibilty to edit an account"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:62
msgid "One Time Password now visible by default"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:69
msgid "Fix python-dbus by using GDbus instead"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:76
msgid "Fix the QRScanner on GNOME Shell"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:77
msgid "Add a new entry for the account's username"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:78
msgid "Updated database of supported accounts"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:85
msgid "HOTFIX: App not running in DE other than GNOME"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:92
#, fuzzy
msgid "Rename project to Authenticator"
msgstr "Quant a lAuthenticator"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:93
#, fuzzy
msgid "Cleaner code base"
msgstr "Neteja la base de dades"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:94
msgid "Faster startup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:95
msgid "Remove unneeded features"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:96
msgid "Switch to pyzbar instead of zbarlight"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:97
msgid "Flatpak package"
msgstr "Paquet Flatpak"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:104
msgid "Bilal Elmoussaoui"
msgstr "Bilal Elmoussaoui"
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:4
msgid "Two-factor authentication"
msgstr "Autenticació amb dos components"
@ -298,18 +202,90 @@ msgstr "Habilita/inhabilita el mode nocturn dins de laplicació"
msgid "Default window maximized behaviour"
msgstr "Comportament per defecte de la finestra maximitzada"
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:21
msgid "Whether the application is locked with a password or not"
msgstr "Si sha blocat laplicació mitjançant una contrasenya o no"
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:26
msgid "Whether the application can be locked or not"
msgstr "Si laplicació es pot blocar o no"
#: data/ui/about_dialog.ui.in:10
msgid "Two-factor authentication code generator."
msgstr "Generador de codis dautenticació amb dos components."
#: data/ui/about_dialog.ui.in:13
msgid "translator-credits"
msgstr "Adolfo Jayme Barrientos <fitojb@ubuntu.com>, 2018"
#: data/ui/account_add.ui:24
msgid "Add a new account"
msgstr "Afegeix un compte nou"
#: data/ui/account_add.ui:27 data/ui/account_edit.ui:21
msgid "Close"
msgstr "Tanca"
#: data/ui/account_add.ui:36
msgid "Add"
msgstr "Afegeix"
#: data/ui/account_add.ui:56
#, fuzzy
msgid "Scan QR Code"
msgstr "Escaneja un codi QR"
#: data/ui/account_edit.ui:30 data/ui/settings.ui.in:454
#: src/Authenticator/widgets/utils.py:34
msgid "Save"
msgstr "Desa"
#: data/ui/account_row.ui:23
msgid "Edit"
msgstr "Edita"
#: data/ui/account_row.ui:37
msgid "Delete"
msgstr "Suprimeix"
#: data/ui/account_row.ui:92
msgid "Copy PIN to clipboard"
msgstr ""
#: data/ui/settings.ui.in:66
msgid "Behaviour"
msgstr "Comportament"
#: data/ui/settings.ui.in:100
msgid "Dark theme"
msgstr "Tema fosc"
#: data/ui/settings.ui.in:117
msgid "Use a dark theme, if possible"
msgstr "Utilitza un tema fosc si és possible"
#: data/ui/settings.ui.in:179 src/Authenticator/application.py.in:91
msgid "Lock the application"
msgstr "Bloca laplicació"
#: data/ui/settings.ui.in:196
#, fuzzy
msgid "Lock the application with a password"
msgstr "Possibilitat de blocar laplicació mitjançant una contrasenya"
#: data/ui/settings.ui.in:279
msgid "Keep your accounts safer "
msgstr ""
#: data/ui/settings.ui.in:303
msgid "Password"
msgstr "Contrasenya"
#: data/ui/settings.ui.in:348
msgid "Repeat Password"
msgstr "Repetiu la contrasenya"
#: data/ui/settings.ui.in:410
msgid "Settings"
msgstr "Paràmetres"
#: data/ui/settings.ui.in:427
#, fuzzy
msgid "Authenticator Password"
msgstr "Contrasenya dautenticació"
#: data/ui/shortcuts.ui:13
msgctxt "shortcut window"
msgid "General"
@ -342,24 +318,168 @@ msgstr "Afegeix"
#: data/ui/shortcuts.ui:51
msgctxt "shortcut window"
msgid "Select"
msgstr "Selecciona"
#: data/ui/shortcuts.ui:58
msgctxt "shortcut window"
msgid "Search"
msgstr "Cerca"
#: authenticator.py.in:54
#: data/ui/window.ui.in:60
msgid "There are no accounts yet…"
msgstr "Encara no hi ha cap compte…"
#: data/ui/window.ui.in:187
#, fuzzy
msgid "Authenticator is locked"
msgstr "Authenticator"
#: data/ui/window.ui.in:222
msgid "Unlock"
msgstr ""
#: src/authenticator.py.in:49
msgid "Start in debug mode"
msgstr "Inicia en mode de depuració"
#: authenticator.py.in:56
#: src/authenticator.py.in:51
msgid "Authenticator version number"
msgstr "Número de versió de lAuthenticator"
#~ msgid "translator-credits"
#~ msgstr "Adolfo Jayme Barrientos <fitojb@ubuntu.com>, 2018"
#: src/Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr "des dun fitxer JSON de text sense format"
#: src/Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr "en un fitxer JSON de text sense format"
#: src/Authenticator/application.py.in:102
msgid "Restore"
msgstr "Restaura"
#: src/Authenticator/application.py.in:103
msgid "Backup"
msgstr "Còpia de seguretat"
#. Night mode action
#: src/Authenticator/application.py.in:111
msgid "Preferences"
msgstr "Preferències"
#: src/Authenticator/application.py.in:112
msgid "Donate"
msgstr "Fes un donatiu"
#: src/Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr "Dreceres de teclat"
#: src/Authenticator/application.py.in:114
msgid "About Authenticator"
msgstr "Quant a lAuthenticator"
#: src/Authenticator/models/account.py:70
msgid "Default"
msgstr "Per defecte"
#: src/Authenticator/widgets/accounts/add.py:204
msgid "Invalid QR code"
msgstr "El codi QR no és vàlid"
#: src/Authenticator/widgets/accounts/edit.py:45
msgid "Edit {} - {}"
msgstr "Edita {} - {}"
#: src/Authenticator/widgets/accounts/list.py:144
msgid "The One-Time Passwords expires in {} seconds"
msgstr "La contrasenya dun sol ús caducarà en {} segons"
#: src/Authenticator/widgets/accounts/row.py:75
msgid "Couldn't generate the secret code"
msgstr "No sha pogut generar el codi secret"
#: src/Authenticator/widgets/settings.py:73
msgid "Authentication password was unset. Please restart the application"
msgstr ""
#: src/Authenticator/widgets/settings.py:81
msgid "Authentication password is now enabled. Please restart the application."
msgstr ""
#: src/Authenticator/widgets/utils.py:32
msgid "Open"
msgstr "Obre"
#: src/Authenticator/widgets/utils.py:36 src/Authenticator/widgets/utils.py:62
msgid "Cancel"
msgstr "Cancel·la"
#: src/Authenticator/widgets/utils.py:46 src/Authenticator/widgets/utils.py:51
msgid "JSON files"
msgstr "Fitxers JSON"
#: src/Authenticator/widgets/utils.py:61
msgid "Select"
msgstr "Selecciona"
#~ msgid "Provider"
#~ msgstr "Proveïdor"
#~ msgid "Account name"
#~ msgstr "Nom del compte"
#~ msgid "Secret token"
#~ msgstr "Testimoni secret"
#~ msgid "zbar library is not found. QRCode scanner will be disabled"
#~ msgstr ""
#~ "No sha trobat la biblioteca zbar. Sinhabilitarà lescàner de codis QR"
#~ msgid "Copy"
#~ msgstr "Copia"
#~ msgid "Search"
#~ msgstr "Cerca"
#~ msgid "Selection mode"
#~ msgstr "Mode de selecció"
#~ msgid "Click on items to select them"
#~ msgstr "Feu clic als elements per a seleccionar-los"
#~ msgid "Old Password"
#~ msgstr "Contrasenya anterior"
#~ msgid "Appearance"
#~ msgstr "Aparença"
#~ msgid "Erase existing accounts"
#~ msgstr "Esborra els comptes existents"
#~ msgid "Authentication password"
#~ msgstr "Contrasenya dautenticació"
#~ msgid "Set up application authentication password"
#~ msgstr "Configura la contrasenya dautenticació de laplicació"
#~ msgid "The application needs to be restarted first."
#~ msgstr "Heu de reiniciar laplicació primer."
#~ msgid "The existing accounts will be erased in 5 seconds"
#~ msgstr "Els comptes existents sesborraran en 5 segons"
#~ msgid "Undo"
#~ msgstr "Desfés"
#~ msgid "An account or more were removed."
#~ msgstr "Sha suprimit almenys un compte."
#~ msgid "Whether the application is locked with a password or not"
#~ msgstr "Si sha blocat laplicació mitjançant una contrasenya o no"
#~ msgid "Whether the application can be locked or not"
#~ msgstr "Si laplicació es pot blocar o no"
#~ msgctxt "shortcut window"
#~ msgid "Select"
#~ msgstr "Selecciona"
#, fuzzy
#~ msgid "Authenticator@NAME_SUFFIX@"
@ -406,40 +526,3 @@ msgstr "Número de versió de lAuthenticator"
#~ msgid "Backup Password"
#~ msgstr "Fes una còpia de seguretat de la contrasenya"
#~ msgid ""
#~ "Since I have moved the application to GOME Gitlab's World group, a "
#~ "Flatpak build for each new commit is available to download from the "
#~ "site's website."
#~ msgstr ""
#~ "Com que vaig moure laplicació al grup «World» del GitLab del GNOME, hi "
#~ "ha disponible una compilació nova per cada entrega de codi nova al lloc "
#~ "web de laplicació."
#~ msgid "Backup and restore from a basic JSON file"
#~ msgstr "Còpia de seguretat i restauració des de fitxers JSON bàsics"
#~ msgid "Backup and restore from an encrypted-GPG JSON file"
#~ msgstr ""
#~ "Còpia de seguretat i restauració des de fitxers JSON xifrats amb el GPG"
#~ msgid "Add andOTP support (free and open Android 2FA application)"
#~ msgstr ""
#~ "Compatibilitat amb landOTP (aplicació lliure i oberta dautenticació amb "
#~ "dos components per a lAndroid)"
#~ msgid "New Settings Widow with 3 sections: appearance, behavior and backup"
#~ msgstr ""
#~ "Nova finestra de configuració amb tres seccions: Aparença, Comportament i "
#~ "Còpia de seguretat"
#~ msgid "Fix Flatpak Build with the latest GNOME Runtime"
#~ msgstr ""
#~ "Sha corregit la compilació Flatpak amb lentorn dexecució GNOME més "
#~ "recent"
#~ msgid "Flatpak package"
#~ msgstr "Paquet Flatpak"
#~ msgid "Bilal Elmoussaoui"
#~ msgstr "Bilal Elmoussaoui"

583
po/da.po
View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-25 19:56+0100\n"
"POT-Creation-Date: 2019-02-11 22:35+0100\n"
"PO-Revision-Date: 2018-11-03 21:23+0000\n"
"Last-Translator: Jack Fredericksen <jack.a.fredericksen@gmail.com>\n"
"Language-Team: Danish <https://hosted.weblate.org/projects/authenticator/"
@ -19,240 +19,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.3-dev\n"
#: Authenticator/application.py.in:39
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:6
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:3
#: data/ui/window.ui.in:255 src/Authenticator/application.py.in:36
msgid "Authenticator"
msgstr "TofaktorAutentifikation"
#: Authenticator/application.py.in:91 Authenticator/widgets/settings.py:239
msgid "Lock the application"
msgstr "Lås applikationen"
#: Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr ""
#: Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr ""
#: Authenticator/application.py.in:102
msgid "Restore"
msgstr ""
#: Authenticator/application.py.in:103
msgid "Backup"
msgstr ""
#. Night mode action
#: Authenticator/application.py.in:111
msgid "Preferences"
msgstr ""
#: Authenticator/application.py.in:112
msgid "Donate"
msgstr ""
#: Authenticator/application.py.in:113
#, fuzzy
msgid "Keyboard Shortcuts"
msgstr "Genveje"
#: Authenticator/application.py.in:114
#, fuzzy
msgid "About Authenticator"
msgstr "TofaktorAutentifikation"
#: Authenticator/models/account.py:74
msgid "Default"
msgstr ""
#: Authenticator/widgets/accounts/add.py:50
#: Authenticator/widgets/headerbar.py:101
msgid "Add a new account"
msgstr "Tilføj en ny konto"
#: Authenticator/widgets/accounts/add.py:54
msgid "Add"
msgstr "Tilføj"
#: Authenticator/widgets/accounts/add.py:62
#, fuzzy
msgid "Scan QR code"
msgstr "Indskan en QR-kode"
#: Authenticator/widgets/accounts/add.py:68
#: Authenticator/widgets/accounts/edit.py:58
msgid "Close"
msgstr ""
#: Authenticator/widgets/accounts/add.py:161
msgid "Provider"
msgstr ""
#: Authenticator/widgets/accounts/add.py:171
#, fuzzy
msgid "Account name"
msgstr "Kontonavn"
#: Authenticator/widgets/accounts/add.py:177
#, fuzzy
msgid "Secret token"
msgstr "Hemmelig kode"
#: Authenticator/widgets/accounts/add.py:260
#, fuzzy
msgid "Invalid QR code"
msgstr "Indskan en QR-kode"
#: Authenticator/widgets/accounts/add.py:268
msgid "zbar library is not found. QRCode scanner will be disabled"
msgstr ""
#: Authenticator/widgets/accounts/edit.py:47
msgid "Edit {} - {}"
msgstr ""
#: Authenticator/widgets/accounts/edit.py:52
#: Authenticator/widgets/settings.py:143 Authenticator/widgets/utils.py:20
msgid "Save"
msgstr ""
#: Authenticator/widgets/accounts/list.py:164
msgid "The One-Time Passwords expires in {} seconds"
msgstr ""
#. Label
#: Authenticator/widgets/accounts/list.py:286
#, fuzzy
msgid "There are no accounts yet…"
msgstr "Der er ingen konto i øjeblikket"
#: Authenticator/widgets/accounts/row.py:59
msgid "Copy"
msgstr ""
#: Authenticator/widgets/accounts/row.py:60
msgid "Edit"
msgstr ""
#: Authenticator/widgets/accounts/row.py:150
msgid "Couldn't generate the secret code"
msgstr "Kunne ikke generere den hemmelige kode"
#: Authenticator/widgets/actions_bar.py:52
msgid "Delete"
msgstr ""
#: Authenticator/widgets/headerbar.py:99
msgid "Search"
msgstr "Søg"
#: Authenticator/widgets/headerbar.py:103 Authenticator/widgets/settings.py:212
msgid "Settings"
msgstr "Indstillinger"
#: Authenticator/widgets/headerbar.py:105
msgid "Selection mode"
msgstr "Udvælgelsesindstilling"
#: Authenticator/widgets/headerbar.py:107 Authenticator/widgets/utils.py:22
#: Authenticator/widgets/utils.py:48
msgid "Cancel"
msgstr "Afbryd"
#: Authenticator/widgets/headerbar.py:183
msgid "Click on items to select them"
msgstr ""
#: Authenticator/widgets/settings.py:139
#, fuzzy
msgid "Authentication Password"
msgstr "TofaktorAutentifikation"
#: Authenticator/widgets/settings.py:152
#, fuzzy
msgid "Old Password"
msgstr "Gammelt password"
#: Authenticator/widgets/settings.py:156
#, fuzzy
msgid "Password"
msgstr "Gammelt password"
#: Authenticator/widgets/settings.py:159
#, fuzzy
msgid "Repeat Password"
msgstr "Gentag nyt password"
#: Authenticator/widgets/settings.py:229
msgid "Dark theme"
msgstr ""
#: Authenticator/widgets/settings.py:229
msgid "Use a dark theme, if possible"
msgstr ""
#: Authenticator/widgets/settings.py:232
msgid "Appearance"
msgstr ""
#: Authenticator/widgets/settings.py:236
msgid "Clear the database"
msgstr ""
#: Authenticator/widgets/settings.py:236
msgid "Erase existing accounts"
msgstr ""
#: Authenticator/widgets/settings.py:240
msgid "Possibility to lock the application with a password"
msgstr ""
#: Authenticator/widgets/settings.py:243
#, fuzzy
msgid "Authentication password"
msgstr "TofaktorAutentifikation"
#: Authenticator/widgets/settings.py:244
msgid "Set up application authentication password"
msgstr ""
#: Authenticator/widgets/settings.py:250
#, fuzzy
msgid "Behaviour"
msgstr "Adfærd"
#: Authenticator/widgets/settings.py:259
msgid "The application needs to be restarted first."
msgstr ""
#: Authenticator/widgets/settings.py:288
msgid "The existing accounts will be erased in 5 seconds"
msgstr ""
#: Authenticator/widgets/settings.py:292 Authenticator/widgets/window.py.in:217
msgid "Undo"
msgstr "Fortryd"
#: Authenticator/widgets/utils.py:18
msgid "Open"
msgstr ""
#: Authenticator/widgets/utils.py:32 Authenticator/widgets/utils.py:37
msgid "JSON files"
msgstr ""
#: Authenticator/widgets/utils.py:47
#, fuzzy
msgid "Select"
msgstr "Udvælgelsesindstilling"
#: Authenticator/widgets/window.py.in:213
msgid "An account or more were removed."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:7
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:5
#, fuzzy
@ -284,6 +56,116 @@ msgstr ""
msgid "Huge database of (290+) websites/applications"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:34
msgid ""
"Since I have moved the application to GOME Gitlab's World group, a Flatpak "
"build for each new commit is available to download from the site's website."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:38
msgid "Backup and restore from a basic JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:39
msgid "Backup and restore from an encrypted-GPG JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:40
msgid "Add andOTP support (free and open Android 2FA application)"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:41
msgid "New Settings Widow with 3 sections: appearance, behavior and backup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:42
msgid "Fix Flatpak Build with the latest GNOME Runtime"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:43
msgid "Move the project to GOME Gitlab's World group"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:50
msgid "GNOME Shell Search provider"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:51
msgid "Codes expire simultaneously #91"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:58
msgid "Revamped main window to more closely follow the GNOME HIG"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:59
msgid "Revamped add a new account window to make it easier to use"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:60
msgid ""
"Possibility to add an account from a provider not listed in the shipped "
"database"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:61
msgid "Possibilty to edit an account"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:62
msgid "One Time Password now visible by default"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:69
msgid "Fix python-dbus by using GDbus instead"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:76
msgid "Fix the QRScanner on GNOME Shell"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:77
msgid "Add a new entry for the account's username"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:78
msgid "Updated database of supported accounts"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:85
msgid "HOTFIX: App not running in DE other than GNOME"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:92
#, fuzzy
msgid "Rename project to Authenticator"
msgstr "Om Gnome TofaktorAutentifikation"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:93
msgid "Cleaner code base"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:94
msgid "Faster startup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:95
#, fuzzy
msgid "Remove unneeded features"
msgstr "Fjern valgte konti"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:96
msgid "Switch to pyzbar instead of zbarlight"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:97
msgid "Flatpak package"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:104
msgid "Bilal Elmoussaoui"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:4
#, fuzzy
msgid "Two-factor authentication"
@ -314,19 +196,95 @@ msgstr ""
msgid "Default window maximized behaviour"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:21
msgid "Whether the application is locked with a password or not"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:26
msgid "Whether the application can be locked or not"
msgstr ""
#: data/ui/about_dialog.ui.in:10
#, fuzzy
msgid "Two-factor authentication code generator."
msgstr "TofaktorAutentifikation kodegenerator"
#: data/ui/about_dialog.ui.in:13
msgid "translator-credits"
msgstr ""
#: data/ui/account_add.ui:24
msgid "Add a new account"
msgstr "Tilføj en ny konto"
#: data/ui/account_add.ui:27 data/ui/account_edit.ui:21
msgid "Close"
msgstr ""
#: data/ui/account_add.ui:36
msgid "Add"
msgstr "Tilføj"
#: data/ui/account_add.ui:56
#, fuzzy
msgid "Scan QR Code"
msgstr "Indskan en QR-kode"
#: data/ui/account_edit.ui:30 data/ui/settings.ui.in:454
#: src/Authenticator/widgets/utils.py:34
msgid "Save"
msgstr ""
#: data/ui/account_row.ui:23
msgid "Edit"
msgstr ""
#: data/ui/account_row.ui:37
msgid "Delete"
msgstr ""
#: data/ui/account_row.ui:92
#, fuzzy
msgid "Copy PIN to clipboard"
msgstr "Kode \"%s\" kopieret til clipboard"
#: data/ui/settings.ui.in:66
#, fuzzy
msgid "Behaviour"
msgstr "Adfærd"
#: data/ui/settings.ui.in:100
msgid "Dark theme"
msgstr ""
#: data/ui/settings.ui.in:117
msgid "Use a dark theme, if possible"
msgstr ""
#: data/ui/settings.ui.in:179 src/Authenticator/application.py.in:91
msgid "Lock the application"
msgstr "Lås applikationen"
#: data/ui/settings.ui.in:196
#, fuzzy
msgid "Lock the application with a password"
msgstr "Lås applikationen"
#: data/ui/settings.ui.in:279
msgid "Keep your accounts safer "
msgstr ""
#: data/ui/settings.ui.in:303
#, fuzzy
msgid "Password"
msgstr "Gammelt password"
#: data/ui/settings.ui.in:348
#, fuzzy
msgid "Repeat Password"
msgstr "Gentag nyt password"
#: data/ui/settings.ui.in:410
msgid "Settings"
msgstr "Indstillinger"
#: data/ui/settings.ui.in:427
#, fuzzy
msgid "Authenticator Password"
msgstr "TofaktorAutentifikation"
#: data/ui/shortcuts.ui:13
msgctxt "shortcut window"
msgid "General"
@ -364,23 +322,142 @@ msgstr "Tilføj"
#: data/ui/shortcuts.ui:51
#, fuzzy
msgctxt "shortcut window"
msgid "Select"
msgstr "Udvælgelsesindstilling"
#: data/ui/shortcuts.ui:58
#, fuzzy
msgctxt "shortcut window"
msgid "Search"
msgstr "Søg"
#: authenticator.py.in:54
#: data/ui/window.ui.in:60
#, fuzzy
msgid "There are no accounts yet…"
msgstr "Der er ingen konto i øjeblikket"
#: data/ui/window.ui.in:187
#, fuzzy
msgid "Authenticator is locked"
msgstr "TofaktorAutentifikation"
#: data/ui/window.ui.in:222
msgid "Unlock"
msgstr "Lås op"
#: src/authenticator.py.in:49
msgid "Start in debug mode"
msgstr "Start i debug-tilstand"
#: authenticator.py.in:56
#: src/authenticator.py.in:51
msgid "Authenticator version number"
msgstr "Gnome-TofaktorAutentifikation versionsnummer"
#: src/Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr ""
#: src/Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr ""
#: src/Authenticator/application.py.in:102
msgid "Restore"
msgstr ""
#: src/Authenticator/application.py.in:103
msgid "Backup"
msgstr ""
#. Night mode action
#: src/Authenticator/application.py.in:111
msgid "Preferences"
msgstr ""
#: src/Authenticator/application.py.in:112
msgid "Donate"
msgstr ""
#: src/Authenticator/application.py.in:113
#, fuzzy
msgid "Keyboard Shortcuts"
msgstr "Genveje"
#: src/Authenticator/application.py.in:114
#, fuzzy
msgid "About Authenticator"
msgstr "TofaktorAutentifikation"
#: src/Authenticator/models/account.py:70
msgid "Default"
msgstr ""
#: src/Authenticator/widgets/accounts/add.py:204
#, fuzzy
msgid "Invalid QR code"
msgstr "Indskan en QR-kode"
#: src/Authenticator/widgets/accounts/edit.py:45
msgid "Edit {} - {}"
msgstr ""
#: src/Authenticator/widgets/accounts/list.py:144
msgid "The One-Time Passwords expires in {} seconds"
msgstr ""
#: src/Authenticator/widgets/accounts/row.py:75
msgid "Couldn't generate the secret code"
msgstr "Kunne ikke generere den hemmelige kode"
#: src/Authenticator/widgets/settings.py:73
msgid "Authentication password was unset. Please restart the application"
msgstr ""
#: src/Authenticator/widgets/settings.py:81
msgid "Authentication password is now enabled. Please restart the application."
msgstr ""
#: src/Authenticator/widgets/utils.py:32
msgid "Open"
msgstr ""
#: src/Authenticator/widgets/utils.py:36 src/Authenticator/widgets/utils.py:62
msgid "Cancel"
msgstr "Afbryd"
#: src/Authenticator/widgets/utils.py:46 src/Authenticator/widgets/utils.py:51
msgid "JSON files"
msgstr ""
#: src/Authenticator/widgets/utils.py:61
#, fuzzy
msgid "Select"
msgstr "Udvælgelsesindstilling"
#, fuzzy
#~ msgid "Account name"
#~ msgstr "Kontonavn"
#, fuzzy
#~ msgid "Secret token"
#~ msgstr "Hemmelig kode"
#~ msgid "Search"
#~ msgstr "Søg"
#~ msgid "Selection mode"
#~ msgstr "Udvælgelsesindstilling"
#, fuzzy
#~ msgid "Old Password"
#~ msgstr "Gammelt password"
#, fuzzy
#~ msgid "Authentication password"
#~ msgstr "TofaktorAutentifikation"
#~ msgid "Undo"
#~ msgstr "Fortryd"
#, fuzzy
#~ msgctxt "shortcut window"
#~ msgid "Select"
#~ msgstr "Udvælgelsesindstilling"
#, fuzzy
#~ msgid "Authenticator@NAME_SUFFIX@"
#~ msgstr "TofaktorAutentifikation"
@ -392,14 +469,6 @@ msgstr "Gnome-TofaktorAutentifikation versionsnummer"
#~ msgid "Backup Password"
#~ msgstr "Skift password"
#, fuzzy
#~ msgid "Rename project to Authenticator"
#~ msgstr "Om Gnome TofaktorAutentifikation"
#, fuzzy
#~ msgid "Remove unneeded features"
#~ msgstr "Fjern valgte konti"
#~ msgid "Next"
#~ msgstr "Næste"
@ -409,9 +478,6 @@ msgstr "Gnome-TofaktorAutentifikation versionsnummer"
#~ msgid "Two-Factor Authentication code generator"
#~ msgstr "TofaktorAutentifikation kodegenerator"
#~ msgid "Code \"%s\" copied to clipboard"
#~ msgstr "Kode \"%s\" kopieret til clipboard"
#~ msgid "Remove the account"
#~ msgstr "Fjern kontoen"
@ -454,9 +520,6 @@ msgstr "Gnome-TofaktorAutentifikation versionsnummer"
#~ msgid "Enter your password"
#~ msgstr "Indtast dit password"
#~ msgid "Unlock"
#~ msgstr "Lås op"
#~ msgid "Password protection"
#~ msgstr "Passwordbeskyttelse"

605
po/de.po
View file

@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-25 19:56+0100\n"
"PO-Revision-Date: 2019-02-10 22:09+0000\n"
"Last-Translator: HenRy <helge1o1o1@gmail.com>\n"
"POT-Creation-Date: 2019-02-11 22:35+0100\n"
"PO-Revision-Date: 2019-02-07 19:09+0000\n"
"Last-Translator: Hendrik Michaelsen <weblate@cryck.me>\n"
"Language-Team: German <https://hosted.weblate.org/projects/authenticator/"
"translation/de/>\n"
"Language: de\n"
@ -19,227 +19,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.5-dev\n"
#: Authenticator/application.py.in:39
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:6
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:3
#: data/ui/window.ui.in:255 src/Authenticator/application.py.in:36
msgid "Authenticator"
msgstr "Zweifaktor-Authentifizierung"
#: Authenticator/application.py.in:91 Authenticator/widgets/settings.py:239
msgid "Lock the application"
msgstr "Anwendung sperren"
#: Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr "aus einer Reintext-JSON-Datei"
#: Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr "in eine Reintext-JSON-Datei"
#: Authenticator/application.py.in:102
msgid "Restore"
msgstr "Wiederherstellen"
#: Authenticator/application.py.in:103
msgid "Backup"
msgstr "Sicherung"
#. Night mode action
#: Authenticator/application.py.in:111
msgid "Preferences"
msgstr "Präferenzen"
#: Authenticator/application.py.in:112
msgid "Donate"
msgstr "Spenden"
#: Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr "Tastenkürzel"
#: Authenticator/application.py.in:114
msgid "About Authenticator"
msgstr "Über Authenticator"
#: Authenticator/models/account.py:74
msgid "Default"
msgstr "Grundeinstellung"
#: Authenticator/widgets/accounts/add.py:50
#: Authenticator/widgets/headerbar.py:101
msgid "Add a new account"
msgstr "Neues Konto anlegen"
#: Authenticator/widgets/accounts/add.py:54
msgid "Add"
msgstr "Hinzufügen"
#: Authenticator/widgets/accounts/add.py:62
msgid "Scan QR code"
msgstr "QR-Code einlesen"
#: Authenticator/widgets/accounts/add.py:68
#: Authenticator/widgets/accounts/edit.py:58
msgid "Close"
msgstr "schließen"
#: Authenticator/widgets/accounts/add.py:161
msgid "Provider"
msgstr "Anbieter"
#: Authenticator/widgets/accounts/add.py:171
msgid "Account name"
msgstr "Kontoname"
#: Authenticator/widgets/accounts/add.py:177
msgid "Secret token"
msgstr "Geheimschlüssel"
#: Authenticator/widgets/accounts/add.py:260
msgid "Invalid QR code"
msgstr "Ungültiger QR Code"
#: Authenticator/widgets/accounts/add.py:268
msgid "zbar library is not found. QRCode scanner will be disabled"
msgstr ""
"zbar-Bibliothek wurde nicht gefunden. Der QRCode-Scanner wird deaktiviert"
#: Authenticator/widgets/accounts/edit.py:47
msgid "Edit {} - {}"
msgstr "Bearbeiten {} - {}"
#: Authenticator/widgets/accounts/edit.py:52
#: Authenticator/widgets/settings.py:143 Authenticator/widgets/utils.py:20
msgid "Save"
msgstr "Speichern"
#: Authenticator/widgets/accounts/list.py:164
msgid "The One-Time Passwords expires in {} seconds"
msgstr "Die Einmalpasswörter verfallen in {} Sekunden"
#. Label
#: Authenticator/widgets/accounts/list.py:286
msgid "There are no accounts yet…"
msgstr "Derzeit gibt es kein Konto…"
#: Authenticator/widgets/accounts/row.py:59
msgid "Copy"
msgstr "kopieren"
#: Authenticator/widgets/accounts/row.py:60
msgid "Edit"
msgstr "Bearbeiten"
#: Authenticator/widgets/accounts/row.py:150
msgid "Couldn't generate the secret code"
msgstr "Der geheime Code konnte nicht erzeugt werden"
#: Authenticator/widgets/actions_bar.py:52
msgid "Delete"
msgstr "Löschen"
#: Authenticator/widgets/headerbar.py:99
msgid "Search"
msgstr "Suche"
#: Authenticator/widgets/headerbar.py:103 Authenticator/widgets/settings.py:212
msgid "Settings"
msgstr "Einstellungen"
#: Authenticator/widgets/headerbar.py:105
msgid "Selection mode"
msgstr "Auswahlmodus"
#: Authenticator/widgets/headerbar.py:107 Authenticator/widgets/utils.py:22
#: Authenticator/widgets/utils.py:48
msgid "Cancel"
msgstr "Abbruch"
#: Authenticator/widgets/headerbar.py:183
msgid "Click on items to select them"
msgstr "Klicke auf Items, um sie auszuwählen"
#: Authenticator/widgets/settings.py:139
msgid "Authentication Password"
msgstr "Zweifaktor-Authentifizierung"
#: Authenticator/widgets/settings.py:152
msgid "Old Password"
msgstr "Altes Passwort"
#: Authenticator/widgets/settings.py:156
msgid "Password"
msgstr "Altes Passwort"
#: Authenticator/widgets/settings.py:159
msgid "Repeat Password"
msgstr "Passwort wiederholen"
#: Authenticator/widgets/settings.py:229
msgid "Dark theme"
msgstr "Dunkler Stil"
#: Authenticator/widgets/settings.py:229
msgid "Use a dark theme, if possible"
msgstr "Nach Möglichkeit ein dunkles Motiv verwenden"
#: Authenticator/widgets/settings.py:232
msgid "Appearance"
msgstr "Erscheinungsbild"
#: Authenticator/widgets/settings.py:236
msgid "Clear the database"
msgstr "Lösche die Datenbank"
#: Authenticator/widgets/settings.py:236
msgid "Erase existing accounts"
msgstr "Lösche die existierenden Accounts"
#: Authenticator/widgets/settings.py:240
msgid "Possibility to lock the application with a password"
msgstr "Möglichkeit, die Anwendung mit einem Passwort zu sperren"
#: Authenticator/widgets/settings.py:243
msgid "Authentication password"
msgstr "Zweifaktor-Authentifizierung"
#: Authenticator/widgets/settings.py:244
msgid "Set up application authentication password"
msgstr "Passwort für die Anwendungsauthentifizierung einrichten"
#: Authenticator/widgets/settings.py:250
msgid "Behaviour"
msgstr "Verhalten"
#: Authenticator/widgets/settings.py:259
msgid "The application needs to be restarted first."
msgstr "Die Anwendung muss zuerst neu gestartet werden."
#: Authenticator/widgets/settings.py:288
msgid "The existing accounts will be erased in 5 seconds"
msgstr "Der existierende Account wird in 5 Sekunden gelöscht"
#: Authenticator/widgets/settings.py:292 Authenticator/widgets/window.py.in:217
msgid "Undo"
msgstr "rückgängig machen"
#: Authenticator/widgets/utils.py:18
msgid "Open"
msgstr "Öffnen"
#: Authenticator/widgets/utils.py:32 Authenticator/widgets/utils.py:37
msgid "JSON files"
msgstr "JSON-Dateien"
#: Authenticator/widgets/utils.py:47
msgid "Select"
msgstr "Auswählen"
#: Authenticator/widgets/window.py.in:213
msgid "An account or more were removed."
msgstr "Ein oder mehrere Konten wurden entfernt."
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:7
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:5
msgid "Two-factor authentication code generator"
@ -269,6 +54,118 @@ msgstr "Schöne Benutzeroberfläche"
msgid "Huge database of (290+) websites/applications"
msgstr "Riesige Datenbank aus (290+) Webseiten/Anwendungen"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:34
msgid ""
"Since I have moved the application to GOME Gitlab's World group, a Flatpak "
"build for each new commit is available to download from the site's website."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:38
msgid "Backup and restore from a basic JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:39
#, fuzzy
msgid "Backup and restore from an encrypted-GPG JSON file"
msgstr "aus einer OpenPGP-verschlüsselten JSON-Datei"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:40
msgid "Add andOTP support (free and open Android 2FA application)"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:41
msgid "New Settings Widow with 3 sections: appearance, behavior and backup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:42
msgid "Fix Flatpak Build with the latest GNOME Runtime"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:43
msgid "Move the project to GOME Gitlab's World group"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:50
msgid "GNOME Shell Search provider"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:51
msgid "Codes expire simultaneously #91"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:58
msgid "Revamped main window to more closely follow the GNOME HIG"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:59
msgid "Revamped add a new account window to make it easier to use"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:60
msgid ""
"Possibility to add an account from a provider not listed in the shipped "
"database"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:61
msgid "Possibilty to edit an account"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:62
msgid "One Time Password now visible by default"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:69
msgid "Fix python-dbus by using GDbus instead"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:76
msgid "Fix the QRScanner on GNOME Shell"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:77
msgid "Add a new entry for the account's username"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:78
msgid "Updated database of supported accounts"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:85
msgid "HOTFIX: App not running in DE other than GNOME"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:92
#, fuzzy
msgid "Rename project to Authenticator"
msgstr "Zweifaktor-Authentifizierung"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:93
#, fuzzy
msgid "Cleaner code base"
msgstr "Lösche die Datenbank"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:94
msgid "Faster startup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:95
#, fuzzy
msgid "Remove unneeded features"
msgstr "gewählte Konten löschen"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:96
msgid "Switch to pyzbar instead of zbarlight"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:97
msgid "Flatpak package"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:104
msgid "Bilal Elmoussaoui"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:4
msgid "Two-factor authentication"
msgstr "Zweifaktor-Authentifizierung"
@ -298,18 +195,91 @@ msgstr "Nachtmodus innerhalb der Anwendung aktivieren/deaktivieren"
msgid "Default window maximized behaviour"
msgstr "Standardverhalten beim Maximieren des Fensters"
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:21
msgid "Whether the application is locked with a password or not"
msgstr "Ob die Anwendung mit einem Passwort gesperrt ist oder nicht"
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:26
msgid "Whether the application can be locked or not"
msgstr "Ob die Anwendung gesperrt werden kann oder nicht"
#: data/ui/about_dialog.ui.in:10
msgid "Two-factor authentication code generator."
msgstr "Codegenerator für Zweifaktor-Authentifizierung."
#: data/ui/about_dialog.ui.in:13
msgid "translator-credits"
msgstr "Danksagungen an Übersetzer"
#: data/ui/account_add.ui:24
msgid "Add a new account"
msgstr "Neues Konto anlegen"
#: data/ui/account_add.ui:27 data/ui/account_edit.ui:21
msgid "Close"
msgstr "schließen"
#: data/ui/account_add.ui:36
msgid "Add"
msgstr "Hinzufügen"
#: data/ui/account_add.ui:56
#, fuzzy
msgid "Scan QR Code"
msgstr "QR-Code einlesen"
#: data/ui/account_edit.ui:30 data/ui/settings.ui.in:454
#: src/Authenticator/widgets/utils.py:34
msgid "Save"
msgstr "Speichern"
#: data/ui/account_row.ui:23
msgid "Edit"
msgstr "Bearbeiten"
#: data/ui/account_row.ui:37
msgid "Delete"
msgstr "Löschen"
#: data/ui/account_row.ui:92
#, fuzzy
msgid "Copy PIN to clipboard"
msgstr "Code '%s' ist in die Zwischenablage kopiert"
#: data/ui/settings.ui.in:66
msgid "Behaviour"
msgstr "Verhalten"
#: data/ui/settings.ui.in:100
msgid "Dark theme"
msgstr "Dunkler Stil"
#: data/ui/settings.ui.in:117
msgid "Use a dark theme, if possible"
msgstr "Nach Möglichkeit ein dunkles Motiv verwenden"
#: data/ui/settings.ui.in:179 src/Authenticator/application.py.in:91
msgid "Lock the application"
msgstr "Anwendung sperren"
#: data/ui/settings.ui.in:196
#, fuzzy
msgid "Lock the application with a password"
msgstr "Möglichkeit, die Anwendung mit einem Passwort zu sperren"
#: data/ui/settings.ui.in:279
msgid "Keep your accounts safer "
msgstr ""
#: data/ui/settings.ui.in:303
msgid "Password"
msgstr "Altes Passwort"
#: data/ui/settings.ui.in:348
msgid "Repeat Password"
msgstr "Passwort wiederholen"
#: data/ui/settings.ui.in:410
msgid "Settings"
msgstr "Einstellungen"
#: data/ui/settings.ui.in:427
#, fuzzy
msgid "Authenticator Password"
msgstr "Zweifaktor-Authentifizierung"
#: data/ui/shortcuts.ui:13
msgctxt "shortcut window"
msgid "General"
@ -341,33 +311,176 @@ msgid "Add"
msgstr "Hinzufügen"
#: data/ui/shortcuts.ui:51
msgctxt "shortcut window"
msgid "Select"
msgstr "Auswählen"
#: data/ui/shortcuts.ui:58
#, fuzzy
msgctxt "shortcut window"
msgid "Search"
msgstr "Suchen"
#: authenticator.py.in:54
#: data/ui/window.ui.in:60
msgid "There are no accounts yet…"
msgstr "Derzeit gibt es kein Konto…"
#: data/ui/window.ui.in:187
#, fuzzy
msgid "Authenticator is locked"
msgstr "Zweifaktor-Authentifizierung"
#: data/ui/window.ui.in:222
msgid "Unlock"
msgstr "Entsperren"
#: src/authenticator.py.in:49
msgid "Start in debug mode"
msgstr "Starte im Fehlersuch-Modus"
#: authenticator.py.in:56
#: src/authenticator.py.in:51
msgid "Authenticator version number"
msgstr "Versions des Authenticator"
#~ msgid "translator-credits"
#~ msgstr "Danksagungen an Übersetzer"
#: src/Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr "aus einer Reintext-JSON-Datei"
#: src/Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr "in eine Reintext-JSON-Datei"
#: src/Authenticator/application.py.in:102
msgid "Restore"
msgstr "Wiederherstellen"
#: src/Authenticator/application.py.in:103
msgid "Backup"
msgstr "Sicherung"
#. Night mode action
#: src/Authenticator/application.py.in:111
msgid "Preferences"
msgstr "Präferenzen"
#: src/Authenticator/application.py.in:112
msgid "Donate"
msgstr "Spenden"
#: src/Authenticator/application.py.in:113
#, fuzzy
msgid "Keyboard Shortcuts"
msgstr "Tastenkürzel"
#: src/Authenticator/application.py.in:114
msgid "About Authenticator"
msgstr "Über Authenticator"
#: src/Authenticator/models/account.py:70
msgid "Default"
msgstr "Grundeinstellung"
#: src/Authenticator/widgets/accounts/add.py:204
msgid "Invalid QR code"
msgstr "Ungültiger QR Code"
#: src/Authenticator/widgets/accounts/edit.py:45
msgid "Edit {} - {}"
msgstr "Bearbeiten {} - {}"
#: src/Authenticator/widgets/accounts/list.py:144
msgid "The One-Time Passwords expires in {} seconds"
msgstr "Die Einmalpasswörter verfallen in {} Sekunden"
#: src/Authenticator/widgets/accounts/row.py:75
msgid "Couldn't generate the secret code"
msgstr "Der geheime Code konnte nicht erzeugt werden"
#: src/Authenticator/widgets/settings.py:73
msgid "Authentication password was unset. Please restart the application"
msgstr ""
#: src/Authenticator/widgets/settings.py:81
msgid "Authentication password is now enabled. Please restart the application."
msgstr ""
#: src/Authenticator/widgets/utils.py:32
msgid "Open"
msgstr "Öffnen"
#: src/Authenticator/widgets/utils.py:36 src/Authenticator/widgets/utils.py:62
msgid "Cancel"
msgstr "Abbruch"
#: src/Authenticator/widgets/utils.py:46 src/Authenticator/widgets/utils.py:51
msgid "JSON files"
msgstr "JSON-Dateien"
#: src/Authenticator/widgets/utils.py:61
msgid "Select"
msgstr "Auswählen"
#~ msgid "Provider"
#~ msgstr "Anbieter"
#~ msgid "Account name"
#~ msgstr "Kontoname"
#~ msgid "Secret token"
#~ msgstr "Geheimschlüssel"
#~ msgid "zbar library is not found. QRCode scanner will be disabled"
#~ msgstr ""
#~ "zbar-Bibliothek wurde nicht gefunden. Der QRCode-Scanner wird deaktiviert"
#~ msgid "Copy"
#~ msgstr "kopieren"
#~ msgid "Search"
#~ msgstr "Suche"
#~ msgid "Selection mode"
#~ msgstr "Auswahlmodus"
#~ msgid "Click on items to select them"
#~ msgstr "Klicke auf Items, um sie auszuwählen"
#~ msgid "Old Password"
#~ msgstr "Altes Passwort"
#~ msgid "Appearance"
#~ msgstr "Erscheinungsbild"
#~ msgid "Erase existing accounts"
#~ msgstr "Lösche die existierenden Accounts"
#~ msgid "Authentication password"
#~ msgstr "Zweifaktor-Authentifizierung"
#~ msgid "Set up application authentication password"
#~ msgstr "Passwort für die Anwendungsauthentifizierung einrichten"
#~ msgid "The application needs to be restarted first."
#~ msgstr "Die Anwendung muss zuerst neu gestartet werden."
#~ msgid "The existing accounts will be erased in 5 seconds"
#~ msgstr "Der existierende Account wird in 5 Sekunden gelöscht"
#~ msgid "Undo"
#~ msgstr "rückgängig machen"
#~ msgid "An account or more were removed."
#~ msgstr "Ein oder mehrere Konten wurden entfernt."
#~ msgid "Whether the application is locked with a password or not"
#~ msgstr "Ob die Anwendung mit einem Passwort gesperrt ist oder nicht"
#~ msgid "Whether the application can be locked or not"
#~ msgstr "Ob die Anwendung gesperrt werden kann oder nicht"
#~ msgctxt "shortcut window"
#~ msgid "Select"
#~ msgstr "Auswählen"
#, fuzzy
#~ msgid "Authenticator@NAME_SUFFIX@"
#~ msgstr "Zweifaktor-Authentifizierung"
#~ msgid "from an OpenPGP-encrypted JSON file"
#~ msgstr "aus einer OpenPGP-verschlüsselten JSON-Datei"
#~ msgid "in an OpenPGP-encrypted JSON file"
#~ msgstr "in eine OpenPGP-verschlüsselten JSON-Datei"
@ -408,14 +521,6 @@ msgstr "Versions des Authenticator"
#~ msgid "Backup Password"
#~ msgstr "Passwort ändern"
#, fuzzy
#~ msgid "Rename project to Authenticator"
#~ msgstr "Zweifaktor-Authentifizierung"
#, fuzzy
#~ msgid "Remove unneeded features"
#~ msgstr "gewählte Konten löschen"
#~ msgid "Next"
#~ msgstr "weiter"
@ -428,9 +533,6 @@ msgstr "Versions des Authenticator"
#~ msgid "TwoFactorAuth"
#~ msgstr "ZweiFaktorAuth"
#~ msgid "Code \"%s\" copied to clipboard"
#~ msgstr "Code '%s' ist in die Zwischenablage kopiert"
#~ msgid "Remove the account"
#~ msgstr "Konto löschen"
@ -473,9 +575,6 @@ msgstr "Versions des Authenticator"
#~ msgid "Enter your password"
#~ msgstr "gebe dein Passwort ein"
#~ msgid "Unlock"
#~ msgstr "Entsperren"
#~ msgid "Password protection"
#~ msgstr "Passwortschutz"

702
po/es.po
View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Authenticator\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-25 19:56+0100\n"
"POT-Creation-Date: 2019-02-11 22:35+0100\n"
"PO-Revision-Date: 2019-01-01 10:42+0000\n"
"Last-Translator: advocatux <advocatux@airpost.net>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/authenticator/"
@ -19,227 +19,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.4-dev\n"
#: Authenticator/application.py.in:39
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:6
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:3
#: data/ui/window.ui.in:255 src/Authenticator/application.py.in:36
msgid "Authenticator"
msgstr "Authenticator"
#: Authenticator/application.py.in:91 Authenticator/widgets/settings.py:239
msgid "Lock the application"
msgstr "Bloquear la aplicación"
#: Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr "desde un archivo JSON de texto sencillo"
#: Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr "en un archivo JSON de texto sencillo"
#: Authenticator/application.py.in:102
msgid "Restore"
msgstr "Restaurar"
#: Authenticator/application.py.in:103
msgid "Backup"
msgstr "Copia de seguridad"
#. Night mode action
#: Authenticator/application.py.in:111
msgid "Preferences"
msgstr "Preferencias"
#: Authenticator/application.py.in:112
msgid "Donate"
msgstr "Donar"
#: Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr "Atajos de teclado"
#: Authenticator/application.py.in:114
msgid "About Authenticator"
msgstr "Acerca de Authenticator"
#: Authenticator/models/account.py:74
msgid "Default"
msgstr "Predeterminado"
#: Authenticator/widgets/accounts/add.py:50
#: Authenticator/widgets/headerbar.py:101
msgid "Add a new account"
msgstr "Añadir una cuenta nueva"
#: Authenticator/widgets/accounts/add.py:54
msgid "Add"
msgstr "Añadir"
#: Authenticator/widgets/accounts/add.py:62
msgid "Scan QR code"
msgstr "Escanear código QR"
#: Authenticator/widgets/accounts/add.py:68
#: Authenticator/widgets/accounts/edit.py:58
msgid "Close"
msgstr "Cerrar"
#: Authenticator/widgets/accounts/add.py:161
msgid "Provider"
msgstr "Proveedor"
#: Authenticator/widgets/accounts/add.py:171
msgid "Account name"
msgstr "Nombre de la cuenta"
#: Authenticator/widgets/accounts/add.py:177
msgid "Secret token"
msgstr "Ficha secreta"
#: Authenticator/widgets/accounts/add.py:260
msgid "Invalid QR code"
msgstr "Código QR no válido"
#: Authenticator/widgets/accounts/add.py:268
msgid "zbar library is not found. QRCode scanner will be disabled"
msgstr ""
"No se encontró la biblioteca «zbar». Se desactivará el escáner de códigos QR"
#: Authenticator/widgets/accounts/edit.py:47
msgid "Edit {} - {}"
msgstr "Editar {} - {}"
#: Authenticator/widgets/accounts/edit.py:52
#: Authenticator/widgets/settings.py:143 Authenticator/widgets/utils.py:20
msgid "Save"
msgstr "Guardar"
#: Authenticator/widgets/accounts/list.py:164
msgid "The One-Time Passwords expires in {} seconds"
msgstr "Las contraseñas de un solo uso caducan en {} segundos"
#. Label
#: Authenticator/widgets/accounts/list.py:286
msgid "There are no accounts yet…"
msgstr "No hay ninguna cuenta aún…"
#: Authenticator/widgets/accounts/row.py:59
msgid "Copy"
msgstr "Copiar"
#: Authenticator/widgets/accounts/row.py:60
msgid "Edit"
msgstr "Editar"
#: Authenticator/widgets/accounts/row.py:150
msgid "Couldn't generate the secret code"
msgstr "No se pudo generar el código secreto"
#: Authenticator/widgets/actions_bar.py:52
msgid "Delete"
msgstr "Eliminar"
#: Authenticator/widgets/headerbar.py:99
msgid "Search"
msgstr "Buscar"
#: Authenticator/widgets/headerbar.py:103 Authenticator/widgets/settings.py:212
msgid "Settings"
msgstr "Configuración"
#: Authenticator/widgets/headerbar.py:105
msgid "Selection mode"
msgstr "Modo de selección"
#: Authenticator/widgets/headerbar.py:107 Authenticator/widgets/utils.py:22
#: Authenticator/widgets/utils.py:48
msgid "Cancel"
msgstr "Cancelar"
#: Authenticator/widgets/headerbar.py:183
msgid "Click on items to select them"
msgstr "Pulse en los elementos para seleccionarlos"
#: Authenticator/widgets/settings.py:139
msgid "Authentication Password"
msgstr "Contraseña de autenticación"
#: Authenticator/widgets/settings.py:152
msgid "Old Password"
msgstr "Contraseña antigua"
#: Authenticator/widgets/settings.py:156
msgid "Password"
msgstr "Contraseña"
#: Authenticator/widgets/settings.py:159
msgid "Repeat Password"
msgstr "Repetir contraseña"
#: Authenticator/widgets/settings.py:229
msgid "Dark theme"
msgstr "Tema oscuro"
#: Authenticator/widgets/settings.py:229
msgid "Use a dark theme, if possible"
msgstr "Usar un tema oscuro, si es posible"
#: Authenticator/widgets/settings.py:232
msgid "Appearance"
msgstr "Aspecto"
#: Authenticator/widgets/settings.py:236
msgid "Clear the database"
msgstr "Vaciar la base de datos"
#: Authenticator/widgets/settings.py:236
msgid "Erase existing accounts"
msgstr "Eliminar las cuentas existentes"
#: Authenticator/widgets/settings.py:240
msgid "Possibility to lock the application with a password"
msgstr "Posibilidad de bloquear la aplicación con una contraseña"
#: Authenticator/widgets/settings.py:243
msgid "Authentication password"
msgstr "Contraseña de autenticación"
#: Authenticator/widgets/settings.py:244
msgid "Set up application authentication password"
msgstr "Configurar la contraseña de autenticación de la aplicación"
#: Authenticator/widgets/settings.py:250
msgid "Behaviour"
msgstr "Comportamiento"
#: Authenticator/widgets/settings.py:259
msgid "The application needs to be restarted first."
msgstr "Se necesita reiniciar la aplicación primero."
#: Authenticator/widgets/settings.py:288
msgid "The existing accounts will be erased in 5 seconds"
msgstr "Las cuentas existentes se eliminarán en 5 segundos"
#: Authenticator/widgets/settings.py:292 Authenticator/widgets/window.py.in:217
msgid "Undo"
msgstr "Deshacer"
#: Authenticator/widgets/utils.py:18
msgid "Open"
msgstr "Abrir"
#: Authenticator/widgets/utils.py:32 Authenticator/widgets/utils.py:37
msgid "JSON files"
msgstr "Archivos JSON"
#: Authenticator/widgets/utils.py:47
msgid "Select"
msgstr "Seleccionar"
#: Authenticator/widgets/window.py.in:213
msgid "An account or more were removed."
msgstr "Al menos una cuenta ha sido eliminada."
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:7
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:5
msgid "Two-factor authentication code generator"
@ -269,6 +54,131 @@ msgstr "Excelente interfaz de usuario"
msgid "Huge database of (290+) websites/applications"
msgstr "Enorme (+290) base de datos de sitios web y aplicaciones"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:34
msgid ""
"Since I have moved the application to GOME Gitlab's World group, a Flatpak "
"build for each new commit is available to download from the site's website."
msgstr ""
"Como hemos trasladado la aplicación al grupo «World» de la instancia GitLab "
"de GNOME, hay disponible una compilación Flatpak por cada consigna nueva en "
"el sitio web de la aplicación."
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:38
msgid "Backup and restore from a basic JSON file"
msgstr "Copia de seguridad y restauración a partir de un archivo JSON básico"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:39
msgid "Backup and restore from an encrypted-GPG JSON file"
msgstr ""
"Copia de seguridad y restauración a partir de un archivo JSON cifrado con GPG"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:40
msgid "Add andOTP support (free and open Android 2FA application)"
msgstr ""
"Se añadió compatibilidad con andOTP (aplicación libre y abierta de 2FA para "
"Android)"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:41
msgid "New Settings Widow with 3 sections: appearance, behavior and backup"
msgstr ""
"Renovación de la ventana de configuración con tres secciones: Aspecto, "
"Comportamiento y Copia de seguridad"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:42
msgid "Fix Flatpak Build with the latest GNOME Runtime"
msgstr ""
"Se reparó la compilación Flatpak con el entorno de ejecución de GNOME más "
"reciente"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:43
msgid "Move the project to GOME Gitlab's World group"
msgstr "Se trasladó el proyecto al grupo «World» del GitLab de GNOME"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:50
msgid "GNOME Shell Search provider"
msgstr "Proveedor de búsquedas para GNOME Shell"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:51
msgid "Codes expire simultaneously #91"
msgstr "Los códigos caducan simultáneamente #91"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:58
msgid "Revamped main window to more closely follow the GNOME HIG"
msgstr ""
"Reformada la ventana principal para seguir más de cerca las directrices "
"sobre la interfaz humana (HIG) de GNOME"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:59
msgid "Revamped add a new account window to make it easier to use"
msgstr "Reformada la ventana de adición de cuentas para facilitar su uso"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:60
msgid ""
"Possibility to add an account from a provider not listed in the shipped "
"database"
msgstr ""
"Posibilidad de añadir una cuenta de un proveedor que no esté incluido en la "
"base de datos incorporada"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:61
msgid "Possibilty to edit an account"
msgstr "Posibilidad de editar una cuenta"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:62
msgid "One Time Password now visible by default"
msgstr ""
"Las contraseñas de un solo uso son ahora visibles de manera predeterminada"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:69
msgid "Fix python-dbus by using GDbus instead"
msgstr "Arreglado el problema de «python-dbus» al usar «GDbus» ahora"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:76
msgid "Fix the QRScanner on GNOME Shell"
msgstr "Arreglado QRScanner cuando se usa en la «shell» de GNOME"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:77
msgid "Add a new entry for the account's username"
msgstr "Se añadió una entrada nueva para el nombre de usuario de la cuenta"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:78
msgid "Updated database of supported accounts"
msgstr "Se actualizó la base de datos de cuentas admitidas"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:85
msgid "HOTFIX: App not running in DE other than GNOME"
msgstr ""
"ARREGLO RÁPIDO: la aplicación no funcionaba en entornos de escritorio "
"distintos de GNOME"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:92
msgid "Rename project to Authenticator"
msgstr "Renombrado el proyecto a «Authenticator»"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:93
msgid "Cleaner code base"
msgstr "Una base de código más limpio"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:94
msgid "Faster startup"
msgstr "Arranque más rápido"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:95
msgid "Remove unneeded features"
msgstr "Eliminadas las características innecesarias"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:96
msgid "Switch to pyzbar instead of zbarlight"
msgstr "Se cambió a «pyzbar» en sustitución de «zbarlight»"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:97
msgid "Flatpak package"
msgstr "Paquete Flatpak"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:104
msgid "Bilal Elmoussaoui"
msgstr "Bilal Elmoussaoui"
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:4
msgid "Two-factor authentication"
msgstr "Autenticación de doble factor"
@ -298,18 +208,92 @@ msgstr "Activar/desactivar el modo nocturno desde dentro de la aplicación"
msgid "Default window maximized behaviour"
msgstr "Comportamiento predeterminado al maximizar la ventana"
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:21
msgid "Whether the application is locked with a password or not"
msgstr "Si la aplicación está bloqueada con una contraseña o no"
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:26
msgid "Whether the application can be locked or not"
msgstr "Si se puede bloquear la aplicación o no"
#: data/ui/about_dialog.ui.in:10
msgid "Two-factor authentication code generator."
msgstr "Generador de códigos de autenticación de doble factor."
#: data/ui/about_dialog.ui.in:13
msgid "translator-credits"
msgstr ""
"advocatux <advocatux@airpost.net>, 2018\n"
"Adolfo Jayme Barrientos <fitojb@ubuntu.com>, 2018"
#: data/ui/account_add.ui:24
msgid "Add a new account"
msgstr "Añadir una cuenta nueva"
#: data/ui/account_add.ui:27 data/ui/account_edit.ui:21
msgid "Close"
msgstr "Cerrar"
#: data/ui/account_add.ui:36
msgid "Add"
msgstr "Añadir"
#: data/ui/account_add.ui:56
#, fuzzy
msgid "Scan QR Code"
msgstr "Escanear código QR"
#: data/ui/account_edit.ui:30 data/ui/settings.ui.in:454
#: src/Authenticator/widgets/utils.py:34
msgid "Save"
msgstr "Guardar"
#: data/ui/account_row.ui:23
msgid "Edit"
msgstr "Editar"
#: data/ui/account_row.ui:37
msgid "Delete"
msgstr "Eliminar"
#: data/ui/account_row.ui:92
msgid "Copy PIN to clipboard"
msgstr ""
#: data/ui/settings.ui.in:66
msgid "Behaviour"
msgstr "Comportamiento"
#: data/ui/settings.ui.in:100
msgid "Dark theme"
msgstr "Tema oscuro"
#: data/ui/settings.ui.in:117
msgid "Use a dark theme, if possible"
msgstr "Usar un tema oscuro, si es posible"
#: data/ui/settings.ui.in:179 src/Authenticator/application.py.in:91
msgid "Lock the application"
msgstr "Bloquear la aplicación"
#: data/ui/settings.ui.in:196
#, fuzzy
msgid "Lock the application with a password"
msgstr "Posibilidad de bloquear la aplicación con una contraseña"
#: data/ui/settings.ui.in:279
msgid "Keep your accounts safer "
msgstr ""
#: data/ui/settings.ui.in:303
msgid "Password"
msgstr "Contraseña"
#: data/ui/settings.ui.in:348
msgid "Repeat Password"
msgstr "Repetir contraseña"
#: data/ui/settings.ui.in:410
msgid "Settings"
msgstr "Configuración"
#: data/ui/settings.ui.in:427
#, fuzzy
msgid "Authenticator Password"
msgstr "Contraseña de autenticación"
#: data/ui/shortcuts.ui:13
msgctxt "shortcut window"
msgid "General"
@ -342,26 +326,172 @@ msgstr "Añadir"
#: data/ui/shortcuts.ui:51
msgctxt "shortcut window"
msgid "Select"
msgstr "Seleccionar"
#: data/ui/shortcuts.ui:58
msgctxt "shortcut window"
msgid "Search"
msgstr "Buscar"
#: authenticator.py.in:54
#: data/ui/window.ui.in:60
msgid "There are no accounts yet…"
msgstr "No hay ninguna cuenta aún…"
#: data/ui/window.ui.in:187
#, fuzzy
msgid "Authenticator is locked"
msgstr "Authenticator"
#: data/ui/window.ui.in:222
msgid "Unlock"
msgstr ""
#: src/authenticator.py.in:49
msgid "Start in debug mode"
msgstr "Iniciar en el modo de depuración"
#: authenticator.py.in:56
#: src/authenticator.py.in:51
msgid "Authenticator version number"
msgstr "Número de versión de «Authenticator»"
#~ msgid "translator-credits"
#: src/Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr "desde un archivo JSON de texto sencillo"
#: src/Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr "en un archivo JSON de texto sencillo"
#: src/Authenticator/application.py.in:102
msgid "Restore"
msgstr "Restaurar"
#: src/Authenticator/application.py.in:103
msgid "Backup"
msgstr "Copia de seguridad"
#. Night mode action
#: src/Authenticator/application.py.in:111
msgid "Preferences"
msgstr "Preferencias"
#: src/Authenticator/application.py.in:112
msgid "Donate"
msgstr "Donar"
#: src/Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr "Atajos de teclado"
#: src/Authenticator/application.py.in:114
msgid "About Authenticator"
msgstr "Acerca de Authenticator"
#: src/Authenticator/models/account.py:70
msgid "Default"
msgstr "Predeterminado"
#: src/Authenticator/widgets/accounts/add.py:204
msgid "Invalid QR code"
msgstr "Código QR no válido"
#: src/Authenticator/widgets/accounts/edit.py:45
msgid "Edit {} - {}"
msgstr "Editar {} - {}"
#: src/Authenticator/widgets/accounts/list.py:144
msgid "The One-Time Passwords expires in {} seconds"
msgstr "Las contraseñas de un solo uso caducan en {} segundos"
#: src/Authenticator/widgets/accounts/row.py:75
msgid "Couldn't generate the secret code"
msgstr "No se pudo generar el código secreto"
#: src/Authenticator/widgets/settings.py:73
msgid "Authentication password was unset. Please restart the application"
msgstr ""
#: src/Authenticator/widgets/settings.py:81
msgid "Authentication password is now enabled. Please restart the application."
msgstr ""
#: src/Authenticator/widgets/utils.py:32
msgid "Open"
msgstr "Abrir"
#: src/Authenticator/widgets/utils.py:36 src/Authenticator/widgets/utils.py:62
msgid "Cancel"
msgstr "Cancelar"
#: src/Authenticator/widgets/utils.py:46 src/Authenticator/widgets/utils.py:51
msgid "JSON files"
msgstr "Archivos JSON"
#: src/Authenticator/widgets/utils.py:61
msgid "Select"
msgstr "Seleccionar"
#~ msgid "Provider"
#~ msgstr "Proveedor"
#~ msgid "Account name"
#~ msgstr "Nombre de la cuenta"
#~ msgid "Secret token"
#~ msgstr "Ficha secreta"
#~ msgid "zbar library is not found. QRCode scanner will be disabled"
#~ msgstr ""
#~ "advocatux <advocatux@airpost.net>, 2018\n"
#~ "Adolfo Jayme Barrientos <fitojb@ubuntu.com>, 2018"
#~ "No se encontró la biblioteca «zbar». Se desactivará el escáner de códigos "
#~ "QR"
#~ msgid "Copy"
#~ msgstr "Copiar"
#~ msgid "Search"
#~ msgstr "Buscar"
#~ msgid "Selection mode"
#~ msgstr "Modo de selección"
#~ msgid "Click on items to select them"
#~ msgstr "Pulse en los elementos para seleccionarlos"
#~ msgid "Old Password"
#~ msgstr "Contraseña antigua"
#~ msgid "Appearance"
#~ msgstr "Aspecto"
#~ msgid "Clear the database"
#~ msgstr "Vaciar la base de datos"
#~ msgid "Erase existing accounts"
#~ msgstr "Eliminar las cuentas existentes"
#~ msgid "Authentication password"
#~ msgstr "Contraseña de autenticación"
#~ msgid "Set up application authentication password"
#~ msgstr "Configurar la contraseña de autenticación de la aplicación"
#~ msgid "The application needs to be restarted first."
#~ msgstr "Se necesita reiniciar la aplicación primero."
#~ msgid "The existing accounts will be erased in 5 seconds"
#~ msgstr "Las cuentas existentes se eliminarán en 5 segundos"
#~ msgid "Undo"
#~ msgstr "Deshacer"
#~ msgid "An account or more were removed."
#~ msgstr "Al menos una cuenta ha sido eliminada."
#~ msgid "Whether the application is locked with a password or not"
#~ msgstr "Si la aplicación está bloqueada con una contraseña o no"
#~ msgid "Whether the application can be locked or not"
#~ msgstr "Si se puede bloquear la aplicación o no"
#~ msgctxt "shortcut window"
#~ msgid "Select"
#~ msgstr "Seleccionar"
#, fuzzy
#~ msgid "Authenticator@NAME_SUFFIX@"
@ -405,105 +535,3 @@ msgstr "Número de versión de «Authenticator»"
#~ msgid "com.github.bilelmoussaoui.Authenticator"
#~ msgstr "com.github.bilelmoussaoui.Authenticator"
#~ msgid ""
#~ "Since I have moved the application to GOME Gitlab's World group, a "
#~ "Flatpak build for each new commit is available to download from the "
#~ "site's website."
#~ msgstr ""
#~ "Como hemos trasladado la aplicación al grupo «World» de la instancia "
#~ "GitLab de GNOME, hay disponible una compilación Flatpak por cada consigna "
#~ "nueva en el sitio web de la aplicación."
#~ msgid "Backup and restore from a basic JSON file"
#~ msgstr ""
#~ "Copia de seguridad y restauración a partir de un archivo JSON básico"
#~ msgid "Backup and restore from an encrypted-GPG JSON file"
#~ msgstr ""
#~ "Copia de seguridad y restauración a partir de un archivo JSON cifrado con "
#~ "GPG"
#~ msgid "Add andOTP support (free and open Android 2FA application)"
#~ msgstr ""
#~ "Se añadió compatibilidad con andOTP (aplicación libre y abierta de 2FA "
#~ "para Android)"
#~ msgid "New Settings Widow with 3 sections: appearance, behavior and backup"
#~ msgstr ""
#~ "Renovación de la ventana de configuración con tres secciones: Aspecto, "
#~ "Comportamiento y Copia de seguridad"
#~ msgid "Fix Flatpak Build with the latest GNOME Runtime"
#~ msgstr ""
#~ "Se reparó la compilación Flatpak con el entorno de ejecución de GNOME más "
#~ "reciente"
#~ msgid "Move the project to GOME Gitlab's World group"
#~ msgstr "Se trasladó el proyecto al grupo «World» del GitLab de GNOME"
#~ msgid "GNOME Shell Search provider"
#~ msgstr "Proveedor de búsquedas para GNOME Shell"
#~ msgid "Codes expire simultaneously #91"
#~ msgstr "Los códigos caducan simultáneamente #91"
#~ msgid "Revamped main window to more closely follow the GNOME HIG"
#~ msgstr ""
#~ "Reformada la ventana principal para seguir más de cerca las directrices "
#~ "sobre la interfaz humana (HIG) de GNOME"
#~ msgid "Revamped add a new account window to make it easier to use"
#~ msgstr "Reformada la ventana de adición de cuentas para facilitar su uso"
#~ msgid ""
#~ "Possibility to add an account from a provider not listed in the shipped "
#~ "database"
#~ msgstr ""
#~ "Posibilidad de añadir una cuenta de un proveedor que no esté incluido en "
#~ "la base de datos incorporada"
#~ msgid "Possibilty to edit an account"
#~ msgstr "Posibilidad de editar una cuenta"
#~ msgid "One Time Password now visible by default"
#~ msgstr ""
#~ "Las contraseñas de un solo uso son ahora visibles de manera predeterminada"
#~ msgid "Fix python-dbus by using GDbus instead"
#~ msgstr "Arreglado el problema de «python-dbus» al usar «GDbus» ahora"
#~ msgid "Fix the QRScanner on GNOME Shell"
#~ msgstr "Arreglado QRScanner cuando se usa en la «shell» de GNOME"
#~ msgid "Add a new entry for the account's username"
#~ msgstr "Se añadió una entrada nueva para el nombre de usuario de la cuenta"
#~ msgid "Updated database of supported accounts"
#~ msgstr "Se actualizó la base de datos de cuentas admitidas"
#~ msgid "HOTFIX: App not running in DE other than GNOME"
#~ msgstr ""
#~ "ARREGLO RÁPIDO: la aplicación no funcionaba en entornos de escritorio "
#~ "distintos de GNOME"
#~ msgid "Rename project to Authenticator"
#~ msgstr "Renombrado el proyecto a «Authenticator»"
#~ msgid "Cleaner code base"
#~ msgstr "Una base de código más limpio"
#~ msgid "Faster startup"
#~ msgstr "Arranque más rápido"
#~ msgid "Remove unneeded features"
#~ msgstr "Eliminadas las características innecesarias"
#~ msgid "Switch to pyzbar instead of zbarlight"
#~ msgstr "Se cambió a «pyzbar» en sustitución de «zbarlight»"
#~ msgid "Flatpak package"
#~ msgstr "Paquete Flatpak"
#~ msgid "Bilal Elmoussaoui"
#~ msgstr "Bilal Elmoussaoui"

580
po/fr.po
View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Authenticator\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-25 19:56+0100\n"
"POT-Creation-Date: 2019-02-11 22:35+0100\n"
"PO-Revision-Date: 2019-02-03 23:09+0000\n"
"Last-Translator: Nicolas Lapointe <nixcocpp@gmail.com>\n"
"Language-Team: French <https://hosted.weblate.org/projects/authenticator/"
@ -20,238 +20,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 3.5-dev\n"
#: Authenticator/application.py.in:39
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:6
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:3
#: data/ui/window.ui.in:255 src/Authenticator/application.py.in:36
msgid "Authenticator"
msgstr "Authentificateur"
#: Authenticator/application.py.in:91 Authenticator/widgets/settings.py:239
#, fuzzy
msgid "Lock the application"
msgstr "Verrouiller l'application"
#: Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr "à partir d'un fichier texte JSON"
#: Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr "dans un fichier texte JSON"
#: Authenticator/application.py.in:102
msgid "Restore"
msgstr "Restaurer"
#: Authenticator/application.py.in:103
#, fuzzy
msgid "Backup"
msgstr "Retour"
#. Night mode action
#: Authenticator/application.py.in:111
msgid "Preferences"
msgstr "Préférences"
#: Authenticator/application.py.in:112
msgid "Donate"
msgstr "Donner"
#: Authenticator/application.py.in:113
#, fuzzy
msgid "Keyboard Shortcuts"
msgstr "Raccourcis clavier"
#: Authenticator/application.py.in:114
#, fuzzy
msgid "About Authenticator"
msgstr "À propos de l'Authentificateur"
#: Authenticator/models/account.py:74
msgid "Default"
msgstr "Défaut"
#: Authenticator/widgets/accounts/add.py:50
#: Authenticator/widgets/headerbar.py:101
msgid "Add a new account"
msgstr "Ajouter un nouveau compte"
#: Authenticator/widgets/accounts/add.py:54
msgid "Add"
msgstr "Ajouter"
#: Authenticator/widgets/accounts/add.py:62
msgid "Scan QR code"
msgstr "Scanner un QR code"
#: Authenticator/widgets/accounts/add.py:68
#: Authenticator/widgets/accounts/edit.py:58
msgid "Close"
msgstr "Fermer"
#: Authenticator/widgets/accounts/add.py:161
msgid "Provider"
msgstr "Prestataire"
#: Authenticator/widgets/accounts/add.py:171
msgid "Account name"
msgstr "Compte"
#: Authenticator/widgets/accounts/add.py:177
#, fuzzy
msgid "Secret token"
msgstr "Code secret"
#: Authenticator/widgets/accounts/add.py:260
msgid "Invalid QR code"
msgstr "QR Code invalide"
#: Authenticator/widgets/accounts/add.py:268
msgid "zbar library is not found. QRCode scanner will be disabled"
msgstr ""
#: Authenticator/widgets/accounts/edit.py:47
msgid "Edit {} - {}"
msgstr "Modifier {} - {}"
#: Authenticator/widgets/accounts/edit.py:52
#: Authenticator/widgets/settings.py:143 Authenticator/widgets/utils.py:20
msgid "Save"
msgstr "Enregistrer"
#: Authenticator/widgets/accounts/list.py:164
msgid "The One-Time Passwords expires in {} seconds"
msgstr "Le mot de passe à usage unique expire dans {} secondes"
#. Label
#: Authenticator/widgets/accounts/list.py:286
msgid "There are no accounts yet…"
msgstr "Il n'y a aucun compte pour le moment…"
#: Authenticator/widgets/accounts/row.py:59
msgid "Copy"
msgstr "Copier"
#: Authenticator/widgets/accounts/row.py:60
msgid "Edit"
msgstr "Éditer"
#: Authenticator/widgets/accounts/row.py:150
msgid "Couldn't generate the secret code"
msgstr "Le code secret n'a pas pu être généré"
#: Authenticator/widgets/actions_bar.py:52
#, fuzzy
msgid "Delete"
msgstr "Supprimer"
#: Authenticator/widgets/headerbar.py:99
msgid "Search"
msgstr "Chercher"
#: Authenticator/widgets/headerbar.py:103 Authenticator/widgets/settings.py:212
msgid "Settings"
msgstr "Préférenes"
#: Authenticator/widgets/headerbar.py:105
msgid "Selection mode"
msgstr "Mode de séléction"
#: Authenticator/widgets/headerbar.py:107 Authenticator/widgets/utils.py:22
#: Authenticator/widgets/utils.py:48
msgid "Cancel"
msgstr "Annuler"
#: Authenticator/widgets/headerbar.py:183
msgid "Click on items to select them"
msgstr "Cliquer sur des éléments pour les sélectionner"
#: Authenticator/widgets/settings.py:139
#, fuzzy
msgid "Authentication Password"
msgstr "Répétez le nouveau mot de passe"
#: Authenticator/widgets/settings.py:152
#, fuzzy
msgid "Old Password"
msgstr "Ancien mot de passe"
#: Authenticator/widgets/settings.py:156
#, fuzzy
msgid "Password"
msgstr "Ancien mot de passe"
#: Authenticator/widgets/settings.py:159
#, fuzzy
msgid "Repeat Password"
msgstr "Répétez le nouveau mot de passe"
#: Authenticator/widgets/settings.py:229
msgid "Dark theme"
msgstr "Thème sombre"
#: Authenticator/widgets/settings.py:229
msgid "Use a dark theme, if possible"
msgstr "Utiliser un thème sombre, si possible"
#: Authenticator/widgets/settings.py:232
msgid "Appearance"
msgstr "Apparence"
#: Authenticator/widgets/settings.py:236
msgid "Clear the database"
msgstr "Effacer la base de données"
#: Authenticator/widgets/settings.py:236
msgid "Erase existing accounts"
msgstr "Effacer les comptes existants"
#: Authenticator/widgets/settings.py:240
msgid "Possibility to lock the application with a password"
msgstr ""
#: Authenticator/widgets/settings.py:243
msgid "Authentication password"
msgstr ""
#: Authenticator/widgets/settings.py:244
msgid "Set up application authentication password"
msgstr ""
#: Authenticator/widgets/settings.py:250
#, fuzzy
msgid "Behaviour"
msgstr "Comportement"
#: Authenticator/widgets/settings.py:259
msgid "The application needs to be restarted first."
msgstr ""
#: Authenticator/widgets/settings.py:288
msgid "The existing accounts will be erased in 5 seconds"
msgstr ""
#: Authenticator/widgets/settings.py:292 Authenticator/widgets/window.py.in:217
msgid "Undo"
msgstr "Annuler"
#: Authenticator/widgets/utils.py:18
msgid "Open"
msgstr ""
#: Authenticator/widgets/utils.py:32 Authenticator/widgets/utils.py:37
msgid "JSON files"
msgstr "Fichiers JSON"
#: Authenticator/widgets/utils.py:47
#, fuzzy
msgid "Select"
msgstr "Mode de séléction"
#: Authenticator/widgets/window.py.in:213
msgid "An account or more were removed."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:7
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:5
msgid "Two-factor authentication code generator"
@ -281,6 +55,116 @@ msgstr ""
msgid "Huge database of (290+) websites/applications"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:34
msgid ""
"Since I have moved the application to GOME Gitlab's World group, a Flatpak "
"build for each new commit is available to download from the site's website."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:38
msgid "Backup and restore from a basic JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:39
msgid "Backup and restore from an encrypted-GPG JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:40
msgid "Add andOTP support (free and open Android 2FA application)"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:41
msgid "New Settings Widow with 3 sections: appearance, behavior and backup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:42
msgid "Fix Flatpak Build with the latest GNOME Runtime"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:43
msgid "Move the project to GOME Gitlab's World group"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:50
msgid "GNOME Shell Search provider"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:51
msgid "Codes expire simultaneously #91"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:58
msgid "Revamped main window to more closely follow the GNOME HIG"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:59
msgid "Revamped add a new account window to make it easier to use"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:60
msgid ""
"Possibility to add an account from a provider not listed in the shipped "
"database"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:61
msgid "Possibilty to edit an account"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:62
msgid "One Time Password now visible by default"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:69
msgid "Fix python-dbus by using GDbus instead"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:76
msgid "Fix the QRScanner on GNOME Shell"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:77
msgid "Add a new entry for the account's username"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:78
msgid "Updated database of supported accounts"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:85
msgid "HOTFIX: App not running in DE other than GNOME"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:92
#, fuzzy
msgid "Rename project to Authenticator"
msgstr "À propos de l'Authentificateur"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:93
#, fuzzy
msgid "Cleaner code base"
msgstr "Effacer la base de données"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:94
msgid "Faster startup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:95
msgid "Remove unneeded features"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:96
msgid "Switch to pyzbar instead of zbarlight"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:97
msgid "Flatpak package"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:104
msgid "Bilal Elmoussaoui"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:4
msgid "Two-factor authentication"
msgstr ""
@ -311,18 +195,95 @@ msgstr ""
msgid "Default window maximized behaviour"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:21
msgid "Whether the application is locked with a password or not"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:26
msgid "Whether the application can be locked or not"
msgstr ""
#: data/ui/about_dialog.ui.in:10
msgid "Two-factor authentication code generator."
msgstr "Générateur de code d'authentification à deux facteurs."
#: data/ui/about_dialog.ui.in:13
msgid "translator-credits"
msgstr ""
#: data/ui/account_add.ui:24
msgid "Add a new account"
msgstr "Ajouter un nouveau compte"
#: data/ui/account_add.ui:27 data/ui/account_edit.ui:21
msgid "Close"
msgstr "Fermer"
#: data/ui/account_add.ui:36
msgid "Add"
msgstr "Ajouter"
#: data/ui/account_add.ui:56
#, fuzzy
msgid "Scan QR Code"
msgstr "Scanner un QR code"
#: data/ui/account_edit.ui:30 data/ui/settings.ui.in:454
#: src/Authenticator/widgets/utils.py:34
msgid "Save"
msgstr "Enregistrer"
#: data/ui/account_row.ui:23
msgid "Edit"
msgstr "Éditer"
#: data/ui/account_row.ui:37
#, fuzzy
msgid "Delete"
msgstr "Supprimer"
#: data/ui/account_row.ui:92
msgid "Copy PIN to clipboard"
msgstr ""
#: data/ui/settings.ui.in:66
#, fuzzy
msgid "Behaviour"
msgstr "Comportement"
#: data/ui/settings.ui.in:100
msgid "Dark theme"
msgstr "Thème sombre"
#: data/ui/settings.ui.in:117
msgid "Use a dark theme, if possible"
msgstr "Utiliser un thème sombre, si possible"
#: data/ui/settings.ui.in:179 src/Authenticator/application.py.in:91
#, fuzzy
msgid "Lock the application"
msgstr "Verrouiller l'application"
#: data/ui/settings.ui.in:196
#, fuzzy
msgid "Lock the application with a password"
msgstr "Verrouiller l'application"
#: data/ui/settings.ui.in:279
msgid "Keep your accounts safer "
msgstr ""
#: data/ui/settings.ui.in:303
#, fuzzy
msgid "Password"
msgstr "Ancien mot de passe"
#: data/ui/settings.ui.in:348
#, fuzzy
msgid "Repeat Password"
msgstr "Répétez le nouveau mot de passe"
#: data/ui/settings.ui.in:410
msgid "Settings"
msgstr "Préférenes"
#: data/ui/settings.ui.in:427
#, fuzzy
msgid "Authenticator Password"
msgstr "Répétez le nouveau mot de passe"
#: data/ui/shortcuts.ui:13
msgctxt "shortcut window"
msgid "General"
@ -358,24 +319,152 @@ msgid "Add"
msgstr "Ajouter"
#: data/ui/shortcuts.ui:51
#, fuzzy
msgctxt "shortcut window"
msgid "Select"
msgstr "Mode de séléction"
#: data/ui/shortcuts.ui:58
msgctxt "shortcut window"
msgid "Search"
msgstr "Rechercher"
#: authenticator.py.in:54
#: data/ui/window.ui.in:60
msgid "There are no accounts yet…"
msgstr "Il n'y a aucun compte pour le moment…"
#: data/ui/window.ui.in:187
#, fuzzy
msgid "Authenticator is locked"
msgstr "Authentificateur"
#: data/ui/window.ui.in:222
msgid "Unlock"
msgstr "Déverrouiller"
#: src/authenticator.py.in:49
msgid "Start in debug mode"
msgstr ""
#: authenticator.py.in:56
#: src/authenticator.py.in:51
msgid "Authenticator version number"
msgstr ""
#: src/Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr "à partir d'un fichier texte JSON"
#: src/Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr "dans un fichier texte JSON"
#: src/Authenticator/application.py.in:102
msgid "Restore"
msgstr "Restaurer"
#: src/Authenticator/application.py.in:103
#, fuzzy
msgid "Backup"
msgstr "Retour"
#. Night mode action
#: src/Authenticator/application.py.in:111
msgid "Preferences"
msgstr "Préférences"
#: src/Authenticator/application.py.in:112
msgid "Donate"
msgstr "Donner"
#: src/Authenticator/application.py.in:113
#, fuzzy
msgid "Keyboard Shortcuts"
msgstr "Raccourcis clavier"
#: src/Authenticator/application.py.in:114
#, fuzzy
msgid "About Authenticator"
msgstr "À propos de l'Authentificateur"
#: src/Authenticator/models/account.py:70
msgid "Default"
msgstr "Défaut"
#: src/Authenticator/widgets/accounts/add.py:204
msgid "Invalid QR code"
msgstr "QR Code invalide"
#: src/Authenticator/widgets/accounts/edit.py:45
msgid "Edit {} - {}"
msgstr "Modifier {} - {}"
#: src/Authenticator/widgets/accounts/list.py:144
msgid "The One-Time Passwords expires in {} seconds"
msgstr "Le mot de passe à usage unique expire dans {} secondes"
#: src/Authenticator/widgets/accounts/row.py:75
msgid "Couldn't generate the secret code"
msgstr "Le code secret n'a pas pu être généré"
#: src/Authenticator/widgets/settings.py:73
msgid "Authentication password was unset. Please restart the application"
msgstr ""
#: src/Authenticator/widgets/settings.py:81
msgid "Authentication password is now enabled. Please restart the application."
msgstr ""
#: src/Authenticator/widgets/utils.py:32
msgid "Open"
msgstr ""
#: src/Authenticator/widgets/utils.py:36 src/Authenticator/widgets/utils.py:62
msgid "Cancel"
msgstr "Annuler"
#: src/Authenticator/widgets/utils.py:46 src/Authenticator/widgets/utils.py:51
msgid "JSON files"
msgstr "Fichiers JSON"
#: src/Authenticator/widgets/utils.py:61
#, fuzzy
msgid "Select"
msgstr "Mode de séléction"
#~ msgid "Provider"
#~ msgstr "Prestataire"
#~ msgid "Account name"
#~ msgstr "Compte"
#, fuzzy
#~ msgid "Secret token"
#~ msgstr "Code secret"
#~ msgid "Copy"
#~ msgstr "Copier"
#~ msgid "Search"
#~ msgstr "Chercher"
#~ msgid "Selection mode"
#~ msgstr "Mode de séléction"
#~ msgid "Click on items to select them"
#~ msgstr "Cliquer sur des éléments pour les sélectionner"
#, fuzzy
#~ msgid "Old Password"
#~ msgstr "Ancien mot de passe"
#~ msgid "Appearance"
#~ msgstr "Apparence"
#~ msgid "Erase existing accounts"
#~ msgstr "Effacer les comptes existants"
#~ msgid "Undo"
#~ msgstr "Annuler"
#, fuzzy
#~ msgctxt "shortcut window"
#~ msgid "Select"
#~ msgstr "Mode de séléction"
#~ msgid "About"
#~ msgstr "A propos"
@ -432,9 +521,6 @@ msgstr ""
#~ msgid "Enter your password"
#~ msgstr "Entrez votre mot de passe"
#~ msgid "Unlock"
#~ msgstr "Déverrouiller"
#~ msgid "Remove selected applications"
#~ msgstr "Supprimer les applications sélectionnées"

585
po/hu.po
View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-25 19:56+0100\n"
"POT-Creation-Date: 2019-02-11 22:35+0100\n"
"PO-Revision-Date: 2018-03-22 19:06+0000\n"
"Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
"Language-Team: Hungarian <https://hosted.weblate.org/projects/authenticator/"
@ -19,239 +19,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 2.20-dev\n"
#: Authenticator/application.py.in:39
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:6
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:3
#: data/ui/window.ui.in:255 src/Authenticator/application.py.in:36
msgid "Authenticator"
msgstr "Hitelesítő"
#: Authenticator/application.py.in:91 Authenticator/widgets/settings.py:239
#, fuzzy
msgid "Lock the application"
msgstr "Az alkalmazás zárolása"
#: Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr ""
#: Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr ""
#: Authenticator/application.py.in:102
msgid "Restore"
msgstr ""
#: Authenticator/application.py.in:103
#, fuzzy
msgid "Backup"
msgstr "Vissza"
#. Night mode action
#: Authenticator/application.py.in:111
msgid "Preferences"
msgstr ""
#: Authenticator/application.py.in:112
msgid "Donate"
msgstr ""
#: Authenticator/application.py.in:113
#, fuzzy
msgid "Keyboard Shortcuts"
msgstr "Gyorsbillentyűk"
#: Authenticator/application.py.in:114
#, fuzzy
msgid "About Authenticator"
msgstr "Hitelesítő"
#: Authenticator/models/account.py:74
msgid "Default"
msgstr ""
#: Authenticator/widgets/accounts/add.py:50
#: Authenticator/widgets/headerbar.py:101
msgid "Add a new account"
msgstr "Új fiók hozzáadása"
#: Authenticator/widgets/accounts/add.py:54
msgid "Add"
msgstr "Hozzáadás"
#: Authenticator/widgets/accounts/add.py:62
msgid "Scan QR code"
msgstr "QR-kód beolvasása"
#: Authenticator/widgets/accounts/add.py:68
#: Authenticator/widgets/accounts/edit.py:58
msgid "Close"
msgstr "Bezárás"
#: Authenticator/widgets/accounts/add.py:161
msgid "Provider"
msgstr ""
#: Authenticator/widgets/accounts/add.py:171
msgid "Account name"
msgstr "Fiók neve"
#: Authenticator/widgets/accounts/add.py:177
#, fuzzy
msgid "Secret token"
msgstr "Titkos jelsor"
#: Authenticator/widgets/accounts/add.py:260
msgid "Invalid QR code"
msgstr "Érvénytelen QR-kód"
#: Authenticator/widgets/accounts/add.py:268
msgid "zbar library is not found. QRCode scanner will be disabled"
msgstr ""
#: Authenticator/widgets/accounts/edit.py:47
msgid "Edit {} - {}"
msgstr ""
#: Authenticator/widgets/accounts/edit.py:52
#: Authenticator/widgets/settings.py:143 Authenticator/widgets/utils.py:20
msgid "Save"
msgstr ""
#: Authenticator/widgets/accounts/list.py:164
msgid "The One-Time Passwords expires in {} seconds"
msgstr ""
#. Label
#: Authenticator/widgets/accounts/list.py:286
#, fuzzy
msgid "There are no accounts yet…"
msgstr "Még nincsenek fiókok…"
#: Authenticator/widgets/accounts/row.py:59
msgid "Copy"
msgstr "Másolás"
#: Authenticator/widgets/accounts/row.py:60
msgid "Edit"
msgstr ""
#: Authenticator/widgets/accounts/row.py:150
msgid "Couldn't generate the secret code"
msgstr "Nem sikerült előállítani a titkos kódot"
#: Authenticator/widgets/actions_bar.py:52
msgid "Delete"
msgstr "Törlés"
#: Authenticator/widgets/headerbar.py:99
msgid "Search"
msgstr "Keresés"
#: Authenticator/widgets/headerbar.py:103 Authenticator/widgets/settings.py:212
msgid "Settings"
msgstr "Beállítások"
#: Authenticator/widgets/headerbar.py:105
msgid "Selection mode"
msgstr "Kijelölés mód"
#: Authenticator/widgets/headerbar.py:107 Authenticator/widgets/utils.py:22
#: Authenticator/widgets/utils.py:48
msgid "Cancel"
msgstr "Mégse"
#: Authenticator/widgets/headerbar.py:183
msgid "Click on items to select them"
msgstr "Kattintson az elemekre a kijelölésükhöz"
#: Authenticator/widgets/settings.py:139
#, fuzzy
msgid "Authentication Password"
msgstr "Hitelesítő"
#: Authenticator/widgets/settings.py:152
#, fuzzy
msgid "Old Password"
msgstr "Régi jelszó"
#: Authenticator/widgets/settings.py:156
#, fuzzy
msgid "Password"
msgstr "Régi jelszó"
#: Authenticator/widgets/settings.py:159
#, fuzzy
msgid "Repeat Password"
msgstr "Új jelszó ismétlése"
#: Authenticator/widgets/settings.py:229
msgid "Dark theme"
msgstr ""
#: Authenticator/widgets/settings.py:229
msgid "Use a dark theme, if possible"
msgstr ""
#: Authenticator/widgets/settings.py:232
msgid "Appearance"
msgstr ""
#: Authenticator/widgets/settings.py:236
msgid "Clear the database"
msgstr ""
#: Authenticator/widgets/settings.py:236
msgid "Erase existing accounts"
msgstr ""
#: Authenticator/widgets/settings.py:240
msgid "Possibility to lock the application with a password"
msgstr ""
#: Authenticator/widgets/settings.py:243
#, fuzzy
msgid "Authentication password"
msgstr "Hitelesítő"
#: Authenticator/widgets/settings.py:244
msgid "Set up application authentication password"
msgstr ""
#: Authenticator/widgets/settings.py:250
#, fuzzy
msgid "Behaviour"
msgstr "Viselkedés"
#: Authenticator/widgets/settings.py:259
msgid "The application needs to be restarted first."
msgstr ""
#: Authenticator/widgets/settings.py:288
msgid "The existing accounts will be erased in 5 seconds"
msgstr ""
#: Authenticator/widgets/settings.py:292 Authenticator/widgets/window.py.in:217
msgid "Undo"
msgstr "Visszavonás"
#: Authenticator/widgets/utils.py:18
msgid "Open"
msgstr ""
#: Authenticator/widgets/utils.py:32 Authenticator/widgets/utils.py:37
msgid "JSON files"
msgstr ""
#: Authenticator/widgets/utils.py:47
#, fuzzy
msgid "Select"
msgstr "Kijelölés mód"
#: Authenticator/widgets/window.py.in:213
msgid "An account or more were removed."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:7
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:5
#, fuzzy
@ -283,6 +56,116 @@ msgstr ""
msgid "Huge database of (290+) websites/applications"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:34
msgid ""
"Since I have moved the application to GOME Gitlab's World group, a Flatpak "
"build for each new commit is available to download from the site's website."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:38
msgid "Backup and restore from a basic JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:39
msgid "Backup and restore from an encrypted-GPG JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:40
msgid "Add andOTP support (free and open Android 2FA application)"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:41
msgid "New Settings Widow with 3 sections: appearance, behavior and backup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:42
msgid "Fix Flatpak Build with the latest GNOME Runtime"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:43
msgid "Move the project to GOME Gitlab's World group"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:50
msgid "GNOME Shell Search provider"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:51
msgid "Codes expire simultaneously #91"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:58
msgid "Revamped main window to more closely follow the GNOME HIG"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:59
msgid "Revamped add a new account window to make it easier to use"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:60
msgid ""
"Possibility to add an account from a provider not listed in the shipped "
"database"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:61
msgid "Possibilty to edit an account"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:62
msgid "One Time Password now visible by default"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:69
msgid "Fix python-dbus by using GDbus instead"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:76
msgid "Fix the QRScanner on GNOME Shell"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:77
msgid "Add a new entry for the account's username"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:78
msgid "Updated database of supported accounts"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:85
msgid "HOTFIX: App not running in DE other than GNOME"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:92
#, fuzzy
msgid "Rename project to Authenticator"
msgstr "A Hitelesítő névjegye"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:93
msgid "Cleaner code base"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:94
msgid "Faster startup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:95
#, fuzzy
msgid "Remove unneeded features"
msgstr "Kijelölt fiókok eltávolítása"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:96
msgid "Switch to pyzbar instead of zbarlight"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:97
msgid "Flatpak package"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:104
msgid "Bilal Elmoussaoui"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:4
#, fuzzy
msgid "Two-factor authentication"
@ -314,19 +197,95 @@ msgstr ""
msgid "Default window maximized behaviour"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:21
msgid "Whether the application is locked with a password or not"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:26
msgid "Whether the application can be locked or not"
msgstr ""
#: data/ui/about_dialog.ui.in:10
#, fuzzy
msgid "Two-factor authentication code generator."
msgstr "Kétlépcsős hitelesítő kódok előállítója."
#: data/ui/about_dialog.ui.in:13
msgid "translator-credits"
msgstr "Úr Balázs <urbalazs@gmail.com>, 2018."
#: data/ui/account_add.ui:24
msgid "Add a new account"
msgstr "Új fiók hozzáadása"
#: data/ui/account_add.ui:27 data/ui/account_edit.ui:21
msgid "Close"
msgstr "Bezárás"
#: data/ui/account_add.ui:36
msgid "Add"
msgstr "Hozzáadás"
#: data/ui/account_add.ui:56
#, fuzzy
msgid "Scan QR Code"
msgstr "QR-kód beolvasása"
#: data/ui/account_edit.ui:30 data/ui/settings.ui.in:454
#: src/Authenticator/widgets/utils.py:34
msgid "Save"
msgstr ""
#: data/ui/account_row.ui:23
msgid "Edit"
msgstr ""
#: data/ui/account_row.ui:37
msgid "Delete"
msgstr "Törlés"
#: data/ui/account_row.ui:92
msgid "Copy PIN to clipboard"
msgstr ""
#: data/ui/settings.ui.in:66
#, fuzzy
msgid "Behaviour"
msgstr "Viselkedés"
#: data/ui/settings.ui.in:100
msgid "Dark theme"
msgstr ""
#: data/ui/settings.ui.in:117
msgid "Use a dark theme, if possible"
msgstr ""
#: data/ui/settings.ui.in:179 src/Authenticator/application.py.in:91
#, fuzzy
msgid "Lock the application"
msgstr "Az alkalmazás zárolása"
#: data/ui/settings.ui.in:196
#, fuzzy
msgid "Lock the application with a password"
msgstr "Az alkalmazás zárolása"
#: data/ui/settings.ui.in:279
msgid "Keep your accounts safer "
msgstr ""
#: data/ui/settings.ui.in:303
#, fuzzy
msgid "Password"
msgstr "Régi jelszó"
#: data/ui/settings.ui.in:348
#, fuzzy
msgid "Repeat Password"
msgstr "Új jelszó ismétlése"
#: data/ui/settings.ui.in:410
msgid "Settings"
msgstr "Beállítások"
#: data/ui/settings.ui.in:427
#, fuzzy
msgid "Authenticator Password"
msgstr "Hitelesítő"
#: data/ui/shortcuts.ui:13
msgctxt "shortcut window"
msgid "General"
@ -362,26 +321,147 @@ msgid "Add"
msgstr "Hozzáadás"
#: data/ui/shortcuts.ui:51
#, fuzzy
msgctxt "shortcut window"
msgid "Select"
msgstr "Kijelölés mód"
#: data/ui/shortcuts.ui:58
msgctxt "shortcut window"
msgid "Search"
msgstr "Keresés"
#: authenticator.py.in:54
#: data/ui/window.ui.in:60
#, fuzzy
msgid "There are no accounts yet…"
msgstr "Még nincsenek fiókok…"
#: data/ui/window.ui.in:187
#, fuzzy
msgid "Authenticator is locked"
msgstr "Hitelesítő"
#: data/ui/window.ui.in:222
msgid "Unlock"
msgstr "Feloldás"
#: src/authenticator.py.in:49
msgid "Start in debug mode"
msgstr "Indítás hibakeresési módban"
#: authenticator.py.in:56
#: src/authenticator.py.in:51
msgid "Authenticator version number"
msgstr "Hitelesítő verziószáma"
#~ msgid "translator-credits"
#~ msgstr "Úr Balázs <urbalazs@gmail.com>, 2018."
#: src/Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr ""
#: src/Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr ""
#: src/Authenticator/application.py.in:102
msgid "Restore"
msgstr ""
#: src/Authenticator/application.py.in:103
#, fuzzy
msgid "Backup"
msgstr "Vissza"
#. Night mode action
#: src/Authenticator/application.py.in:111
msgid "Preferences"
msgstr ""
#: src/Authenticator/application.py.in:112
msgid "Donate"
msgstr ""
#: src/Authenticator/application.py.in:113
#, fuzzy
msgid "Keyboard Shortcuts"
msgstr "Gyorsbillentyűk"
#: src/Authenticator/application.py.in:114
#, fuzzy
msgid "About Authenticator"
msgstr "Hitelesítő"
#: src/Authenticator/models/account.py:70
msgid "Default"
msgstr ""
#: src/Authenticator/widgets/accounts/add.py:204
msgid "Invalid QR code"
msgstr "Érvénytelen QR-kód"
#: src/Authenticator/widgets/accounts/edit.py:45
msgid "Edit {} - {}"
msgstr ""
#: src/Authenticator/widgets/accounts/list.py:144
msgid "The One-Time Passwords expires in {} seconds"
msgstr ""
#: src/Authenticator/widgets/accounts/row.py:75
msgid "Couldn't generate the secret code"
msgstr "Nem sikerült előállítani a titkos kódot"
#: src/Authenticator/widgets/settings.py:73
msgid "Authentication password was unset. Please restart the application"
msgstr ""
#: src/Authenticator/widgets/settings.py:81
msgid "Authentication password is now enabled. Please restart the application."
msgstr ""
#: src/Authenticator/widgets/utils.py:32
msgid "Open"
msgstr ""
#: src/Authenticator/widgets/utils.py:36 src/Authenticator/widgets/utils.py:62
msgid "Cancel"
msgstr "Mégse"
#: src/Authenticator/widgets/utils.py:46 src/Authenticator/widgets/utils.py:51
msgid "JSON files"
msgstr ""
#: src/Authenticator/widgets/utils.py:61
#, fuzzy
msgid "Select"
msgstr "Kijelölés mód"
#~ msgid "Account name"
#~ msgstr "Fiók neve"
#, fuzzy
#~ msgid "Secret token"
#~ msgstr "Titkos jelsor"
#~ msgid "Copy"
#~ msgstr "Másolás"
#~ msgid "Search"
#~ msgstr "Keresés"
#~ msgid "Selection mode"
#~ msgstr "Kijelölés mód"
#~ msgid "Click on items to select them"
#~ msgstr "Kattintson az elemekre a kijelölésükhöz"
#, fuzzy
#~ msgid "Old Password"
#~ msgstr "Régi jelszó"
#, fuzzy
#~ msgid "Authentication password"
#~ msgstr "Hitelesítő"
#~ msgid "Undo"
#~ msgstr "Visszavonás"
#, fuzzy
#~ msgctxt "shortcut window"
#~ msgid "Select"
#~ msgstr "Kijelölés mód"
#, fuzzy
#~ msgid "Authenticator@NAME_SUFFIX@"
@ -397,14 +477,6 @@ msgstr "Hitelesítő verziószáma"
#~ msgid "Backup Password"
#~ msgstr "Jelszó módosítása"
#, fuzzy
#~ msgid "Rename project to Authenticator"
#~ msgstr "A Hitelesítő névjegye"
#, fuzzy
#~ msgid "Remove unneeded features"
#~ msgstr "Kijelölt fiókok eltávolítása"
#~ msgid "Next"
#~ msgstr "Következő"
@ -461,9 +533,6 @@ msgstr "Hitelesítő verziószáma"
#~ msgid "Enter your password"
#~ msgstr "Adja meg a jelszavát"
#~ msgid "Unlock"
#~ msgstr "Feloldás"
#~ msgid "Remove the account"
#~ msgstr "A fiók eltávolítása"

585
po/id.po
View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-25 19:56+0100\n"
"POT-Creation-Date: 2019-02-11 22:35+0100\n"
"PO-Revision-Date: 2018-05-14 15:02+0000\n"
"Last-Translator: ditokp <ditokpl@gmail.com>\n"
"Language-Team: Indonesian <https://hosted.weblate.org/projects/authenticator/"
@ -19,239 +19,12 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 3.0-dev\n"
#: Authenticator/application.py.in:39
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:6
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:3
#: data/ui/window.ui.in:255 src/Authenticator/application.py.in:36
msgid "Authenticator"
msgstr "AutentiksiDuaFaktor"
#: Authenticator/application.py.in:91 Authenticator/widgets/settings.py:239
#, fuzzy
msgid "Lock the application"
msgstr "Kunci aplikasi"
#: Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr ""
#: Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr ""
#: Authenticator/application.py.in:102
msgid "Restore"
msgstr ""
#: Authenticator/application.py.in:103
#, fuzzy
msgid "Backup"
msgstr "Kembali"
#. Night mode action
#: Authenticator/application.py.in:111
msgid "Preferences"
msgstr ""
#: Authenticator/application.py.in:112
msgid "Donate"
msgstr ""
#: Authenticator/application.py.in:113
#, fuzzy
msgid "Keyboard Shortcuts"
msgstr "Jalan pintas"
#: Authenticator/application.py.in:114
#, fuzzy
msgid "About Authenticator"
msgstr "AutentiksiDuaFaktor"
#: Authenticator/models/account.py:74
msgid "Default"
msgstr ""
#: Authenticator/widgets/accounts/add.py:50
#: Authenticator/widgets/headerbar.py:101
msgid "Add a new account"
msgstr "Tambah akun baru"
#: Authenticator/widgets/accounts/add.py:54
msgid "Add"
msgstr "Tambah"
#: Authenticator/widgets/accounts/add.py:62
msgid "Scan QR code"
msgstr "Pindai kode QR"
#: Authenticator/widgets/accounts/add.py:68
#: Authenticator/widgets/accounts/edit.py:58
msgid "Close"
msgstr "Tutup"
#: Authenticator/widgets/accounts/add.py:161
msgid "Provider"
msgstr ""
#: Authenticator/widgets/accounts/add.py:171
msgid "Account name"
msgstr "Nama Akun"
#: Authenticator/widgets/accounts/add.py:177
#, fuzzy
msgid "Secret token"
msgstr "Token Rahasia"
#: Authenticator/widgets/accounts/add.py:260
msgid "Invalid QR code"
msgstr "Kode QR tidak valid"
#: Authenticator/widgets/accounts/add.py:268
msgid "zbar library is not found. QRCode scanner will be disabled"
msgstr ""
#: Authenticator/widgets/accounts/edit.py:47
msgid "Edit {} - {}"
msgstr ""
#: Authenticator/widgets/accounts/edit.py:52
#: Authenticator/widgets/settings.py:143 Authenticator/widgets/utils.py:20
msgid "Save"
msgstr ""
#: Authenticator/widgets/accounts/list.py:164
msgid "The One-Time Passwords expires in {} seconds"
msgstr ""
#. Label
#: Authenticator/widgets/accounts/list.py:286
#, fuzzy
msgid "There are no accounts yet…"
msgstr "Tidak ada akun saat ini..."
#: Authenticator/widgets/accounts/row.py:59
msgid "Copy"
msgstr "Salin"
#: Authenticator/widgets/accounts/row.py:60
msgid "Edit"
msgstr ""
#: Authenticator/widgets/accounts/row.py:150
msgid "Couldn't generate the secret code"
msgstr "Tidak dapat menghasilkan kode rahasia"
#: Authenticator/widgets/actions_bar.py:52
msgid "Delete"
msgstr "Hapus"
#: Authenticator/widgets/headerbar.py:99
msgid "Search"
msgstr "Cari"
#: Authenticator/widgets/headerbar.py:103 Authenticator/widgets/settings.py:212
msgid "Settings"
msgstr "Pengaturan"
#: Authenticator/widgets/headerbar.py:105
msgid "Selection mode"
msgstr "Mode seleksi"
#: Authenticator/widgets/headerbar.py:107 Authenticator/widgets/utils.py:22
#: Authenticator/widgets/utils.py:48
msgid "Cancel"
msgstr "Batal"
#: Authenticator/widgets/headerbar.py:183
msgid "Click on items to select them"
msgstr "Klik pada item untuk menyeleksinya"
#: Authenticator/widgets/settings.py:139
#, fuzzy
msgid "Authentication Password"
msgstr "AutentiksiDuaFaktor"
#: Authenticator/widgets/settings.py:152
#, fuzzy
msgid "Old Password"
msgstr "Kata sandi lama"
#: Authenticator/widgets/settings.py:156
#, fuzzy
msgid "Password"
msgstr "Kata sandi lama"
#: Authenticator/widgets/settings.py:159
#, fuzzy
msgid "Repeat Password"
msgstr "Ulangan kata sandi baru"
#: Authenticator/widgets/settings.py:229
msgid "Dark theme"
msgstr ""
#: Authenticator/widgets/settings.py:229
msgid "Use a dark theme, if possible"
msgstr ""
#: Authenticator/widgets/settings.py:232
msgid "Appearance"
msgstr ""
#: Authenticator/widgets/settings.py:236
msgid "Clear the database"
msgstr ""
#: Authenticator/widgets/settings.py:236
msgid "Erase existing accounts"
msgstr ""
#: Authenticator/widgets/settings.py:240
msgid "Possibility to lock the application with a password"
msgstr ""
#: Authenticator/widgets/settings.py:243
#, fuzzy
msgid "Authentication password"
msgstr "AutentiksiDuaFaktor"
#: Authenticator/widgets/settings.py:244
msgid "Set up application authentication password"
msgstr ""
#: Authenticator/widgets/settings.py:250
#, fuzzy
msgid "Behaviour"
msgstr "Kebiasaan"
#: Authenticator/widgets/settings.py:259
msgid "The application needs to be restarted first."
msgstr ""
#: Authenticator/widgets/settings.py:288
msgid "The existing accounts will be erased in 5 seconds"
msgstr ""
#: Authenticator/widgets/settings.py:292 Authenticator/widgets/window.py.in:217
msgid "Undo"
msgstr "Undo"
#: Authenticator/widgets/utils.py:18
msgid "Open"
msgstr ""
#: Authenticator/widgets/utils.py:32 Authenticator/widgets/utils.py:37
msgid "JSON files"
msgstr ""
#: Authenticator/widgets/utils.py:47
#, fuzzy
msgid "Select"
msgstr "Mode seleksi"
#: Authenticator/widgets/window.py.in:213
msgid "An account or more were removed."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:7
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:5
#, fuzzy
@ -283,6 +56,116 @@ msgstr ""
msgid "Huge database of (290+) websites/applications"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:34
msgid ""
"Since I have moved the application to GOME Gitlab's World group, a Flatpak "
"build for each new commit is available to download from the site's website."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:38
msgid "Backup and restore from a basic JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:39
msgid "Backup and restore from an encrypted-GPG JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:40
msgid "Add andOTP support (free and open Android 2FA application)"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:41
msgid "New Settings Widow with 3 sections: appearance, behavior and backup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:42
msgid "Fix Flatpak Build with the latest GNOME Runtime"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:43
msgid "Move the project to GOME Gitlab's World group"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:50
msgid "GNOME Shell Search provider"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:51
msgid "Codes expire simultaneously #91"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:58
msgid "Revamped main window to more closely follow the GNOME HIG"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:59
msgid "Revamped add a new account window to make it easier to use"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:60
msgid ""
"Possibility to add an account from a provider not listed in the shipped "
"database"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:61
msgid "Possibilty to edit an account"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:62
msgid "One Time Password now visible by default"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:69
msgid "Fix python-dbus by using GDbus instead"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:76
msgid "Fix the QRScanner on GNOME Shell"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:77
msgid "Add a new entry for the account's username"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:78
msgid "Updated database of supported accounts"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:85
msgid "HOTFIX: App not running in DE other than GNOME"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:92
#, fuzzy
msgid "Rename project to Authenticator"
msgstr "Tentang Authenticator"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:93
msgid "Cleaner code base"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:94
msgid "Faster startup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:95
#, fuzzy
msgid "Remove unneeded features"
msgstr "Hapus akun terpilih"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:96
msgid "Switch to pyzbar instead of zbarlight"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:97
msgid "Flatpak package"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:104
msgid "Bilal Elmoussaoui"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:4
#, fuzzy
msgid "Two-factor authentication"
@ -314,19 +197,95 @@ msgstr ""
msgid "Default window maximized behaviour"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:21
msgid "Whether the application is locked with a password or not"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:26
msgid "Whether the application can be locked or not"
msgstr ""
#: data/ui/about_dialog.ui.in:10
#, fuzzy
msgid "Two-factor authentication code generator."
msgstr "Pembuat kode autentikasi dua faktor."
#: data/ui/about_dialog.ui.in:13
msgid "translator-credits"
msgstr "kredit-penerjemah"
#: data/ui/account_add.ui:24
msgid "Add a new account"
msgstr "Tambah akun baru"
#: data/ui/account_add.ui:27 data/ui/account_edit.ui:21
msgid "Close"
msgstr "Tutup"
#: data/ui/account_add.ui:36
msgid "Add"
msgstr "Tambah"
#: data/ui/account_add.ui:56
#, fuzzy
msgid "Scan QR Code"
msgstr "Pindai kode QR"
#: data/ui/account_edit.ui:30 data/ui/settings.ui.in:454
#: src/Authenticator/widgets/utils.py:34
msgid "Save"
msgstr ""
#: data/ui/account_row.ui:23
msgid "Edit"
msgstr ""
#: data/ui/account_row.ui:37
msgid "Delete"
msgstr "Hapus"
#: data/ui/account_row.ui:92
msgid "Copy PIN to clipboard"
msgstr ""
#: data/ui/settings.ui.in:66
#, fuzzy
msgid "Behaviour"
msgstr "Kebiasaan"
#: data/ui/settings.ui.in:100
msgid "Dark theme"
msgstr ""
#: data/ui/settings.ui.in:117
msgid "Use a dark theme, if possible"
msgstr ""
#: data/ui/settings.ui.in:179 src/Authenticator/application.py.in:91
#, fuzzy
msgid "Lock the application"
msgstr "Kunci aplikasi"
#: data/ui/settings.ui.in:196
#, fuzzy
msgid "Lock the application with a password"
msgstr "Kunci aplikasi"
#: data/ui/settings.ui.in:279
msgid "Keep your accounts safer "
msgstr ""
#: data/ui/settings.ui.in:303
#, fuzzy
msgid "Password"
msgstr "Kata sandi lama"
#: data/ui/settings.ui.in:348
#, fuzzy
msgid "Repeat Password"
msgstr "Ulangan kata sandi baru"
#: data/ui/settings.ui.in:410
msgid "Settings"
msgstr "Pengaturan"
#: data/ui/settings.ui.in:427
#, fuzzy
msgid "Authenticator Password"
msgstr "AutentiksiDuaFaktor"
#: data/ui/shortcuts.ui:13
msgctxt "shortcut window"
msgid "General"
@ -362,26 +321,147 @@ msgid "Add"
msgstr "Tambah"
#: data/ui/shortcuts.ui:51
#, fuzzy
msgctxt "shortcut window"
msgid "Select"
msgstr "Mode seleksi"
#: data/ui/shortcuts.ui:58
msgctxt "shortcut window"
msgid "Search"
msgstr "Cari"
#: authenticator.py.in:54
#: data/ui/window.ui.in:60
#, fuzzy
msgid "There are no accounts yet…"
msgstr "Tidak ada akun saat ini..."
#: data/ui/window.ui.in:187
#, fuzzy
msgid "Authenticator is locked"
msgstr "AutentiksiDuaFaktor"
#: data/ui/window.ui.in:222
msgid "Unlock"
msgstr "Buka Kunci"
#: src/authenticator.py.in:49
msgid "Start in debug mode"
msgstr "Mulai dengan mode debud"
#: authenticator.py.in:56
#: src/authenticator.py.in:51
msgid "Authenticator version number"
msgstr "Nomor versi Authenticator"
#~ msgid "translator-credits"
#~ msgstr "kredit-penerjemah"
#: src/Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr ""
#: src/Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr ""
#: src/Authenticator/application.py.in:102
msgid "Restore"
msgstr ""
#: src/Authenticator/application.py.in:103
#, fuzzy
msgid "Backup"
msgstr "Kembali"
#. Night mode action
#: src/Authenticator/application.py.in:111
msgid "Preferences"
msgstr ""
#: src/Authenticator/application.py.in:112
msgid "Donate"
msgstr ""
#: src/Authenticator/application.py.in:113
#, fuzzy
msgid "Keyboard Shortcuts"
msgstr "Jalan pintas"
#: src/Authenticator/application.py.in:114
#, fuzzy
msgid "About Authenticator"
msgstr "AutentiksiDuaFaktor"
#: src/Authenticator/models/account.py:70
msgid "Default"
msgstr ""
#: src/Authenticator/widgets/accounts/add.py:204
msgid "Invalid QR code"
msgstr "Kode QR tidak valid"
#: src/Authenticator/widgets/accounts/edit.py:45
msgid "Edit {} - {}"
msgstr ""
#: src/Authenticator/widgets/accounts/list.py:144
msgid "The One-Time Passwords expires in {} seconds"
msgstr ""
#: src/Authenticator/widgets/accounts/row.py:75
msgid "Couldn't generate the secret code"
msgstr "Tidak dapat menghasilkan kode rahasia"
#: src/Authenticator/widgets/settings.py:73
msgid "Authentication password was unset. Please restart the application"
msgstr ""
#: src/Authenticator/widgets/settings.py:81
msgid "Authentication password is now enabled. Please restart the application."
msgstr ""
#: src/Authenticator/widgets/utils.py:32
msgid "Open"
msgstr ""
#: src/Authenticator/widgets/utils.py:36 src/Authenticator/widgets/utils.py:62
msgid "Cancel"
msgstr "Batal"
#: src/Authenticator/widgets/utils.py:46 src/Authenticator/widgets/utils.py:51
msgid "JSON files"
msgstr ""
#: src/Authenticator/widgets/utils.py:61
#, fuzzy
msgid "Select"
msgstr "Mode seleksi"
#~ msgid "Account name"
#~ msgstr "Nama Akun"
#, fuzzy
#~ msgid "Secret token"
#~ msgstr "Token Rahasia"
#~ msgid "Copy"
#~ msgstr "Salin"
#~ msgid "Search"
#~ msgstr "Cari"
#~ msgid "Selection mode"
#~ msgstr "Mode seleksi"
#~ msgid "Click on items to select them"
#~ msgstr "Klik pada item untuk menyeleksinya"
#, fuzzy
#~ msgid "Old Password"
#~ msgstr "Kata sandi lama"
#, fuzzy
#~ msgid "Authentication password"
#~ msgstr "AutentiksiDuaFaktor"
#~ msgid "Undo"
#~ msgstr "Undo"
#, fuzzy
#~ msgctxt "shortcut window"
#~ msgid "Select"
#~ msgstr "Mode seleksi"
#, fuzzy
#~ msgid "Authenticator@NAME_SUFFIX@"
@ -397,14 +477,6 @@ msgstr "Nomor versi Authenticator"
#~ msgid "Backup Password"
#~ msgstr "Ganti kata sandi"
#, fuzzy
#~ msgid "Rename project to Authenticator"
#~ msgstr "Tentang Authenticator"
#, fuzzy
#~ msgid "Remove unneeded features"
#~ msgstr "Hapus akun terpilih"
#~ msgid "Next"
#~ msgstr "Selanjutnya"
@ -461,9 +533,6 @@ msgstr "Nomor versi Authenticator"
#~ msgid "Enter your password"
#~ msgstr "Masukkan kata sandi anda"
#~ msgid "Unlock"
#~ msgstr "Buka Kunci"
#~ msgid "Remove the account"
#~ msgstr "Hapus akun"

574
po/it.po
View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Authenticator\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-25 19:58+0100\n"
"POT-Creation-Date: 2019-02-11 22:35+0100\n"
"PO-Revision-Date: 2019-02-07 19:09+0000\n"
"Last-Translator: albanobattistella <albano_battistella@hotmail.com>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/authenticator/"
@ -19,227 +19,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.5-dev\n"
#: Authenticator/application.py.in:39
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:6
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:3
#: data/ui/window.ui.in:255 src/Authenticator/application.py.in:36
msgid "Authenticator"
msgstr "Authenticator"
#: Authenticator/application.py.in:91 Authenticator/widgets/settings.py:239
msgid "Lock the application"
msgstr "Blocca l'applicazione"
#: Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr "da un file di testo JSON"
#: Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr "in un file di testo JSON"
#: Authenticator/application.py.in:102
msgid "Restore"
msgstr "Ripristina"
#: Authenticator/application.py.in:103
msgid "Backup"
msgstr "Backup"
#. Night mode action
#: Authenticator/application.py.in:111
msgid "Preferences"
msgstr "Preferenze"
#: Authenticator/application.py.in:112
msgid "Donate"
msgstr "Donazioni"
#: Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr "Tasti rapidi"
#: Authenticator/application.py.in:114
msgid "About Authenticator"
msgstr "Informazioni su Authenticator"
#: Authenticator/models/account.py:74
msgid "Default"
msgstr "Impostazione predefinita"
#: Authenticator/widgets/accounts/add.py:50
#: Authenticator/widgets/headerbar.py:101
msgid "Add a new account"
msgstr "aggiungi un nuovo account"
#: Authenticator/widgets/accounts/add.py:54
msgid "Add"
msgstr "Aggiungi"
#: Authenticator/widgets/accounts/add.py:62
msgid "Scan QR code"
msgstr "Scansiona il codice QR"
#: Authenticator/widgets/accounts/add.py:68
#: Authenticator/widgets/accounts/edit.py:58
msgid "Close"
msgstr "Chiudi"
#: Authenticator/widgets/accounts/add.py:161
msgid "Provider"
msgstr "Provider"
#: Authenticator/widgets/accounts/add.py:171
msgid "Account name"
msgstr "Nome account"
#: Authenticator/widgets/accounts/add.py:177
msgid "Secret token"
msgstr "Token d'accesso"
#: Authenticator/widgets/accounts/add.py:260
msgid "Invalid QR code"
msgstr "Codice QR non valido"
#: Authenticator/widgets/accounts/add.py:268
msgid "zbar library is not found. QRCode scanner will be disabled"
msgstr ""
"La libreria Zbar non e' stata trovata. QRCode scanner verrà disabilitato"
#: Authenticator/widgets/accounts/edit.py:47
msgid "Edit {} - {}"
msgstr "Modifica {} - {}"
#: Authenticator/widgets/accounts/edit.py:52
#: Authenticator/widgets/settings.py:143 Authenticator/widgets/utils.py:20
msgid "Save"
msgstr "Salva"
#: Authenticator/widgets/accounts/list.py:164
msgid "The One-Time Passwords expires in {} seconds"
msgstr "Le One-time password scade in {} secondi"
#. Label
#: Authenticator/widgets/accounts/list.py:286
msgid "There are no accounts yet…"
msgstr "Non ci sono ancora account …"
#: Authenticator/widgets/accounts/row.py:59
msgid "Copy"
msgstr "Copia"
#: Authenticator/widgets/accounts/row.py:60
msgid "Edit"
msgstr "Modifica"
#: Authenticator/widgets/accounts/row.py:150
msgid "Couldn't generate the secret code"
msgstr "Non sono riuscito a generare il codice segreto"
#: Authenticator/widgets/actions_bar.py:52
msgid "Delete"
msgstr "Elimina"
#: Authenticator/widgets/headerbar.py:99
msgid "Search"
msgstr "Cerca"
#: Authenticator/widgets/headerbar.py:103 Authenticator/widgets/settings.py:212
msgid "Settings"
msgstr "Impostazioni"
#: Authenticator/widgets/headerbar.py:105
msgid "Selection mode"
msgstr "Modalità di selezione"
#: Authenticator/widgets/headerbar.py:107 Authenticator/widgets/utils.py:22
#: Authenticator/widgets/utils.py:48
msgid "Cancel"
msgstr "Cancella"
#: Authenticator/widgets/headerbar.py:183
msgid "Click on items to select them"
msgstr "Clicca sulle voci per selezionarle"
#: Authenticator/widgets/settings.py:139
msgid "Authentication Password"
msgstr "Password di autenticazione"
#: Authenticator/widgets/settings.py:152
msgid "Old Password"
msgstr "Vecchia Password"
#: Authenticator/widgets/settings.py:156
msgid "Password"
msgstr "Password"
#: Authenticator/widgets/settings.py:159
msgid "Repeat Password"
msgstr "Ripetere la Password"
#: Authenticator/widgets/settings.py:229
msgid "Dark theme"
msgstr "Tema scuro"
#: Authenticator/widgets/settings.py:229
msgid "Use a dark theme, if possible"
msgstr "Utilizzare un tema scuro, se possibile"
#: Authenticator/widgets/settings.py:232
msgid "Appearance"
msgstr "Aspetto"
#: Authenticator/widgets/settings.py:236
msgid "Clear the database"
msgstr "Pulisci database"
#: Authenticator/widgets/settings.py:236
msgid "Erase existing accounts"
msgstr "Cancellare account esistenti"
#: Authenticator/widgets/settings.py:240
msgid "Possibility to lock the application with a password"
msgstr "Possibilità di bloccare l'applicazione con una password"
#: Authenticator/widgets/settings.py:243
msgid "Authentication password"
msgstr "Password di autenticazione"
#: Authenticator/widgets/settings.py:244
msgid "Set up application authentication password"
msgstr "Impostare la password di autenticazione dell'applicazione"
#: Authenticator/widgets/settings.py:250
msgid "Behaviour"
msgstr "Comportamento"
#: Authenticator/widgets/settings.py:259
msgid "The application needs to be restarted first."
msgstr "L'applicazione necessita di essere riavviata."
#: Authenticator/widgets/settings.py:288
msgid "The existing accounts will be erased in 5 seconds"
msgstr "Gli account esistenti verranno cancellati in 5 secondi"
#: Authenticator/widgets/settings.py:292 Authenticator/widgets/window.py.in:217
msgid "Undo"
msgstr "Annulla"
#: Authenticator/widgets/utils.py:18
msgid "Open"
msgstr "apri"
#: Authenticator/widgets/utils.py:32 Authenticator/widgets/utils.py:37
msgid "JSON files"
msgstr "File JSON"
#: Authenticator/widgets/utils.py:47
msgid "Select"
msgstr "Seleziona"
#: Authenticator/widgets/window.py.in:213
msgid "An account or more were removed."
msgstr "Un account o più sono stati rimossi."
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:7
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:5
msgid "Two-factor authentication code generator"
@ -269,6 +54,116 @@ msgstr "Bella interfaccia utente"
msgid "Huge database of (290+) websites/applications"
msgstr "Enorme database di siti Web/applicazioni (290 +)"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:34
msgid ""
"Since I have moved the application to GOME Gitlab's World group, a Flatpak "
"build for each new commit is available to download from the site's website."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:38
msgid "Backup and restore from a basic JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:39
msgid "Backup and restore from an encrypted-GPG JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:40
msgid "Add andOTP support (free and open Android 2FA application)"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:41
msgid "New Settings Widow with 3 sections: appearance, behavior and backup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:42
msgid "Fix Flatpak Build with the latest GNOME Runtime"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:43
msgid "Move the project to GOME Gitlab's World group"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:50
msgid "GNOME Shell Search provider"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:51
msgid "Codes expire simultaneously #91"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:58
msgid "Revamped main window to more closely follow the GNOME HIG"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:59
msgid "Revamped add a new account window to make it easier to use"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:60
msgid ""
"Possibility to add an account from a provider not listed in the shipped "
"database"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:61
msgid "Possibilty to edit an account"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:62
msgid "One Time Password now visible by default"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:69
msgid "Fix python-dbus by using GDbus instead"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:76
msgid "Fix the QRScanner on GNOME Shell"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:77
msgid "Add a new entry for the account's username"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:78
msgid "Updated database of supported accounts"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:85
msgid "HOTFIX: App not running in DE other than GNOME"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:92
#, fuzzy
msgid "Rename project to Authenticator"
msgstr "Informazioni su Authenticator"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:93
#, fuzzy
msgid "Cleaner code base"
msgstr "Pulisci database"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:94
msgid "Faster startup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:95
msgid "Remove unneeded features"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:96
msgid "Switch to pyzbar instead of zbarlight"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:97
msgid "Flatpak package"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:104
msgid "Bilal Elmoussaoui"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:4
msgid "Two-factor authentication"
msgstr "Autenticazione a due fattori"
@ -298,14 +193,6 @@ msgstr "abilita / disabilita la modalità di notte nell'applicazione"
msgid "Default window maximized behaviour"
msgstr "La finestra predefinita massimizza il comportamento della finestra"
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:21
msgid "Whether the application is locked with a password or not"
msgstr "Se l'applicazione è bloccata con una password o non"
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:26
msgid "Whether the application can be locked or not"
msgstr "Se l'applicazione può essere bloccata o non"
#: data/ui/about_dialog.ui.in:10
msgid "Two-factor authentication code generator."
msgstr "Generatore di codice di autenticazione a due fattori."
@ -314,6 +201,82 @@ msgstr "Generatore di codice di autenticazione a due fattori."
msgid "translator-credits"
msgstr "Traduttore-crediti"
#: data/ui/account_add.ui:24
msgid "Add a new account"
msgstr "aggiungi un nuovo account"
#: data/ui/account_add.ui:27 data/ui/account_edit.ui:21
msgid "Close"
msgstr "Chiudi"
#: data/ui/account_add.ui:36
msgid "Add"
msgstr "Aggiungi"
#: data/ui/account_add.ui:56
#, fuzzy
msgid "Scan QR Code"
msgstr "Scansiona il codice QR"
#: data/ui/account_edit.ui:30 data/ui/settings.ui.in:454
#: src/Authenticator/widgets/utils.py:34
msgid "Save"
msgstr "Salva"
#: data/ui/account_row.ui:23
msgid "Edit"
msgstr "Modifica"
#: data/ui/account_row.ui:37
msgid "Delete"
msgstr "Elimina"
#: data/ui/account_row.ui:92
msgid "Copy PIN to clipboard"
msgstr ""
#: data/ui/settings.ui.in:66
msgid "Behaviour"
msgstr "Comportamento"
#: data/ui/settings.ui.in:100
msgid "Dark theme"
msgstr "Tema scuro"
#: data/ui/settings.ui.in:117
msgid "Use a dark theme, if possible"
msgstr "Utilizzare un tema scuro, se possibile"
#: data/ui/settings.ui.in:179 src/Authenticator/application.py.in:91
msgid "Lock the application"
msgstr "Blocca l'applicazione"
#: data/ui/settings.ui.in:196
#, fuzzy
msgid "Lock the application with a password"
msgstr "Possibilità di bloccare l'applicazione con una password"
#: data/ui/settings.ui.in:279
msgid "Keep your accounts safer "
msgstr ""
#: data/ui/settings.ui.in:303
msgid "Password"
msgstr "Password"
#: data/ui/settings.ui.in:348
msgid "Repeat Password"
msgstr "Ripetere la Password"
#: data/ui/settings.ui.in:410
msgid "Settings"
msgstr "Impostazioni"
#: data/ui/settings.ui.in:427
#, fuzzy
msgid "Authenticator Password"
msgstr "Password di autenticazione"
#: data/ui/shortcuts.ui:13
msgctxt "shortcut window"
msgid "General"
@ -347,18 +310,165 @@ msgstr "Aggiungi"
#: data/ui/shortcuts.ui:51
msgctxt "shortcut window"
msgid "Select"
msgstr "Seleziona"
#: data/ui/shortcuts.ui:58
msgctxt "shortcut window"
msgid "Search"
msgstr "Cerca"
#: authenticator.py.in:54
#: data/ui/window.ui.in:60
msgid "There are no accounts yet…"
msgstr "Non ci sono ancora account …"
#: data/ui/window.ui.in:187
#, fuzzy
msgid "Authenticator is locked"
msgstr "Authenticator"
#: data/ui/window.ui.in:222
msgid "Unlock"
msgstr ""
#: src/authenticator.py.in:49
msgid "Start in debug mode"
msgstr "Avviare in modalità debug"
#: authenticator.py.in:56
#: src/authenticator.py.in:51
msgid "Authenticator version number"
msgstr "Numero di versione di Authenticator"
#: src/Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr "da un file di testo JSON"
#: src/Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr "in un file di testo JSON"
#: src/Authenticator/application.py.in:102
msgid "Restore"
msgstr "Ripristina"
#: src/Authenticator/application.py.in:103
msgid "Backup"
msgstr "Backup"
#. Night mode action
#: src/Authenticator/application.py.in:111
msgid "Preferences"
msgstr "Preferenze"
#: src/Authenticator/application.py.in:112
msgid "Donate"
msgstr "Donazioni"
#: src/Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr "Tasti rapidi"
#: src/Authenticator/application.py.in:114
msgid "About Authenticator"
msgstr "Informazioni su Authenticator"
#: src/Authenticator/models/account.py:70
msgid "Default"
msgstr "Impostazione predefinita"
#: src/Authenticator/widgets/accounts/add.py:204
msgid "Invalid QR code"
msgstr "Codice QR non valido"
#: src/Authenticator/widgets/accounts/edit.py:45
msgid "Edit {} - {}"
msgstr "Modifica {} - {}"
#: src/Authenticator/widgets/accounts/list.py:144
msgid "The One-Time Passwords expires in {} seconds"
msgstr "Le One-time password scade in {} secondi"
#: src/Authenticator/widgets/accounts/row.py:75
msgid "Couldn't generate the secret code"
msgstr "Non sono riuscito a generare il codice segreto"
#: src/Authenticator/widgets/settings.py:73
msgid "Authentication password was unset. Please restart the application"
msgstr ""
#: src/Authenticator/widgets/settings.py:81
msgid "Authentication password is now enabled. Please restart the application."
msgstr ""
#: src/Authenticator/widgets/utils.py:32
msgid "Open"
msgstr "apri"
#: src/Authenticator/widgets/utils.py:36 src/Authenticator/widgets/utils.py:62
msgid "Cancel"
msgstr "Cancella"
#: src/Authenticator/widgets/utils.py:46 src/Authenticator/widgets/utils.py:51
msgid "JSON files"
msgstr "File JSON"
#: src/Authenticator/widgets/utils.py:61
msgid "Select"
msgstr "Seleziona"
#~ msgid "Provider"
#~ msgstr "Provider"
#~ msgid "Account name"
#~ msgstr "Nome account"
#~ msgid "Secret token"
#~ msgstr "Token d'accesso"
#~ msgid "zbar library is not found. QRCode scanner will be disabled"
#~ msgstr ""
#~ "La libreria Zbar non e' stata trovata. QRCode scanner verrà disabilitato"
#~ msgid "Copy"
#~ msgstr "Copia"
#~ msgid "Search"
#~ msgstr "Cerca"
#~ msgid "Selection mode"
#~ msgstr "Modalità di selezione"
#~ msgid "Click on items to select them"
#~ msgstr "Clicca sulle voci per selezionarle"
#~ msgid "Old Password"
#~ msgstr "Vecchia Password"
#~ msgid "Appearance"
#~ msgstr "Aspetto"
#~ msgid "Erase existing accounts"
#~ msgstr "Cancellare account esistenti"
#~ msgid "Authentication password"
#~ msgstr "Password di autenticazione"
#~ msgid "Set up application authentication password"
#~ msgstr "Impostare la password di autenticazione dell'applicazione"
#~ msgid "The application needs to be restarted first."
#~ msgstr "L'applicazione necessita di essere riavviata."
#~ msgid "The existing accounts will be erased in 5 seconds"
#~ msgstr "Gli account esistenti verranno cancellati in 5 secondi"
#~ msgid "Undo"
#~ msgstr "Annulla"
#~ msgid "An account or more were removed."
#~ msgstr "Un account o più sono stati rimossi."
#~ msgid "Whether the application is locked with a password or not"
#~ msgstr "Se l'applicazione è bloccata con una password o non"
#~ msgid "Whether the application can be locked or not"
#~ msgstr "Se l'applicazione può essere bloccata o non"
#~ msgctxt "shortcut window"
#~ msgid "Select"
#~ msgstr "Seleziona"

581
po/ko.po
View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Authenticator\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-25 19:56+0100\n"
"POT-Creation-Date: 2019-02-11 22:35+0100\n"
"PO-Revision-Date: 2019-01-01 10:42+0000\n"
"Last-Translator: Minori Hiraoka (미노리) <minori@mnetwork.co.kr>\n"
"Language-Team: Korean <https://hosted.weblate.org/projects/authenticator/"
@ -19,228 +19,12 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 3.4-dev\n"
#: Authenticator/application.py.in:39
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:6
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:3
#: data/ui/window.ui.in:255 src/Authenticator/application.py.in:36
msgid "Authenticator"
msgstr "인증기"
#: Authenticator/application.py.in:91 Authenticator/widgets/settings.py:239
msgid "Lock the application"
msgstr "애플리케이션을 잠그기"
#: Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr "JSON 파일에서 가져오기"
#: Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr "JSON 파일로 내보내기"
#: Authenticator/application.py.in:102
msgid "Restore"
msgstr "복원"
#: Authenticator/application.py.in:103
msgid "Backup"
msgstr "백업"
#. Night mode action
#: Authenticator/application.py.in:111
msgid "Preferences"
msgstr "설정"
#: Authenticator/application.py.in:112
msgid "Donate"
msgstr "기부"
#: Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr "키보드 단축키"
#: Authenticator/application.py.in:114
msgid "About Authenticator"
msgstr "인증기에 대하여"
#: Authenticator/models/account.py:74
msgid "Default"
msgstr "기본값"
#: Authenticator/widgets/accounts/add.py:50
#: Authenticator/widgets/headerbar.py:101
msgid "Add a new account"
msgstr "새로운 계정 추가"
#: Authenticator/widgets/accounts/add.py:54
msgid "Add"
msgstr "추가"
#: Authenticator/widgets/accounts/add.py:62
msgid "Scan QR code"
msgstr "QR 코드 스캔"
#: Authenticator/widgets/accounts/add.py:68
#: Authenticator/widgets/accounts/edit.py:58
msgid "Close"
msgstr "닫기"
#: Authenticator/widgets/accounts/add.py:161
msgid "Provider"
msgstr "제공자"
#: Authenticator/widgets/accounts/add.py:171
msgid "Account name"
msgstr "계정 이름"
#: Authenticator/widgets/accounts/add.py:177
msgid "Secret token"
msgstr "비밀 토큰"
#: Authenticator/widgets/accounts/add.py:260
msgid "Invalid QR code"
msgstr "올바르지 않은 QR 코드"
#: Authenticator/widgets/accounts/add.py:268
msgid "zbar library is not found. QRCode scanner will be disabled"
msgstr ""
"설치된 zbar 라이브러리가 발견되지 않았습니다. QR 코드 스캐너가 비활성화 됩니"
"다"
#: Authenticator/widgets/accounts/edit.py:47
msgid "Edit {} - {}"
msgstr "{} - {} 편집"
#: Authenticator/widgets/accounts/edit.py:52
#: Authenticator/widgets/settings.py:143 Authenticator/widgets/utils.py:20
msgid "Save"
msgstr "저장"
#: Authenticator/widgets/accounts/list.py:164
msgid "The One-Time Passwords expires in {} seconds"
msgstr "일회용 비밀번호가 {} 초 후에 만료됩니다"
#. Label
#: Authenticator/widgets/accounts/list.py:286
msgid "There are no accounts yet…"
msgstr "아직 계정이 없습니다…"
#: Authenticator/widgets/accounts/row.py:59
msgid "Copy"
msgstr "복사"
#: Authenticator/widgets/accounts/row.py:60
msgid "Edit"
msgstr "편집"
#: Authenticator/widgets/accounts/row.py:150
msgid "Couldn't generate the secret code"
msgstr "비밀 코드를 생성할 수 없었습니다"
#: Authenticator/widgets/actions_bar.py:52
msgid "Delete"
msgstr "삭제"
#: Authenticator/widgets/headerbar.py:99
msgid "Search"
msgstr "검색"
#: Authenticator/widgets/headerbar.py:103 Authenticator/widgets/settings.py:212
msgid "Settings"
msgstr "설정"
#: Authenticator/widgets/headerbar.py:105
msgid "Selection mode"
msgstr "선택 모드"
#: Authenticator/widgets/headerbar.py:107 Authenticator/widgets/utils.py:22
#: Authenticator/widgets/utils.py:48
msgid "Cancel"
msgstr "취소"
#: Authenticator/widgets/headerbar.py:183
msgid "Click on items to select them"
msgstr "항목을 눌러 선택하세요"
#: Authenticator/widgets/settings.py:139
msgid "Authentication Password"
msgstr "인증 암호"
#: Authenticator/widgets/settings.py:152
msgid "Old Password"
msgstr "기존 암호"
#: Authenticator/widgets/settings.py:156
msgid "Password"
msgstr "암호"
#: Authenticator/widgets/settings.py:159
msgid "Repeat Password"
msgstr "암호 확인"
#: Authenticator/widgets/settings.py:229
msgid "Dark theme"
msgstr "어두운 테마"
#: Authenticator/widgets/settings.py:229
msgid "Use a dark theme, if possible"
msgstr "가능하다면 어두운 테마를 사용합니다"
#: Authenticator/widgets/settings.py:232
msgid "Appearance"
msgstr "표시 형식"
#: Authenticator/widgets/settings.py:236
msgid "Clear the database"
msgstr "데이터베이스 지우기"
#: Authenticator/widgets/settings.py:236
msgid "Erase existing accounts"
msgstr "존재하는 계정 삭제"
#: Authenticator/widgets/settings.py:240
msgid "Possibility to lock the application with a password"
msgstr "애플리케이션을 암호로 잠글 수 있는 가능성"
#: Authenticator/widgets/settings.py:243
msgid "Authentication password"
msgstr "인증 암호"
#: Authenticator/widgets/settings.py:244
msgid "Set up application authentication password"
msgstr "애플리케이션 인증 암호 설정"
#: Authenticator/widgets/settings.py:250
msgid "Behaviour"
msgstr "동작"
#: Authenticator/widgets/settings.py:259
msgid "The application needs to be restarted first."
msgstr "애플리케이션이 우선 다시 시작 되어야 합니다."
#: Authenticator/widgets/settings.py:288
msgid "The existing accounts will be erased in 5 seconds"
msgstr "존재하는 계정들이 5초 후에 삭제됩니다"
#: Authenticator/widgets/settings.py:292 Authenticator/widgets/window.py.in:217
msgid "Undo"
msgstr "되돌리기"
#: Authenticator/widgets/utils.py:18
msgid "Open"
msgstr "열기"
#: Authenticator/widgets/utils.py:32 Authenticator/widgets/utils.py:37
msgid "JSON files"
msgstr "JSON 파일"
#: Authenticator/widgets/utils.py:47
msgid "Select"
msgstr "선택"
#: Authenticator/widgets/window.py.in:213
msgid "An account or more were removed."
msgstr "한개 혹은 여러개의 계정이 제거되었습니다."
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:7
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:5
msgid "Two-factor authentication code generator"
@ -268,6 +52,116 @@ msgstr "아름다운 UI"
msgid "Huge database of (290+) websites/applications"
msgstr "290개 이상의 웹 사이트/애플리케이션을 지원"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:34
msgid ""
"Since I have moved the application to GOME Gitlab's World group, a Flatpak "
"build for each new commit is available to download from the site's website."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:38
msgid "Backup and restore from a basic JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:39
msgid "Backup and restore from an encrypted-GPG JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:40
msgid "Add andOTP support (free and open Android 2FA application)"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:41
msgid "New Settings Widow with 3 sections: appearance, behavior and backup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:42
msgid "Fix Flatpak Build with the latest GNOME Runtime"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:43
msgid "Move the project to GOME Gitlab's World group"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:50
msgid "GNOME Shell Search provider"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:51
msgid "Codes expire simultaneously #91"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:58
msgid "Revamped main window to more closely follow the GNOME HIG"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:59
msgid "Revamped add a new account window to make it easier to use"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:60
msgid ""
"Possibility to add an account from a provider not listed in the shipped "
"database"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:61
msgid "Possibilty to edit an account"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:62
msgid "One Time Password now visible by default"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:69
msgid "Fix python-dbus by using GDbus instead"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:76
msgid "Fix the QRScanner on GNOME Shell"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:77
msgid "Add a new entry for the account's username"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:78
msgid "Updated database of supported accounts"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:85
msgid "HOTFIX: App not running in DE other than GNOME"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:92
#, fuzzy
msgid "Rename project to Authenticator"
msgstr "인증기에 대하여"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:93
#, fuzzy
msgid "Cleaner code base"
msgstr "데이터베이스 지우기"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:94
msgid "Faster startup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:95
msgid "Remove unneeded features"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:96
msgid "Switch to pyzbar instead of zbarlight"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:97
msgid "Flatpak package"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:104
msgid "Bilal Elmoussaoui"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:4
msgid "Two-factor authentication"
msgstr "2차 인증"
@ -297,18 +191,90 @@ msgstr "애플리케이션 안에서 야간 모드를 활성화/비활성화"
msgid "Default window maximized behaviour"
msgstr "기본 창 최대화 행동"
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:21
msgid "Whether the application is locked with a password or not"
msgstr "애플리케이션 암호 설정 여부"
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:26
msgid "Whether the application can be locked or not"
msgstr "애플리케이션 암호 설정 가능 여부"
#: data/ui/about_dialog.ui.in:10
msgid "Two-factor authentication code generator."
msgstr "2차 인증 비밀번호 생성기."
#: data/ui/about_dialog.ui.in:13
msgid "translator-credits"
msgstr "Minori Hiraoka <minori@mnetwork.co.kr>"
#: data/ui/account_add.ui:24
msgid "Add a new account"
msgstr "새로운 계정 추가"
#: data/ui/account_add.ui:27 data/ui/account_edit.ui:21
msgid "Close"
msgstr "닫기"
#: data/ui/account_add.ui:36
msgid "Add"
msgstr "추가"
#: data/ui/account_add.ui:56
#, fuzzy
msgid "Scan QR Code"
msgstr "QR 코드 스캔"
#: data/ui/account_edit.ui:30 data/ui/settings.ui.in:454
#: src/Authenticator/widgets/utils.py:34
msgid "Save"
msgstr "저장"
#: data/ui/account_row.ui:23
msgid "Edit"
msgstr "편집"
#: data/ui/account_row.ui:37
msgid "Delete"
msgstr "삭제"
#: data/ui/account_row.ui:92
msgid "Copy PIN to clipboard"
msgstr ""
#: data/ui/settings.ui.in:66
msgid "Behaviour"
msgstr "동작"
#: data/ui/settings.ui.in:100
msgid "Dark theme"
msgstr "어두운 테마"
#: data/ui/settings.ui.in:117
msgid "Use a dark theme, if possible"
msgstr "가능하다면 어두운 테마를 사용합니다"
#: data/ui/settings.ui.in:179 src/Authenticator/application.py.in:91
msgid "Lock the application"
msgstr "애플리케이션을 잠그기"
#: data/ui/settings.ui.in:196
#, fuzzy
msgid "Lock the application with a password"
msgstr "애플리케이션을 암호로 잠글 수 있는 가능성"
#: data/ui/settings.ui.in:279
msgid "Keep your accounts safer "
msgstr ""
#: data/ui/settings.ui.in:303
msgid "Password"
msgstr "암호"
#: data/ui/settings.ui.in:348
msgid "Repeat Password"
msgstr "암호 확인"
#: data/ui/settings.ui.in:410
msgid "Settings"
msgstr "설정"
#: data/ui/settings.ui.in:427
#, fuzzy
msgid "Authenticator Password"
msgstr "인증 암호"
#: data/ui/shortcuts.ui:13
msgctxt "shortcut window"
msgid "General"
@ -341,21 +307,166 @@ msgstr "추가"
#: data/ui/shortcuts.ui:51
msgctxt "shortcut window"
msgid "Select"
msgstr "선택"
#: data/ui/shortcuts.ui:58
msgctxt "shortcut window"
msgid "Search"
msgstr "검색"
#: authenticator.py.in:54
#: data/ui/window.ui.in:60
msgid "There are no accounts yet…"
msgstr "아직 계정이 없습니다…"
#: data/ui/window.ui.in:187
#, fuzzy
msgid "Authenticator is locked"
msgstr "인증기"
#: data/ui/window.ui.in:222
msgid "Unlock"
msgstr ""
#: src/authenticator.py.in:49
msgid "Start in debug mode"
msgstr "디버그 모드로 시작"
#: authenticator.py.in:56
#: src/authenticator.py.in:51
msgid "Authenticator version number"
msgstr "인증기 버전"
#~ msgid "translator-credits"
#~ msgstr "Minori Hiraoka <minori@mnetwork.co.kr>"
#: src/Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr "JSON 파일에서 가져오기"
#: src/Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr "JSON 파일로 내보내기"
#: src/Authenticator/application.py.in:102
msgid "Restore"
msgstr "복원"
#: src/Authenticator/application.py.in:103
msgid "Backup"
msgstr "백업"
#. Night mode action
#: src/Authenticator/application.py.in:111
msgid "Preferences"
msgstr "설정"
#: src/Authenticator/application.py.in:112
msgid "Donate"
msgstr "기부"
#: src/Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr "키보드 단축키"
#: src/Authenticator/application.py.in:114
msgid "About Authenticator"
msgstr "인증기에 대하여"
#: src/Authenticator/models/account.py:70
msgid "Default"
msgstr "기본값"
#: src/Authenticator/widgets/accounts/add.py:204
msgid "Invalid QR code"
msgstr "올바르지 않은 QR 코드"
#: src/Authenticator/widgets/accounts/edit.py:45
msgid "Edit {} - {}"
msgstr "{} - {} 편집"
#: src/Authenticator/widgets/accounts/list.py:144
msgid "The One-Time Passwords expires in {} seconds"
msgstr "일회용 비밀번호가 {} 초 후에 만료됩니다"
#: src/Authenticator/widgets/accounts/row.py:75
msgid "Couldn't generate the secret code"
msgstr "비밀 코드를 생성할 수 없었습니다"
#: src/Authenticator/widgets/settings.py:73
msgid "Authentication password was unset. Please restart the application"
msgstr ""
#: src/Authenticator/widgets/settings.py:81
msgid "Authentication password is now enabled. Please restart the application."
msgstr ""
#: src/Authenticator/widgets/utils.py:32
msgid "Open"
msgstr "열기"
#: src/Authenticator/widgets/utils.py:36 src/Authenticator/widgets/utils.py:62
msgid "Cancel"
msgstr "취소"
#: src/Authenticator/widgets/utils.py:46 src/Authenticator/widgets/utils.py:51
msgid "JSON files"
msgstr "JSON 파일"
#: src/Authenticator/widgets/utils.py:61
msgid "Select"
msgstr "선택"
#~ msgid "Provider"
#~ msgstr "제공자"
#~ msgid "Account name"
#~ msgstr "계정 이름"
#~ msgid "Secret token"
#~ msgstr "비밀 토큰"
#~ msgid "zbar library is not found. QRCode scanner will be disabled"
#~ msgstr ""
#~ "설치된 zbar 라이브러리가 발견되지 않았습니다. QR 코드 스캐너가 비활성화 됩"
#~ "니다"
#~ msgid "Copy"
#~ msgstr "복사"
#~ msgid "Search"
#~ msgstr "검색"
#~ msgid "Selection mode"
#~ msgstr "선택 모드"
#~ msgid "Click on items to select them"
#~ msgstr "항목을 눌러 선택하세요"
#~ msgid "Old Password"
#~ msgstr "기존 암호"
#~ msgid "Appearance"
#~ msgstr "표시 형식"
#~ msgid "Erase existing accounts"
#~ msgstr "존재하는 계정 삭제"
#~ msgid "Authentication password"
#~ msgstr "인증 암호"
#~ msgid "Set up application authentication password"
#~ msgstr "애플리케이션 인증 암호 설정"
#~ msgid "The application needs to be restarted first."
#~ msgstr "애플리케이션이 우선 다시 시작 되어야 합니다."
#~ msgid "The existing accounts will be erased in 5 seconds"
#~ msgstr "존재하는 계정들이 5초 후에 삭제됩니다"
#~ msgid "Undo"
#~ msgstr "되돌리기"
#~ msgid "An account or more were removed."
#~ msgstr "한개 혹은 여러개의 계정이 제거되었습니다."
#~ msgid "Whether the application is locked with a password or not"
#~ msgstr "애플리케이션 암호 설정 여부"
#~ msgid "Whether the application can be locked or not"
#~ msgstr "애플리케이션 암호 설정 가능 여부"
#~ msgctxt "shortcut window"
#~ msgid "Select"
#~ msgstr "선택"

View file

@ -1 +1 @@
i18n.gettext('Authenticator', preset: 'glib')
i18n.gettext(gettext_package, preset: 'glib')

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-25 19:56+0100\n"
"POT-Creation-Date: 2019-02-11 22:35+0100\n"
"PO-Revision-Date: 2019-01-01 06:20+0000\n"
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/"
@ -19,228 +19,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.4-dev\n"
#: Authenticator/application.py.in:39
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:6
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:3
#: data/ui/window.ui.in:255 src/Authenticator/application.py.in:36
msgid "Authenticator"
msgstr "Authenticator"
#: Authenticator/application.py.in:91 Authenticator/widgets/settings.py:239
msgid "Lock the application"
msgstr "Lås programmet"
#: Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr "fra en JSON-fil i klartekst"
#: Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr "i en JSON-fil i klartekst"
#: Authenticator/application.py.in:102
msgid "Restore"
msgstr "Gjenopprett"
#: Authenticator/application.py.in:103
msgid "Backup"
msgstr "Sikkerhetskopier"
#. Night mode action
#: Authenticator/application.py.in:111
msgid "Preferences"
msgstr "Innstillinger"
#: Authenticator/application.py.in:112
msgid "Donate"
msgstr "Doner"
#: Authenticator/application.py.in:113
#, fuzzy
msgid "Keyboard Shortcuts"
msgstr "Snarveier"
#: Authenticator/application.py.in:114
#, fuzzy
msgid "About Authenticator"
msgstr "Authenticator"
#: Authenticator/models/account.py:74
msgid "Default"
msgstr "Forvalg"
#: Authenticator/widgets/accounts/add.py:50
#: Authenticator/widgets/headerbar.py:101
msgid "Add a new account"
msgstr "Legg til ny konto"
#: Authenticator/widgets/accounts/add.py:54
msgid "Add"
msgstr "Legg til"
#: Authenticator/widgets/accounts/add.py:62
msgid "Scan QR code"
msgstr "Skann QR-kode"
#: Authenticator/widgets/accounts/add.py:68
#: Authenticator/widgets/accounts/edit.py:58
msgid "Close"
msgstr "Lukk"
#: Authenticator/widgets/accounts/add.py:161
msgid "Provider"
msgstr "Tilbyder"
#: Authenticator/widgets/accounts/add.py:171
msgid "Account name"
msgstr "Kontonavn"
#: Authenticator/widgets/accounts/add.py:177
msgid "Secret token"
msgstr "Hemmelig symbol"
#: Authenticator/widgets/accounts/add.py:260
msgid "Invalid QR code"
msgstr "Ugyldig QR-kode"
#: Authenticator/widgets/accounts/add.py:268
msgid "zbar library is not found. QRCode scanner will be disabled"
msgstr "zbar-bibliotek ble ikke funnet. QRkodeskanneren vil skrus av"
#: Authenticator/widgets/accounts/edit.py:47
msgid "Edit {} - {}"
msgstr "Rediger {} - {}"
#: Authenticator/widgets/accounts/edit.py:52
#: Authenticator/widgets/settings.py:143 Authenticator/widgets/utils.py:20
msgid "Save"
msgstr "Lagre"
#: Authenticator/widgets/accounts/list.py:164
msgid "The One-Time Passwords expires in {} seconds"
msgstr "Engangspassordet utløper om {} sekunder"
#. Label
#: Authenticator/widgets/accounts/list.py:286
msgid "There are no accounts yet…"
msgstr "Ingen kontoer enda…"
#: Authenticator/widgets/accounts/row.py:59
msgid "Copy"
msgstr "Kopier"
#: Authenticator/widgets/accounts/row.py:60
msgid "Edit"
msgstr "Rediger"
#: Authenticator/widgets/accounts/row.py:150
msgid "Couldn't generate the secret code"
msgstr "Kunne ikke generere hemmelig kode"
#: Authenticator/widgets/actions_bar.py:52
msgid "Delete"
msgstr "Slett"
#: Authenticator/widgets/headerbar.py:99
msgid "Search"
msgstr "Søk"
#: Authenticator/widgets/headerbar.py:103 Authenticator/widgets/settings.py:212
msgid "Settings"
msgstr "Innstillinger"
#: Authenticator/widgets/headerbar.py:105
msgid "Selection mode"
msgstr "Utvelgelsesmodus"
#: Authenticator/widgets/headerbar.py:107 Authenticator/widgets/utils.py:22
#: Authenticator/widgets/utils.py:48
msgid "Cancel"
msgstr "Avbryt"
#: Authenticator/widgets/headerbar.py:183
msgid "Click on items to select them"
msgstr "Klikk på elementene for å velge dem"
#: Authenticator/widgets/settings.py:139
msgid "Authentication Password"
msgstr "Autentiserings passord"
#: Authenticator/widgets/settings.py:152
msgid "Old Password"
msgstr "Gammelt passord"
#: Authenticator/widgets/settings.py:156
msgid "Password"
msgstr "Passord"
#: Authenticator/widgets/settings.py:159
msgid "Repeat Password"
msgstr "Gjenta passord"
#: Authenticator/widgets/settings.py:229
msgid "Dark theme"
msgstr "Mørk drakt"
#: Authenticator/widgets/settings.py:229
msgid "Use a dark theme, if possible"
msgstr "Bruk mørk drakt, hvis mulig"
#: Authenticator/widgets/settings.py:232
msgid "Appearance"
msgstr "Utseende"
#: Authenticator/widgets/settings.py:236
msgid "Clear the database"
msgstr "Tøm databasen"
#: Authenticator/widgets/settings.py:236
msgid "Erase existing accounts"
msgstr "Slett eksisterende kontoer"
#: Authenticator/widgets/settings.py:240
msgid "Possibility to lock the application with a password"
msgstr "Mulighet for å låse programmet med et passord"
#: Authenticator/widgets/settings.py:243
msgid "Authentication password"
msgstr "Autentiserings passord"
#: Authenticator/widgets/settings.py:244
msgid "Set up application authentication password"
msgstr "Sett opp identitetbekreftelsespassord for programmet"
#: Authenticator/widgets/settings.py:250
msgid "Behaviour"
msgstr "Oppførsel"
#: Authenticator/widgets/settings.py:259
msgid "The application needs to be restarted first."
msgstr "Programmet må startes på nytt først."
#: Authenticator/widgets/settings.py:288
msgid "The existing accounts will be erased in 5 seconds"
msgstr "Eksisterende kontoer vil bli slettet om 5 sekunder"
#: Authenticator/widgets/settings.py:292 Authenticator/widgets/window.py.in:217
msgid "Undo"
msgstr "Angre"
#: Authenticator/widgets/utils.py:18
msgid "Open"
msgstr "Åpne"
#: Authenticator/widgets/utils.py:32 Authenticator/widgets/utils.py:37
msgid "JSON files"
msgstr "JSON-filer"
#: Authenticator/widgets/utils.py:47
msgid "Select"
msgstr "Velg"
#: Authenticator/widgets/window.py.in:213
msgid "An account or more were removed."
msgstr "Én eller flere kontoer ble fjernet."
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:7
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:5
msgid "Two-factor authentication code generator"
@ -269,6 +53,130 @@ msgstr "Vakkert grensesnitt"
msgid "Huge database of (290+) websites/applications"
msgstr "Stor database med (290+) nettsider/programmer"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:34
#, fuzzy
msgid ""
"Since I have moved the application to GOME Gitlab's World group, a Flatpak "
"build for each new commit is available to download from the site's website."
msgstr ""
"Siden jeg har flyttet programmet til GNOME sin Gitlab-verdensgruppe, finnes "
"et Flatpak-bygg tilgjengelig for hver nye innsendelse som er tilgjengelig "
"fornedlasting fra sidens nettside."
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:38
msgid "Backup and restore from a basic JSON file"
msgstr "Sikkerhetskopier og gjenopprett fra grunnleggende JSON-fil"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:39
#, fuzzy
msgid "Backup and restore from an encrypted-GPG JSON file"
msgstr "Sikkerhetskopier og gjenopprett fra en GPG-kryptert JSON-fil"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:40
#, fuzzy
msgid "Add andOTP support (free and open Android 2FA application)"
msgstr "Legg til andOTP-støtte (fritt og åpent Android 2FA-program)"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:41
#, fuzzy
msgid "New Settings Widow with 3 sections: appearance, behavior and backup"
msgstr ""
"Nytt tredelt innstillingsvindu: Utseende, oppførsel og sikkerhetskopiering"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:42
#, fuzzy
msgid "Fix Flatpak Build with the latest GNOME Runtime"
msgstr "Fiks Flatpak-bygg med siste GNOME-kjørerutine"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:43
#, fuzzy
msgid "Move the project to GOME Gitlab's World group"
msgstr "Flytting av prosjektet til GNOME sin GitLab-verdensgruppe"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:50
msgid "GNOME Shell Search provider"
msgstr "GNOME-skallsøktilbyder"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:51
msgid "Codes expire simultaneously #91"
msgstr "Koder utløper samtidig #91"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:58
#, fuzzy
msgid "Revamped main window to more closely follow the GNOME HIG"
msgstr ""
"Omorganisering av hovedvinduet for bedre overensstemmelse med GNOME HIG"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:59
msgid "Revamped add a new account window to make it easier to use"
msgstr "Omorganisering av vindu for tillegg av konto for enklere bruk"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:60
#, fuzzy
msgid ""
"Possibility to add an account from a provider not listed in the shipped "
"database"
msgstr ""
"Mulighet for å legge til en konto fra en tilbyder som ikke er opplistet i "
"innebygd database"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:61
msgid "Possibilty to edit an account"
msgstr "Mulighet til å redigere en konto"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:62
#, fuzzy
msgid "One Time Password now visible by default"
msgstr "Engangspassord er nå synlige som forvalg"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:69
msgid "Fix python-dbus by using GDbus instead"
msgstr "Fiks python-dbus ved å bruke GDbus istedenfor"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:76
msgid "Fix the QRScanner on GNOME Shell"
msgstr "Fiks for QR-skanneren i GNOME-skallet"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:77
msgid "Add a new entry for the account's username"
msgstr "Tillegg av ny oppføring for kontoens brukernavn"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:78
msgid "Updated database of supported accounts"
msgstr "Database for støttede kontoer oppdatert"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:85
msgid "HOTFIX: App not running in DE other than GNOME"
msgstr "RASKFISK: Programmet kjørte ikke i andre grensesnitt enn GNOME"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:92
msgid "Rename project to Authenticator"
msgstr "Nytt navn: Authenticator"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:93
msgid "Cleaner code base"
msgstr "Renere kodebase"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:94
msgid "Faster startup"
msgstr "Raskere oppstart"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:95
msgid "Remove unneeded features"
msgstr "Fjerning av unødvendige funksjoner"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:96
msgid "Switch to pyzbar instead of zbarlight"
msgstr "Bytte til pyzbar istedenfor zbarlight"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:97
msgid "Flatpak package"
msgstr "Flatpak-pakke"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:104
msgid "Bilal Elmoussaoui"
msgstr "Bilal Elmoussaoui"
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:4
msgid "Two-factor authentication"
msgstr "To-faktorbekreftelse"
@ -298,18 +206,91 @@ msgstr "Skru på/av nattmodus fra programmet"
msgid "Default window maximized behaviour"
msgstr "Forvalgt oppførsel for oppblåste vinduer"
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:21
msgid "Whether the application is locked with a password or not"
msgstr "Hvorvidt programmet låses med et passord eller ei"
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:26
msgid "Whether the application can be locked or not"
msgstr "Hvorvidt programmet kan låses eller ei"
#: data/ui/about_dialog.ui.in:10
msgid "Two-factor authentication code generator."
msgstr "Kodegenerator for to-faktorbekreftelse."
#: data/ui/about_dialog.ui.in:13
msgid "translator-credits"
msgstr "Allan Nordhøy <epost@anotheragency.no>"
#: data/ui/account_add.ui:24
msgid "Add a new account"
msgstr "Legg til ny konto"
#: data/ui/account_add.ui:27 data/ui/account_edit.ui:21
msgid "Close"
msgstr "Lukk"
#: data/ui/account_add.ui:36
msgid "Add"
msgstr "Legg til"
#: data/ui/account_add.ui:56
#, fuzzy
msgid "Scan QR Code"
msgstr "Skann QR-kode"
#: data/ui/account_edit.ui:30 data/ui/settings.ui.in:454
#: src/Authenticator/widgets/utils.py:34
msgid "Save"
msgstr "Lagre"
#: data/ui/account_row.ui:23
msgid "Edit"
msgstr "Rediger"
#: data/ui/account_row.ui:37
msgid "Delete"
msgstr "Slett"
#: data/ui/account_row.ui:92
#, fuzzy
msgid "Copy PIN to clipboard"
msgstr "Koden \"%s\" ble kopiert til utklippstavlen"
#: data/ui/settings.ui.in:66
msgid "Behaviour"
msgstr "Oppførsel"
#: data/ui/settings.ui.in:100
msgid "Dark theme"
msgstr "Mørk drakt"
#: data/ui/settings.ui.in:117
msgid "Use a dark theme, if possible"
msgstr "Bruk mørk drakt, hvis mulig"
#: data/ui/settings.ui.in:179 src/Authenticator/application.py.in:91
msgid "Lock the application"
msgstr "Lås programmet"
#: data/ui/settings.ui.in:196
#, fuzzy
msgid "Lock the application with a password"
msgstr "Mulighet for å låse programmet med et passord"
#: data/ui/settings.ui.in:279
msgid "Keep your accounts safer "
msgstr ""
#: data/ui/settings.ui.in:303
msgid "Password"
msgstr "Passord"
#: data/ui/settings.ui.in:348
msgid "Repeat Password"
msgstr "Gjenta passord"
#: data/ui/settings.ui.in:410
msgid "Settings"
msgstr "Innstillinger"
#: data/ui/settings.ui.in:427
#, fuzzy
msgid "Authenticator Password"
msgstr "Autentiserings passord"
#: data/ui/shortcuts.ui:13
msgctxt "shortcut window"
msgid "General"
@ -347,25 +328,173 @@ msgstr "Legg til"
#: data/ui/shortcuts.ui:51
#, fuzzy
msgctxt "shortcut window"
msgid "Select"
msgstr "Velg"
#: data/ui/shortcuts.ui:58
#, fuzzy
msgctxt "shortcut window"
msgid "Search"
msgstr "Søk"
#: authenticator.py.in:54
#: data/ui/window.ui.in:60
msgid "There are no accounts yet…"
msgstr "Ingen kontoer enda…"
#: data/ui/window.ui.in:187
#, fuzzy
msgid "Authenticator is locked"
msgstr "Authenticator"
#: data/ui/window.ui.in:222
msgid "Unlock"
msgstr "Lås opp"
#: src/authenticator.py.in:49
msgid "Start in debug mode"
msgstr "Start i feilrettingsmodus"
#: authenticator.py.in:56
#: src/authenticator.py.in:51
msgid "Authenticator version number"
msgstr "Versjonsnummer for Authenticator"
#~ msgid "translator-credits"
#~ msgstr "Allan Nordhøy <epost@anotheragency.no>"
#: src/Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr "fra en JSON-fil i klartekst"
#: src/Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr "i en JSON-fil i klartekst"
#: src/Authenticator/application.py.in:102
msgid "Restore"
msgstr "Gjenopprett"
#: src/Authenticator/application.py.in:103
msgid "Backup"
msgstr "Sikkerhetskopier"
#. Night mode action
#: src/Authenticator/application.py.in:111
msgid "Preferences"
msgstr "Innstillinger"
#: src/Authenticator/application.py.in:112
msgid "Donate"
msgstr "Doner"
#: src/Authenticator/application.py.in:113
#, fuzzy
msgid "Keyboard Shortcuts"
msgstr "Snarveier"
#: src/Authenticator/application.py.in:114
#, fuzzy
msgid "About Authenticator"
msgstr "Authenticator"
#: src/Authenticator/models/account.py:70
msgid "Default"
msgstr "Forvalg"
#: src/Authenticator/widgets/accounts/add.py:204
msgid "Invalid QR code"
msgstr "Ugyldig QR-kode"
#: src/Authenticator/widgets/accounts/edit.py:45
msgid "Edit {} - {}"
msgstr "Rediger {} - {}"
#: src/Authenticator/widgets/accounts/list.py:144
msgid "The One-Time Passwords expires in {} seconds"
msgstr "Engangspassordet utløper om {} sekunder"
#: src/Authenticator/widgets/accounts/row.py:75
msgid "Couldn't generate the secret code"
msgstr "Kunne ikke generere hemmelig kode"
#: src/Authenticator/widgets/settings.py:73
msgid "Authentication password was unset. Please restart the application"
msgstr ""
#: src/Authenticator/widgets/settings.py:81
msgid "Authentication password is now enabled. Please restart the application."
msgstr ""
#: src/Authenticator/widgets/utils.py:32
msgid "Open"
msgstr "Åpne"
#: src/Authenticator/widgets/utils.py:36 src/Authenticator/widgets/utils.py:62
msgid "Cancel"
msgstr "Avbryt"
#: src/Authenticator/widgets/utils.py:46 src/Authenticator/widgets/utils.py:51
msgid "JSON files"
msgstr "JSON-filer"
#: src/Authenticator/widgets/utils.py:61
msgid "Select"
msgstr "Velg"
#~ msgid "Provider"
#~ msgstr "Tilbyder"
#~ msgid "Account name"
#~ msgstr "Kontonavn"
#~ msgid "Secret token"
#~ msgstr "Hemmelig symbol"
#~ msgid "zbar library is not found. QRCode scanner will be disabled"
#~ msgstr "zbar-bibliotek ble ikke funnet. QRkodeskanneren vil skrus av"
#~ msgid "Copy"
#~ msgstr "Kopier"
#~ msgid "Search"
#~ msgstr "Søk"
#~ msgid "Selection mode"
#~ msgstr "Utvelgelsesmodus"
#~ msgid "Click on items to select them"
#~ msgstr "Klikk på elementene for å velge dem"
#~ msgid "Old Password"
#~ msgstr "Gammelt passord"
#~ msgid "Appearance"
#~ msgstr "Utseende"
#~ msgid "Clear the database"
#~ msgstr "Tøm databasen"
#~ msgid "Erase existing accounts"
#~ msgstr "Slett eksisterende kontoer"
#~ msgid "Authentication password"
#~ msgstr "Autentiserings passord"
#~ msgid "Set up application authentication password"
#~ msgstr "Sett opp identitetbekreftelsespassord for programmet"
#~ msgid "The application needs to be restarted first."
#~ msgstr "Programmet må startes på nytt først."
#~ msgid "The existing accounts will be erased in 5 seconds"
#~ msgstr "Eksisterende kontoer vil bli slettet om 5 sekunder"
#~ msgid "Undo"
#~ msgstr "Angre"
#~ msgid "An account or more were removed."
#~ msgstr "Én eller flere kontoer ble fjernet."
#~ msgid "Whether the application is locked with a password or not"
#~ msgstr "Hvorvidt programmet låses med et passord eller ei"
#~ msgid "Whether the application can be locked or not"
#~ msgstr "Hvorvidt programmet kan låses eller ei"
#, fuzzy
#~ msgctxt "shortcut window"
#~ msgid "Select"
#~ msgstr "Velg"
#, fuzzy
#~ msgid "Authenticator@NAME_SUFFIX@"
@ -410,109 +539,10 @@ msgstr "Versjonsnummer for Authenticator"
#~ msgid "com.github.bilelmoussaoui.Authenticator"
#~ msgstr "com.github.bilelmoussaoui.Authenticator"
#~ msgid "Bilal Elmoussaoui"
#~ msgstr "Bilal Elmoussaoui"
#, fuzzy
#~ msgid "Backup Password"
#~ msgstr "Endre passord"
#, fuzzy
#~ msgid ""
#~ "Since I have moved the application to GOME Gitlab's World group, a "
#~ "Flatpak build for each new commit is available to download from the "
#~ "site's website."
#~ msgstr ""
#~ "Siden jeg har flyttet programmet til GNOME sin Gitlab-verdensgruppe, "
#~ "finnes et Flatpak-bygg tilgjengelig for hver nye innsendelse som er "
#~ "tilgjengelig fornedlasting fra sidens nettside."
#~ msgid "Backup and restore from a basic JSON file"
#~ msgstr "Sikkerhetskopier og gjenopprett fra grunnleggende JSON-fil"
#, fuzzy
#~ msgid "Backup and restore from an encrypted-GPG JSON file"
#~ msgstr "Sikkerhetskopier og gjenopprett fra en GPG-kryptert JSON-fil"
#, fuzzy
#~ msgid "Add andOTP support (free and open Android 2FA application)"
#~ msgstr "Legg til andOTP-støtte (fritt og åpent Android 2FA-program)"
#, fuzzy
#~ msgid "New Settings Widow with 3 sections: appearance, behavior and backup"
#~ msgstr ""
#~ "Nytt tredelt innstillingsvindu: Utseende, oppførsel og sikkerhetskopiering"
#, fuzzy
#~ msgid "Fix Flatpak Build with the latest GNOME Runtime"
#~ msgstr "Fiks Flatpak-bygg med siste GNOME-kjørerutine"
#, fuzzy
#~ msgid "Move the project to GOME Gitlab's World group"
#~ msgstr "Flytting av prosjektet til GNOME sin GitLab-verdensgruppe"
#~ msgid "GNOME Shell Search provider"
#~ msgstr "GNOME-skallsøktilbyder"
#~ msgid "Codes expire simultaneously #91"
#~ msgstr "Koder utløper samtidig #91"
#, fuzzy
#~ msgid "Revamped main window to more closely follow the GNOME HIG"
#~ msgstr ""
#~ "Omorganisering av hovedvinduet for bedre overensstemmelse med GNOME HIG"
#~ msgid "Revamped add a new account window to make it easier to use"
#~ msgstr "Omorganisering av vindu for tillegg av konto for enklere bruk"
#, fuzzy
#~ msgid ""
#~ "Possibility to add an account from a provider not listed in the shipped "
#~ "database"
#~ msgstr ""
#~ "Mulighet for å legge til en konto fra en tilbyder som ikke er opplistet i "
#~ "innebygd database"
#~ msgid "Possibilty to edit an account"
#~ msgstr "Mulighet til å redigere en konto"
#, fuzzy
#~ msgid "One Time Password now visible by default"
#~ msgstr "Engangspassord er nå synlige som forvalg"
#~ msgid "Fix python-dbus by using GDbus instead"
#~ msgstr "Fiks python-dbus ved å bruke GDbus istedenfor"
#~ msgid "Fix the QRScanner on GNOME Shell"
#~ msgstr "Fiks for QR-skanneren i GNOME-skallet"
#~ msgid "Add a new entry for the account's username"
#~ msgstr "Tillegg av ny oppføring for kontoens brukernavn"
#~ msgid "Updated database of supported accounts"
#~ msgstr "Database for støttede kontoer oppdatert"
#~ msgid "HOTFIX: App not running in DE other than GNOME"
#~ msgstr "RASKFISK: Programmet kjørte ikke i andre grensesnitt enn GNOME"
#~ msgid "Rename project to Authenticator"
#~ msgstr "Nytt navn: Authenticator"
#~ msgid "Cleaner code base"
#~ msgstr "Renere kodebase"
#~ msgid "Faster startup"
#~ msgstr "Raskere oppstart"
#~ msgid "Remove unneeded features"
#~ msgstr "Fjerning av unødvendige funksjoner"
#~ msgid "Switch to pyzbar instead of zbarlight"
#~ msgstr "Bytte til pyzbar istedenfor zbarlight"
#~ msgid "Flatpak package"
#~ msgstr "Flatpak-pakke"
#~ msgid "Next"
#~ msgstr "Neste"
@ -525,9 +555,6 @@ msgstr "Versjonsnummer for Authenticator"
#~ msgid "TwoFactorAuth"
#~ msgstr "To-faktorbekreftelse"
#~ msgid "Code \"%s\" copied to clipboard"
#~ msgstr "Koden \"%s\" ble kopiert til utklippstavlen"
#~ msgid "Remove the account"
#~ msgstr "Fjern kontoen"
@ -570,9 +597,6 @@ msgstr "Versjonsnummer for Authenticator"
#~ msgid "Enter your password"
#~ msgstr "Skriv inn passordet ditt"
#~ msgid "Unlock"
#~ msgstr "Lås opp"
#~ msgid "Password protection"
#~ msgstr "Passordbeskyttelse"

682
po/nl.po
View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-25 19:56+0100\n"
"POT-Creation-Date: 2019-02-11 22:35+0100\n"
"PO-Revision-Date: 2019-01-14 07:19+0000\n"
"Last-Translator: Nathan Follens <nthn@unseen.is>\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/authenticator/"
@ -19,227 +19,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.4-dev\n"
#: Authenticator/application.py.in:39
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:6
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:3
#: data/ui/window.ui.in:255 src/Authenticator/application.py.in:36
msgid "Authenticator"
msgstr "Authenticator"
#: Authenticator/application.py.in:91 Authenticator/widgets/settings.py:239
msgid "Lock the application"
msgstr "Toepassing vergrendelen"
#: Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr "uit een JSON-bestand met platte tekst"
#: Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr "naar een JSON-bestand met platte tekst"
#: Authenticator/application.py.in:102
msgid "Restore"
msgstr "Herstellen"
#: Authenticator/application.py.in:103
msgid "Backup"
msgstr "Back-uppen"
#. Night mode action
#: Authenticator/application.py.in:111
msgid "Preferences"
msgstr "Voorkeuren"
#: Authenticator/application.py.in:112
msgid "Donate"
msgstr "Doneren"
#: Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr "Sneltoetsen"
#: Authenticator/application.py.in:114
msgid "About Authenticator"
msgstr "Over Authenticator"
#: Authenticator/models/account.py:74
msgid "Default"
msgstr "Standaard"
#: Authenticator/widgets/accounts/add.py:50
#: Authenticator/widgets/headerbar.py:101
msgid "Add a new account"
msgstr "Nieuw account toevoegen"
#: Authenticator/widgets/accounts/add.py:54
msgid "Add"
msgstr "Toevoegen"
#: Authenticator/widgets/accounts/add.py:62
msgid "Scan QR code"
msgstr "QR-code scannen"
#: Authenticator/widgets/accounts/add.py:68
#: Authenticator/widgets/accounts/edit.py:58
msgid "Close"
msgstr "Sluiten"
#: Authenticator/widgets/accounts/add.py:161
msgid "Provider"
msgstr "Dienst"
#: Authenticator/widgets/accounts/add.py:171
msgid "Account name"
msgstr "Accountnaam"
#: Authenticator/widgets/accounts/add.py:177
msgid "Secret token"
msgstr "Geheime toegangssleutel"
#: Authenticator/widgets/accounts/add.py:260
msgid "Invalid QR code"
msgstr "Ongeldige QR-code"
#: Authenticator/widgets/accounts/add.py:268
msgid "zbar library is not found. QRCode scanner will be disabled"
msgstr ""
"De zbar-bibliotheek kan niet worden gevonden; QR-codescanner is uitgeschakeld"
#: Authenticator/widgets/accounts/edit.py:47
msgid "Edit {} - {}"
msgstr "{} - {} bewerken"
#: Authenticator/widgets/accounts/edit.py:52
#: Authenticator/widgets/settings.py:143 Authenticator/widgets/utils.py:20
msgid "Save"
msgstr "Opslaan"
#: Authenticator/widgets/accounts/list.py:164
msgid "The One-Time Passwords expires in {} seconds"
msgstr "Het eenmalige wachtwoord verloopt over {} seconden"
#. Label
#: Authenticator/widgets/accounts/list.py:286
msgid "There are no accounts yet…"
msgstr "Je hebt nog geen accounts toegevoegd…"
#: Authenticator/widgets/accounts/row.py:59
msgid "Copy"
msgstr "Kopiëren"
#: Authenticator/widgets/accounts/row.py:60
msgid "Edit"
msgstr "Bewerken"
#: Authenticator/widgets/accounts/row.py:150
msgid "Couldn't generate the secret code"
msgstr "Kan geen geheime sleutel genereren"
#: Authenticator/widgets/actions_bar.py:52
msgid "Delete"
msgstr "Verwijderen"
#: Authenticator/widgets/headerbar.py:99
msgid "Search"
msgstr "Zoeken"
#: Authenticator/widgets/headerbar.py:103 Authenticator/widgets/settings.py:212
msgid "Settings"
msgstr "Instellingen"
#: Authenticator/widgets/headerbar.py:105
msgid "Selection mode"
msgstr "Selectiemodus"
#: Authenticator/widgets/headerbar.py:107 Authenticator/widgets/utils.py:22
#: Authenticator/widgets/utils.py:48
msgid "Cancel"
msgstr "Annuleren"
#: Authenticator/widgets/headerbar.py:183
msgid "Click on items to select them"
msgstr "Klik op items om ze te selecteren"
#: Authenticator/widgets/settings.py:139
msgid "Authentication Password"
msgstr "Authenticatiewachtwoord"
#: Authenticator/widgets/settings.py:152
msgid "Old Password"
msgstr "Oud wachtwoord"
#: Authenticator/widgets/settings.py:156
msgid "Password"
msgstr "Wachtwoord"
#: Authenticator/widgets/settings.py:159
msgid "Repeat Password"
msgstr "Herhaal wachtwoord"
#: Authenticator/widgets/settings.py:229
msgid "Dark theme"
msgstr "Donker thema"
#: Authenticator/widgets/settings.py:229
msgid "Use a dark theme, if possible"
msgstr "Donker thema gebruiken, indien mogelijk"
#: Authenticator/widgets/settings.py:232
msgid "Appearance"
msgstr "Uiterlijk"
#: Authenticator/widgets/settings.py:236
msgid "Clear the database"
msgstr "Databank wissen"
#: Authenticator/widgets/settings.py:236
msgid "Erase existing accounts"
msgstr "Bestaande accounts wissen"
#: Authenticator/widgets/settings.py:240
msgid "Possibility to lock the application with a password"
msgstr "Mogelijkheid om de toepassing te vergrendelen met een wachtwoord"
#: Authenticator/widgets/settings.py:243
msgid "Authentication password"
msgstr "Authenticatiewachtwoord"
#: Authenticator/widgets/settings.py:244
msgid "Set up application authentication password"
msgstr "Stel het authenticatiewachtwoord in"
#: Authenticator/widgets/settings.py:250
msgid "Behaviour"
msgstr "Gedrag"
#: Authenticator/widgets/settings.py:259
msgid "The application needs to be restarted first."
msgstr "De applicatie moet worden herstart."
#: Authenticator/widgets/settings.py:288
msgid "The existing accounts will be erased in 5 seconds"
msgstr "De bestaande accounts worden over 5 seconden gewist"
#: Authenticator/widgets/settings.py:292 Authenticator/widgets/window.py.in:217
msgid "Undo"
msgstr "Ongedaan maken"
#: Authenticator/widgets/utils.py:18
msgid "Open"
msgstr "Openen"
#: Authenticator/widgets/utils.py:32 Authenticator/widgets/utils.py:37
msgid "JSON files"
msgstr "JSON-bestanden"
#: Authenticator/widgets/utils.py:47
msgid "Select"
msgstr "Kiezen"
#: Authenticator/widgets/window.py.in:213
msgid "An account or more were removed."
msgstr "Eén of meerdere accounts zijn verwijderd."
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:7
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:5
msgid "Two-factor authentication code generator"
@ -269,6 +54,121 @@ msgstr "Prachtige vormgeving"
msgid "Huge database of (290+) websites/applications"
msgstr "Enorme databank met (meer dan 290) websites/toepassingen"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:34
msgid ""
"Since I have moved the application to GOME Gitlab's World group, a Flatpak "
"build for each new commit is available to download from the site's website."
msgstr ""
"Sinds de verhuizing naar GNOME Gitlab's World-groep, is er op de website een "
"Flatpak-pakket beschikbaar voor elke nieuwe commit."
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:38
msgid "Backup and restore from a basic JSON file"
msgstr "Back-up en herstel uit een basis-JSON-bestand"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:39
msgid "Backup and restore from an encrypted-GPG JSON file"
msgstr "Back-up en herstel uit een met GPG versleuteld JSON-bestand"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:40
msgid "Add andOTP support (free and open Android 2FA application)"
msgstr ""
"andOTP-ondersteuning toegevoegd (gratis en vrije Android-app voor "
"authenticatie in twee stappen)"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:41
msgid "New Settings Widow with 3 sections: appearance, behavior and backup"
msgstr "Nieuw instellingenvenster met 3 secties: uiterlijk, gedrag en back-up"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:42
msgid "Fix Flatpak Build with the latest GNOME Runtime"
msgstr "Flatpak-pakketten compatibel gemaakt met de nieuwste GNOME Runtime"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:43
msgid "Move the project to GOME Gitlab's World group"
msgstr "Project verplaatst naar GNOME Gitlab World-groep"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:50
msgid "GNOME Shell Search provider"
msgstr "GNOME Shell-zoekdienst"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:51
msgid "Codes expire simultaneously #91"
msgstr "Codes vervallen tegelijkertijd #91"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:58
msgid "Revamped main window to more closely follow the GNOME HIG"
msgstr "Hoofdvenster opnieuw ontworpen om meer te voldoen aan de GNOME HIG"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:59
msgid "Revamped add a new account window to make it easier to use"
msgstr ""
"Nieuw account-venster opnieuw ontworpen zodat het eenvoudig is geworden"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:60
msgid ""
"Possibility to add an account from a provider not listed in the shipped "
"database"
msgstr ""
"Mogelijkheid om een account toe te voegen van een dienst die niet in de "
"databank voorkomt"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:61
msgid "Possibilty to edit an account"
msgstr "Mogelijkheid om een account te bewerken"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:62
msgid "One Time Password now visible by default"
msgstr "Eenmalig wachtwoord is nu standaard zichtbaar"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:69
msgid "Fix python-dbus by using GDbus instead"
msgstr "python-dbus-probleem opgelost door GDbus te gebruiken"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:76
msgid "Fix the QRScanner on GNOME Shell"
msgstr "QR-codescanner gerepareerd bij gebruik in GNOME Shell"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:77
msgid "Add a new entry for the account's username"
msgstr "Voeg een nieuw item toe voor de gebruikersnaam"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:78
msgid "Updated database of supported accounts"
msgstr "Databank met ondersteunde accounts bijgewerkt"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:85
msgid "HOTFIX: App not running in DE other than GNOME"
msgstr "BELANGRIJK: de app draait nu ook in andere werkomgevingen dan GNOME"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:92
msgid "Rename project to Authenticator"
msgstr "Projectnaam gewijzigd in Authenticator"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:93
msgid "Cleaner code base"
msgstr "Eenvoudigere broncode"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:94
msgid "Faster startup"
msgstr "Snellere opstart"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:95
msgid "Remove unneeded features"
msgstr "Onnodige functies verwijderd"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:96
msgid "Switch to pyzbar instead of zbarlight"
msgstr "Overgeschakeld van zbarlight naar pyzbar"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:97
msgid "Flatpak package"
msgstr "Flatpak-pakket"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:104
msgid "Bilal Elmoussaoui"
msgstr "Bilal Elmoussaoui"
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:4
msgid "Two-factor authentication"
msgstr "Authenticatie in twee stappen"
@ -298,18 +198,90 @@ msgstr "Schakelt de nachtmodus in de toepassing in/uit"
msgid "Default window maximized behaviour"
msgstr "Standaardgedrag van gemaximaliseerd venster"
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:21
msgid "Whether the application is locked with a password or not"
msgstr "Of de toepassing moet worden vergrendeld met een wachtwoord"
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:26
msgid "Whether the application can be locked or not"
msgstr "Of de toepassing vergrendeld kan worden"
#: data/ui/about_dialog.ui.in:10
msgid "Two-factor authentication code generator."
msgstr "Code-generator voor authenticatie in twee stappen."
#: data/ui/about_dialog.ui.in:13
msgid "translator-credits"
msgstr "Nathan Follens, Heimen Stoffels"
#: data/ui/account_add.ui:24
msgid "Add a new account"
msgstr "Nieuw account toevoegen"
#: data/ui/account_add.ui:27 data/ui/account_edit.ui:21
msgid "Close"
msgstr "Sluiten"
#: data/ui/account_add.ui:36
msgid "Add"
msgstr "Toevoegen"
#: data/ui/account_add.ui:56
#, fuzzy
msgid "Scan QR Code"
msgstr "QR-code scannen"
#: data/ui/account_edit.ui:30 data/ui/settings.ui.in:454
#: src/Authenticator/widgets/utils.py:34
msgid "Save"
msgstr "Opslaan"
#: data/ui/account_row.ui:23
msgid "Edit"
msgstr "Bewerken"
#: data/ui/account_row.ui:37
msgid "Delete"
msgstr "Verwijderen"
#: data/ui/account_row.ui:92
msgid "Copy PIN to clipboard"
msgstr ""
#: data/ui/settings.ui.in:66
msgid "Behaviour"
msgstr "Gedrag"
#: data/ui/settings.ui.in:100
msgid "Dark theme"
msgstr "Donker thema"
#: data/ui/settings.ui.in:117
msgid "Use a dark theme, if possible"
msgstr "Donker thema gebruiken, indien mogelijk"
#: data/ui/settings.ui.in:179 src/Authenticator/application.py.in:91
msgid "Lock the application"
msgstr "Toepassing vergrendelen"
#: data/ui/settings.ui.in:196
#, fuzzy
msgid "Lock the application with a password"
msgstr "Mogelijkheid om de toepassing te vergrendelen met een wachtwoord"
#: data/ui/settings.ui.in:279
msgid "Keep your accounts safer "
msgstr ""
#: data/ui/settings.ui.in:303
msgid "Password"
msgstr "Wachtwoord"
#: data/ui/settings.ui.in:348
msgid "Repeat Password"
msgstr "Herhaal wachtwoord"
#: data/ui/settings.ui.in:410
msgid "Settings"
msgstr "Instellingen"
#: data/ui/settings.ui.in:427
#, fuzzy
msgid "Authenticator Password"
msgstr "Authenticatiewachtwoord"
#: data/ui/shortcuts.ui:13
msgctxt "shortcut window"
msgid "General"
@ -342,24 +314,172 @@ msgstr "Toevoegen"
#: data/ui/shortcuts.ui:51
msgctxt "shortcut window"
msgid "Select"
msgstr "Selecteren"
#: data/ui/shortcuts.ui:58
msgctxt "shortcut window"
msgid "Search"
msgstr "Zoeken"
#: authenticator.py.in:54
#: data/ui/window.ui.in:60
msgid "There are no accounts yet…"
msgstr "Je hebt nog geen accounts toegevoegd…"
#: data/ui/window.ui.in:187
#, fuzzy
msgid "Authenticator is locked"
msgstr "Authenticator"
#: data/ui/window.ui.in:222
msgid "Unlock"
msgstr "Ontgrendelen"
#: src/authenticator.py.in:49
msgid "Start in debug mode"
msgstr "Starten in foutopsporingsmodus"
#: authenticator.py.in:56
#: src/authenticator.py.in:51
msgid "Authenticator version number"
msgstr "Versienummer van Authenticator"
#~ msgid "translator-credits"
#~ msgstr "Nathan Follens, Heimen Stoffels"
#: src/Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr "uit een JSON-bestand met platte tekst"
#: src/Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr "naar een JSON-bestand met platte tekst"
#: src/Authenticator/application.py.in:102
msgid "Restore"
msgstr "Herstellen"
#: src/Authenticator/application.py.in:103
msgid "Backup"
msgstr "Back-uppen"
#. Night mode action
#: src/Authenticator/application.py.in:111
msgid "Preferences"
msgstr "Voorkeuren"
#: src/Authenticator/application.py.in:112
msgid "Donate"
msgstr "Doneren"
#: src/Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr "Sneltoetsen"
#: src/Authenticator/application.py.in:114
msgid "About Authenticator"
msgstr "Over Authenticator"
#: src/Authenticator/models/account.py:70
msgid "Default"
msgstr "Standaard"
#: src/Authenticator/widgets/accounts/add.py:204
msgid "Invalid QR code"
msgstr "Ongeldige QR-code"
#: src/Authenticator/widgets/accounts/edit.py:45
msgid "Edit {} - {}"
msgstr "{} - {} bewerken"
#: src/Authenticator/widgets/accounts/list.py:144
msgid "The One-Time Passwords expires in {} seconds"
msgstr "Het eenmalige wachtwoord verloopt over {} seconden"
#: src/Authenticator/widgets/accounts/row.py:75
msgid "Couldn't generate the secret code"
msgstr "Kan geen geheime sleutel genereren"
#: src/Authenticator/widgets/settings.py:73
msgid "Authentication password was unset. Please restart the application"
msgstr ""
#: src/Authenticator/widgets/settings.py:81
msgid "Authentication password is now enabled. Please restart the application."
msgstr ""
#: src/Authenticator/widgets/utils.py:32
msgid "Open"
msgstr "Openen"
#: src/Authenticator/widgets/utils.py:36 src/Authenticator/widgets/utils.py:62
msgid "Cancel"
msgstr "Annuleren"
#: src/Authenticator/widgets/utils.py:46 src/Authenticator/widgets/utils.py:51
msgid "JSON files"
msgstr "JSON-bestanden"
#: src/Authenticator/widgets/utils.py:61
msgid "Select"
msgstr "Kiezen"
#~ msgid "Provider"
#~ msgstr "Dienst"
#~ msgid "Account name"
#~ msgstr "Accountnaam"
#~ msgid "Secret token"
#~ msgstr "Geheime toegangssleutel"
#~ msgid "zbar library is not found. QRCode scanner will be disabled"
#~ msgstr ""
#~ "De zbar-bibliotheek kan niet worden gevonden; QR-codescanner is "
#~ "uitgeschakeld"
#~ msgid "Copy"
#~ msgstr "Kopiëren"
#~ msgid "Search"
#~ msgstr "Zoeken"
#~ msgid "Selection mode"
#~ msgstr "Selectiemodus"
#~ msgid "Click on items to select them"
#~ msgstr "Klik op items om ze te selecteren"
#~ msgid "Old Password"
#~ msgstr "Oud wachtwoord"
#~ msgid "Appearance"
#~ msgstr "Uiterlijk"
#~ msgid "Clear the database"
#~ msgstr "Databank wissen"
#~ msgid "Erase existing accounts"
#~ msgstr "Bestaande accounts wissen"
#~ msgid "Authentication password"
#~ msgstr "Authenticatiewachtwoord"
#~ msgid "Set up application authentication password"
#~ msgstr "Stel het authenticatiewachtwoord in"
#~ msgid "The application needs to be restarted first."
#~ msgstr "De applicatie moet worden herstart."
#~ msgid "The existing accounts will be erased in 5 seconds"
#~ msgstr "De bestaande accounts worden over 5 seconden gewist"
#~ msgid "Undo"
#~ msgstr "Ongedaan maken"
#~ msgid "An account or more were removed."
#~ msgstr "Eén of meerdere accounts zijn verwijderd."
#~ msgid "Whether the application is locked with a password or not"
#~ msgstr "Of de toepassing moet worden vergrendeld met een wachtwoord"
#~ msgid "Whether the application can be locked or not"
#~ msgstr "Of de toepassing vergrendeld kan worden"
#~ msgctxt "shortcut window"
#~ msgid "Select"
#~ msgstr "Selecteren"
#, fuzzy
#~ msgid "Authenticator@NAME_SUFFIX@"
@ -406,100 +526,9 @@ msgstr "Versienummer van Authenticator"
#~ msgid "com.github.bilelmoussaoui.Authenticator"
#~ msgstr "com.github.bilelmoussaoui.Authenticator"
#~ msgid "Bilal Elmoussaoui"
#~ msgstr "Bilal Elmoussaoui"
#~ msgid "Backup Password"
#~ msgstr "Wachtwoord back-uppen"
#~ msgid ""
#~ "Since I have moved the application to GOME Gitlab's World group, a "
#~ "Flatpak build for each new commit is available to download from the "
#~ "site's website."
#~ msgstr ""
#~ "Sinds de verhuizing naar GNOME Gitlab's World-groep, is er op de website "
#~ "een Flatpak-pakket beschikbaar voor elke nieuwe commit."
#~ msgid "Backup and restore from a basic JSON file"
#~ msgstr "Back-up en herstel uit een basis-JSON-bestand"
#~ msgid "Backup and restore from an encrypted-GPG JSON file"
#~ msgstr "Back-up en herstel uit een met GPG versleuteld JSON-bestand"
#~ msgid "Add andOTP support (free and open Android 2FA application)"
#~ msgstr ""
#~ "andOTP-ondersteuning toegevoegd (gratis en vrije Android-app voor "
#~ "authenticatie in twee stappen)"
#~ msgid "New Settings Widow with 3 sections: appearance, behavior and backup"
#~ msgstr ""
#~ "Nieuw instellingenvenster met 3 secties: uiterlijk, gedrag en back-up"
#~ msgid "Fix Flatpak Build with the latest GNOME Runtime"
#~ msgstr "Flatpak-pakketten compatibel gemaakt met de nieuwste GNOME Runtime"
#~ msgid "Move the project to GOME Gitlab's World group"
#~ msgstr "Project verplaatst naar GNOME Gitlab World-groep"
#~ msgid "GNOME Shell Search provider"
#~ msgstr "GNOME Shell-zoekdienst"
#~ msgid "Codes expire simultaneously #91"
#~ msgstr "Codes vervallen tegelijkertijd #91"
#~ msgid "Revamped main window to more closely follow the GNOME HIG"
#~ msgstr "Hoofdvenster opnieuw ontworpen om meer te voldoen aan de GNOME HIG"
#~ msgid "Revamped add a new account window to make it easier to use"
#~ msgstr ""
#~ "Nieuw account-venster opnieuw ontworpen zodat het eenvoudig is geworden"
#~ msgid ""
#~ "Possibility to add an account from a provider not listed in the shipped "
#~ "database"
#~ msgstr ""
#~ "Mogelijkheid om een account toe te voegen van een dienst die niet in de "
#~ "databank voorkomt"
#~ msgid "Possibilty to edit an account"
#~ msgstr "Mogelijkheid om een account te bewerken"
#~ msgid "One Time Password now visible by default"
#~ msgstr "Eenmalig wachtwoord is nu standaard zichtbaar"
#~ msgid "Fix python-dbus by using GDbus instead"
#~ msgstr "python-dbus-probleem opgelost door GDbus te gebruiken"
#~ msgid "Fix the QRScanner on GNOME Shell"
#~ msgstr "QR-codescanner gerepareerd bij gebruik in GNOME Shell"
#~ msgid "Add a new entry for the account's username"
#~ msgstr "Voeg een nieuw item toe voor de gebruikersnaam"
#~ msgid "Updated database of supported accounts"
#~ msgstr "Databank met ondersteunde accounts bijgewerkt"
#~ msgid "HOTFIX: App not running in DE other than GNOME"
#~ msgstr "BELANGRIJK: de app draait nu ook in andere werkomgevingen dan GNOME"
#~ msgid "Rename project to Authenticator"
#~ msgstr "Projectnaam gewijzigd in Authenticator"
#~ msgid "Cleaner code base"
#~ msgstr "Eenvoudigere broncode"
#~ msgid "Faster startup"
#~ msgstr "Snellere opstart"
#~ msgid "Remove unneeded features"
#~ msgstr "Onnodige functies verwijderd"
#~ msgid "Switch to pyzbar instead of zbarlight"
#~ msgstr "Overgeschakeld van zbarlight naar pyzbar"
#~ msgid "Flatpak package"
#~ msgstr "Flatpak-pakket"
#~ msgid "Next"
#~ msgstr "Volgende"
@ -556,9 +585,6 @@ msgstr "Versienummer van Authenticator"
#~ msgid "Enter your password"
#~ msgstr "Voer je wachtwoord in"
#~ msgid "Unlock"
#~ msgstr "Ontgrendelen"
#~ msgid "Remove the account"
#~ msgstr "Account verwijderen"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Authenticator\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-25 19:56+0100\n"
"POT-Creation-Date: 2019-02-11 22:35+0100\n"
"PO-Revision-Date: 2019-01-14 07:20+0000\n"
"Last-Translator: Nathan Follens <nthn@unseen.is>\n"
"Language-Team: Flemish <https://hosted.weblate.org/projects/authenticator/"
@ -19,228 +19,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.4-dev\n"
#: Authenticator/application.py.in:39
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:6
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:3
#: data/ui/window.ui.in:255 src/Authenticator/application.py.in:36
msgid "Authenticator"
msgstr "Authenticator"
#: Authenticator/application.py.in:91 Authenticator/widgets/settings.py:239
msgid "Lock the application"
msgstr "Toepassing vergrendelen"
#: Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr "uit een JSON-bestand met platte tekst"
#: Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr "naar een JSON-bestand met platte tekst"
#: Authenticator/application.py.in:102
msgid "Restore"
msgstr "Herstellen"
#: Authenticator/application.py.in:103
msgid "Backup"
msgstr "Back-up maken"
#. Night mode action
#: Authenticator/application.py.in:111
msgid "Preferences"
msgstr "Voorkeuren"
#: Authenticator/application.py.in:112
msgid "Donate"
msgstr "Doneren"
#: Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr "Sneltoetsen"
#: Authenticator/application.py.in:114
msgid "About Authenticator"
msgstr "Over Authenticator"
#: Authenticator/models/account.py:74
msgid "Default"
msgstr "Standaard"
#: Authenticator/widgets/accounts/add.py:50
#: Authenticator/widgets/headerbar.py:101
msgid "Add a new account"
msgstr "Nieuwen account toevoegen"
#: Authenticator/widgets/accounts/add.py:54
msgid "Add"
msgstr "Toevoegen"
#: Authenticator/widgets/accounts/add.py:62
msgid "Scan QR code"
msgstr "QR-code scannen"
#: Authenticator/widgets/accounts/add.py:68
#: Authenticator/widgets/accounts/edit.py:58
msgid "Close"
msgstr "Sluiten"
#: Authenticator/widgets/accounts/add.py:161
msgid "Provider"
msgstr "Dienst"
#: Authenticator/widgets/accounts/add.py:171
msgid "Account name"
msgstr "Accountnaam"
#: Authenticator/widgets/accounts/add.py:177
msgid "Secret token"
msgstr "Geheim token"
#: Authenticator/widgets/accounts/add.py:260
msgid "Invalid QR code"
msgstr "Ongeldige QR-code"
#: Authenticator/widgets/accounts/add.py:268
msgid "zbar library is not found. QRCode scanner will be disabled"
msgstr ""
"De zbar-bibliotheek kan niet gevonden worden. QR-codescanner wordt "
"uitgeschakeld"
#: Authenticator/widgets/accounts/edit.py:47
msgid "Edit {} - {}"
msgstr "{} - {} bewerken"
#: Authenticator/widgets/accounts/edit.py:52
#: Authenticator/widgets/settings.py:143 Authenticator/widgets/utils.py:20
msgid "Save"
msgstr "Opslaan"
#: Authenticator/widgets/accounts/list.py:164
msgid "The One-Time Passwords expires in {} seconds"
msgstr "Het eenmalig paswoord verloopt binnen {} seconden"
#. Label
#: Authenticator/widgets/accounts/list.py:286
msgid "There are no accounts yet…"
msgstr "Ge hebt nog geen accounts toegevoegd…"
#: Authenticator/widgets/accounts/row.py:59
msgid "Copy"
msgstr "Kopiëren"
#: Authenticator/widgets/accounts/row.py:60
msgid "Edit"
msgstr "Bewerken"
#: Authenticator/widgets/accounts/row.py:150
msgid "Couldn't generate the secret code"
msgstr "Aanmaken van geheime code mislukt"
#: Authenticator/widgets/actions_bar.py:52
msgid "Delete"
msgstr "Verwijderen"
#: Authenticator/widgets/headerbar.py:99
msgid "Search"
msgstr "Zoeken"
#: Authenticator/widgets/headerbar.py:103 Authenticator/widgets/settings.py:212
msgid "Settings"
msgstr "Instellingen"
#: Authenticator/widgets/headerbar.py:105
msgid "Selection mode"
msgstr "Selectiemodus"
#: Authenticator/widgets/headerbar.py:107 Authenticator/widgets/utils.py:22
#: Authenticator/widgets/utils.py:48
msgid "Cancel"
msgstr "Annuleren"
#: Authenticator/widgets/headerbar.py:183
msgid "Click on items to select them"
msgstr "Klikt op items voor ze te selecteren"
#: Authenticator/widgets/settings.py:139
msgid "Authentication Password"
msgstr "Authenticatiepaswoord"
#: Authenticator/widgets/settings.py:152
msgid "Old Password"
msgstr "Oud paswoord"
#: Authenticator/widgets/settings.py:156
msgid "Password"
msgstr "Paswoord"
#: Authenticator/widgets/settings.py:159
msgid "Repeat Password"
msgstr "Herhaalt het paswoord"
#: Authenticator/widgets/settings.py:229
msgid "Dark theme"
msgstr "Donker thema"
#: Authenticator/widgets/settings.py:229
msgid "Use a dark theme, if possible"
msgstr "Donker thema gebruiken, indien mogelijk"
#: Authenticator/widgets/settings.py:232
msgid "Appearance"
msgstr "Uiterlijk"
#: Authenticator/widgets/settings.py:236
msgid "Clear the database"
msgstr "Databank wissen"
#: Authenticator/widgets/settings.py:236
msgid "Erase existing accounts"
msgstr "Bestaande accounts wissen"
#: Authenticator/widgets/settings.py:240
msgid "Possibility to lock the application with a password"
msgstr "Mogelijkheid voor de toepassing te vergrendelen met een paswoord"
#: Authenticator/widgets/settings.py:243
msgid "Authentication password"
msgstr "Authenticatiepaswoord"
#: Authenticator/widgets/settings.py:244
msgid "Set up application authentication password"
msgstr "Authenticatiepaswoord instellen"
#: Authenticator/widgets/settings.py:250
msgid "Behaviour"
msgstr "Gedrag"
#: Authenticator/widgets/settings.py:259
msgid "The application needs to be restarted first."
msgstr "De toepassing moet herstart worden."
#: Authenticator/widgets/settings.py:288
msgid "The existing accounts will be erased in 5 seconds"
msgstr "De bestaande accounts worden binnen 5 seconden gewist"
#: Authenticator/widgets/settings.py:292 Authenticator/widgets/window.py.in:217
msgid "Undo"
msgstr "Ongedaan maken"
#: Authenticator/widgets/utils.py:18
msgid "Open"
msgstr "Openen"
#: Authenticator/widgets/utils.py:32 Authenticator/widgets/utils.py:37
msgid "JSON files"
msgstr "JSON-bestanden"
#: Authenticator/widgets/utils.py:47
msgid "Select"
msgstr "Selecteren"
#: Authenticator/widgets/window.py.in:213
msgid "An account or more were removed."
msgstr "Enen of meerdere accounts zijn verwijderd."
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:7
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:5
msgid "Two-factor authentication code generator"
@ -270,6 +54,116 @@ msgstr "Prachtige vormgeving"
msgid "Huge database of (290+) websites/applications"
msgstr "Enorme databank met (meer dan 290) websites/toepassingen"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:34
msgid ""
"Since I have moved the application to GOME Gitlab's World group, a Flatpak "
"build for each new commit is available to download from the site's website."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:38
msgid "Backup and restore from a basic JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:39
msgid "Backup and restore from an encrypted-GPG JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:40
msgid "Add andOTP support (free and open Android 2FA application)"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:41
msgid "New Settings Widow with 3 sections: appearance, behavior and backup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:42
msgid "Fix Flatpak Build with the latest GNOME Runtime"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:43
msgid "Move the project to GOME Gitlab's World group"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:50
msgid "GNOME Shell Search provider"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:51
msgid "Codes expire simultaneously #91"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:58
msgid "Revamped main window to more closely follow the GNOME HIG"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:59
msgid "Revamped add a new account window to make it easier to use"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:60
msgid ""
"Possibility to add an account from a provider not listed in the shipped "
"database"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:61
msgid "Possibilty to edit an account"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:62
msgid "One Time Password now visible by default"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:69
msgid "Fix python-dbus by using GDbus instead"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:76
msgid "Fix the QRScanner on GNOME Shell"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:77
msgid "Add a new entry for the account's username"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:78
msgid "Updated database of supported accounts"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:85
msgid "HOTFIX: App not running in DE other than GNOME"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:92
#, fuzzy
msgid "Rename project to Authenticator"
msgstr "Over Authenticator"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:93
#, fuzzy
msgid "Cleaner code base"
msgstr "Databank wissen"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:94
msgid "Faster startup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:95
msgid "Remove unneeded features"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:96
msgid "Switch to pyzbar instead of zbarlight"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:97
msgid "Flatpak package"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:104
msgid "Bilal Elmoussaoui"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:4
msgid "Two-factor authentication"
msgstr "Tweefactorauthenticatie"
@ -299,19 +193,90 @@ msgstr "Schakelt de nachtmodus in de toepassing in/uit"
msgid "Default window maximized behaviour"
msgstr "Standaardgedrag van gemaximaliseerd venster"
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:21
msgid "Whether the application is locked with a password or not"
msgstr ""
"Of dat de toepassing al dan niet moet vergrendeld worden met een paswoord"
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:26
msgid "Whether the application can be locked or not"
msgstr "Of dat de toepassing al dan niet kan vergrendeld worden"
#: data/ui/about_dialog.ui.in:10
msgid "Two-factor authentication code generator."
msgstr "Generator voor tweefactorauthenticatiecodes."
#: data/ui/about_dialog.ui.in:13
msgid "translator-credits"
msgstr "Nathan Follens"
#: data/ui/account_add.ui:24
msgid "Add a new account"
msgstr "Nieuwen account toevoegen"
#: data/ui/account_add.ui:27 data/ui/account_edit.ui:21
msgid "Close"
msgstr "Sluiten"
#: data/ui/account_add.ui:36
msgid "Add"
msgstr "Toevoegen"
#: data/ui/account_add.ui:56
#, fuzzy
msgid "Scan QR Code"
msgstr "QR-code scannen"
#: data/ui/account_edit.ui:30 data/ui/settings.ui.in:454
#: src/Authenticator/widgets/utils.py:34
msgid "Save"
msgstr "Opslaan"
#: data/ui/account_row.ui:23
msgid "Edit"
msgstr "Bewerken"
#: data/ui/account_row.ui:37
msgid "Delete"
msgstr "Verwijderen"
#: data/ui/account_row.ui:92
msgid "Copy PIN to clipboard"
msgstr ""
#: data/ui/settings.ui.in:66
msgid "Behaviour"
msgstr "Gedrag"
#: data/ui/settings.ui.in:100
msgid "Dark theme"
msgstr "Donker thema"
#: data/ui/settings.ui.in:117
msgid "Use a dark theme, if possible"
msgstr "Donker thema gebruiken, indien mogelijk"
#: data/ui/settings.ui.in:179 src/Authenticator/application.py.in:91
msgid "Lock the application"
msgstr "Toepassing vergrendelen"
#: data/ui/settings.ui.in:196
#, fuzzy
msgid "Lock the application with a password"
msgstr "Mogelijkheid voor de toepassing te vergrendelen met een paswoord"
#: data/ui/settings.ui.in:279
msgid "Keep your accounts safer "
msgstr ""
#: data/ui/settings.ui.in:303
msgid "Password"
msgstr "Paswoord"
#: data/ui/settings.ui.in:348
msgid "Repeat Password"
msgstr "Herhaalt het paswoord"
#: data/ui/settings.ui.in:410
msgid "Settings"
msgstr "Instellingen"
#: data/ui/settings.ui.in:427
#, fuzzy
msgid "Authenticator Password"
msgstr "Authenticatiepaswoord"
#: data/ui/shortcuts.ui:13
msgctxt "shortcut window"
msgid "General"
@ -344,24 +309,170 @@ msgstr "Toevoegen"
#: data/ui/shortcuts.ui:51
msgctxt "shortcut window"
msgid "Select"
msgstr "Selecteren"
#: data/ui/shortcuts.ui:58
msgctxt "shortcut window"
msgid "Search"
msgstr "Zoeken"
#: authenticator.py.in:54
#: data/ui/window.ui.in:60
msgid "There are no accounts yet…"
msgstr "Ge hebt nog geen accounts toegevoegd…"
#: data/ui/window.ui.in:187
#, fuzzy
msgid "Authenticator is locked"
msgstr "Authenticator"
#: data/ui/window.ui.in:222
msgid "Unlock"
msgstr ""
#: src/authenticator.py.in:49
msgid "Start in debug mode"
msgstr "Starten in debugmodus"
#: authenticator.py.in:56
#: src/authenticator.py.in:51
msgid "Authenticator version number"
msgstr "Versienummer van Authenticator"
#~ msgid "translator-credits"
#~ msgstr "Nathan Follens"
#: src/Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr "uit een JSON-bestand met platte tekst"
#: src/Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr "naar een JSON-bestand met platte tekst"
#: src/Authenticator/application.py.in:102
msgid "Restore"
msgstr "Herstellen"
#: src/Authenticator/application.py.in:103
msgid "Backup"
msgstr "Back-up maken"
#. Night mode action
#: src/Authenticator/application.py.in:111
msgid "Preferences"
msgstr "Voorkeuren"
#: src/Authenticator/application.py.in:112
msgid "Donate"
msgstr "Doneren"
#: src/Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr "Sneltoetsen"
#: src/Authenticator/application.py.in:114
msgid "About Authenticator"
msgstr "Over Authenticator"
#: src/Authenticator/models/account.py:70
msgid "Default"
msgstr "Standaard"
#: src/Authenticator/widgets/accounts/add.py:204
msgid "Invalid QR code"
msgstr "Ongeldige QR-code"
#: src/Authenticator/widgets/accounts/edit.py:45
msgid "Edit {} - {}"
msgstr "{} - {} bewerken"
#: src/Authenticator/widgets/accounts/list.py:144
msgid "The One-Time Passwords expires in {} seconds"
msgstr "Het eenmalig paswoord verloopt binnen {} seconden"
#: src/Authenticator/widgets/accounts/row.py:75
msgid "Couldn't generate the secret code"
msgstr "Aanmaken van geheime code mislukt"
#: src/Authenticator/widgets/settings.py:73
msgid "Authentication password was unset. Please restart the application"
msgstr ""
#: src/Authenticator/widgets/settings.py:81
msgid "Authentication password is now enabled. Please restart the application."
msgstr ""
#: src/Authenticator/widgets/utils.py:32
msgid "Open"
msgstr "Openen"
#: src/Authenticator/widgets/utils.py:36 src/Authenticator/widgets/utils.py:62
msgid "Cancel"
msgstr "Annuleren"
#: src/Authenticator/widgets/utils.py:46 src/Authenticator/widgets/utils.py:51
msgid "JSON files"
msgstr "JSON-bestanden"
#: src/Authenticator/widgets/utils.py:61
msgid "Select"
msgstr "Selecteren"
#~ msgid "Provider"
#~ msgstr "Dienst"
#~ msgid "Account name"
#~ msgstr "Accountnaam"
#~ msgid "Secret token"
#~ msgstr "Geheim token"
#~ msgid "zbar library is not found. QRCode scanner will be disabled"
#~ msgstr ""
#~ "De zbar-bibliotheek kan niet gevonden worden. QR-codescanner wordt "
#~ "uitgeschakeld"
#~ msgid "Copy"
#~ msgstr "Kopiëren"
#~ msgid "Search"
#~ msgstr "Zoeken"
#~ msgid "Selection mode"
#~ msgstr "Selectiemodus"
#~ msgid "Click on items to select them"
#~ msgstr "Klikt op items voor ze te selecteren"
#~ msgid "Old Password"
#~ msgstr "Oud paswoord"
#~ msgid "Appearance"
#~ msgstr "Uiterlijk"
#~ msgid "Erase existing accounts"
#~ msgstr "Bestaande accounts wissen"
#~ msgid "Authentication password"
#~ msgstr "Authenticatiepaswoord"
#~ msgid "Set up application authentication password"
#~ msgstr "Authenticatiepaswoord instellen"
#~ msgid "The application needs to be restarted first."
#~ msgstr "De toepassing moet herstart worden."
#~ msgid "The existing accounts will be erased in 5 seconds"
#~ msgstr "De bestaande accounts worden binnen 5 seconden gewist"
#~ msgid "Undo"
#~ msgstr "Ongedaan maken"
#~ msgid "An account or more were removed."
#~ msgstr "Enen of meerdere accounts zijn verwijderd."
#~ msgid "Whether the application is locked with a password or not"
#~ msgstr ""
#~ "Of dat de toepassing al dan niet moet vergrendeld worden met een paswoord"
#~ msgid "Whether the application can be locked or not"
#~ msgstr "Of dat de toepassing al dan niet kan vergrendeld worden"
#~ msgctxt "shortcut window"
#~ msgid "Select"
#~ msgstr "Selecteren"
#, fuzzy
#~ msgid "Authenticator@NAME_SUFFIX@"
@ -373,10 +484,6 @@ msgstr "Versienummer van Authenticator"
#~ msgid "com.github.bilelmoussaoui.Authenticator"
#~ msgstr "com.github.bilelmoussaoui.Authenticator"
#, fuzzy
#~ msgid "Rename project to Authenticator"
#~ msgstr "Over Authenticator"
#~ msgid "Next"
#~ msgstr "Volgende"

575
po/pl.po
View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Authenticator\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-25 19:56+0100\n"
"POT-Creation-Date: 2019-02-11 22:35+0100\n"
"PO-Revision-Date: 2018-09-16 13:49+0000\n"
"Last-Translator: WaldiS <admin@sto.ugu.pl>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/authenticator/"
@ -20,232 +20,12 @@ msgstr ""
"|| n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 3.2-dev\n"
#: Authenticator/application.py.in:39
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:6
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:3
#: data/ui/window.ui.in:255 src/Authenticator/application.py.in:36
msgid "Authenticator"
msgstr "Wystawca uwierzytelnienia"
#: Authenticator/application.py.in:91 Authenticator/widgets/settings.py:239
msgid "Lock the application"
msgstr ""
#: Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr "z pliku JSON z czystym tekstem"
#: Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr "w pliku JSON z czystym tekstem"
#: Authenticator/application.py.in:102
msgid "Restore"
msgstr "Przywracanie"
#: Authenticator/application.py.in:103
#, fuzzy
msgid "Backup"
msgstr "Kopia zapasowa"
#. Night mode action
#: Authenticator/application.py.in:111
msgid "Preferences"
msgstr ""
#: Authenticator/application.py.in:112
msgid "Donate"
msgstr ""
#: Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr ""
#: Authenticator/application.py.in:114
#, fuzzy
msgid "About Authenticator"
msgstr "Wystawca uwierzytelnienia"
#: Authenticator/models/account.py:74
msgid "Default"
msgstr "Domyślne"
#: Authenticator/widgets/accounts/add.py:50
#: Authenticator/widgets/headerbar.py:101
msgid "Add a new account"
msgstr "Dodaj nowe konto"
#: Authenticator/widgets/accounts/add.py:54
msgid "Add"
msgstr "Dodaj"
#: Authenticator/widgets/accounts/add.py:62
msgid "Scan QR code"
msgstr "Skanuj kod QR"
#: Authenticator/widgets/accounts/add.py:68
#: Authenticator/widgets/accounts/edit.py:58
msgid "Close"
msgstr "Zamknij"
#: Authenticator/widgets/accounts/add.py:161
msgid "Provider"
msgstr "Dostawca"
#: Authenticator/widgets/accounts/add.py:171
msgid "Account name"
msgstr "Nazwa konta"
#: Authenticator/widgets/accounts/add.py:177
msgid "Secret token"
msgstr "Tajny token"
#: Authenticator/widgets/accounts/add.py:260
msgid "Invalid QR code"
msgstr "Nieprawidłowy kod QR"
#: Authenticator/widgets/accounts/add.py:268
msgid "zbar library is not found. QRCode scanner will be disabled"
msgstr ""
"biblioteka zbar nie została znaleziona. Skaner QRCode zostanie wyłączony"
#: Authenticator/widgets/accounts/edit.py:47
msgid "Edit {} - {}"
msgstr "Edycja {} - {}"
#: Authenticator/widgets/accounts/edit.py:52
#: Authenticator/widgets/settings.py:143 Authenticator/widgets/utils.py:20
msgid "Save"
msgstr "Zapisz"
#: Authenticator/widgets/accounts/list.py:164
msgid "The One-Time Passwords expires in {} seconds"
msgstr "Hasła jednorazowe wygasają za {} sekund"
#. Label
#: Authenticator/widgets/accounts/list.py:286
msgid "There are no accounts yet…"
msgstr "Nie ma jeszcze żadnych kont…"
#: Authenticator/widgets/accounts/row.py:59
msgid "Copy"
msgstr "Kopiuj"
#: Authenticator/widgets/accounts/row.py:60
msgid "Edit"
msgstr "Edycja"
#: Authenticator/widgets/accounts/row.py:150
msgid "Couldn't generate the secret code"
msgstr "Nie udało się wygenerować sekretnego kodu"
#: Authenticator/widgets/actions_bar.py:52
msgid "Delete"
msgstr "Usuń"
#: Authenticator/widgets/headerbar.py:99
msgid "Search"
msgstr "Szukaj"
#: Authenticator/widgets/headerbar.py:103 Authenticator/widgets/settings.py:212
msgid "Settings"
msgstr "Ustawienia"
#: Authenticator/widgets/headerbar.py:105
msgid "Selection mode"
msgstr "Tryb zaznaczania"
#: Authenticator/widgets/headerbar.py:107 Authenticator/widgets/utils.py:22
#: Authenticator/widgets/utils.py:48
msgid "Cancel"
msgstr "Anuluj"
#: Authenticator/widgets/headerbar.py:183
msgid "Click on items to select them"
msgstr "Kliknij na elementy aby je wybrać"
#: Authenticator/widgets/settings.py:139
#, fuzzy
msgid "Authentication Password"
msgstr "Wystawca uwierzytelnienia"
#: Authenticator/widgets/settings.py:152
msgid "Old Password"
msgstr "Stare hasło"
#: Authenticator/widgets/settings.py:156
msgid "Password"
msgstr "Hasło"
#: Authenticator/widgets/settings.py:159
msgid "Repeat Password"
msgstr "Powtórz hasło"
#: Authenticator/widgets/settings.py:229
msgid "Dark theme"
msgstr "Ciemny motyw"
#: Authenticator/widgets/settings.py:229
msgid "Use a dark theme, if possible"
msgstr "Użyj ciemnego motywu, jeśli to możliwe"
#: Authenticator/widgets/settings.py:232
msgid "Appearance"
msgstr "Wygląd"
#: Authenticator/widgets/settings.py:236
msgid "Clear the database"
msgstr ""
#: Authenticator/widgets/settings.py:236
msgid "Erase existing accounts"
msgstr ""
#: Authenticator/widgets/settings.py:240
msgid "Possibility to lock the application with a password"
msgstr ""
#: Authenticator/widgets/settings.py:243
#, fuzzy
msgid "Authentication password"
msgstr "Wystawca uwierzytelnienia"
#: Authenticator/widgets/settings.py:244
msgid "Set up application authentication password"
msgstr ""
#: Authenticator/widgets/settings.py:250
msgid "Behaviour"
msgstr ""
#: Authenticator/widgets/settings.py:259
msgid "The application needs to be restarted first."
msgstr ""
#: Authenticator/widgets/settings.py:288
msgid "The existing accounts will be erased in 5 seconds"
msgstr ""
#: Authenticator/widgets/settings.py:292 Authenticator/widgets/window.py.in:217
msgid "Undo"
msgstr "Cofnij"
#: Authenticator/widgets/utils.py:18
msgid "Open"
msgstr ""
#: Authenticator/widgets/utils.py:32 Authenticator/widgets/utils.py:37
msgid "JSON files"
msgstr ""
#: Authenticator/widgets/utils.py:47
#, fuzzy
msgid "Select"
msgstr "Tryb zaznaczania"
#: Authenticator/widgets/window.py.in:213
msgid "An account or more were removed."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:7
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:5
msgid "Two-factor authentication code generator"
@ -275,6 +55,116 @@ msgstr ""
msgid "Huge database of (290+) websites/applications"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:34
msgid ""
"Since I have moved the application to GOME Gitlab's World group, a Flatpak "
"build for each new commit is available to download from the site's website."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:38
msgid "Backup and restore from a basic JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:39
#, fuzzy
msgid "Backup and restore from an encrypted-GPG JSON file"
msgstr "z zaszyfrowanego OpenPGP pliku JSON"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:40
msgid "Add andOTP support (free and open Android 2FA application)"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:41
msgid "New Settings Widow with 3 sections: appearance, behavior and backup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:42
msgid "Fix Flatpak Build with the latest GNOME Runtime"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:43
msgid "Move the project to GOME Gitlab's World group"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:50
msgid "GNOME Shell Search provider"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:51
msgid "Codes expire simultaneously #91"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:58
msgid "Revamped main window to more closely follow the GNOME HIG"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:59
msgid "Revamped add a new account window to make it easier to use"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:60
msgid ""
"Possibility to add an account from a provider not listed in the shipped "
"database"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:61
msgid "Possibilty to edit an account"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:62
msgid "One Time Password now visible by default"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:69
msgid "Fix python-dbus by using GDbus instead"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:76
msgid "Fix the QRScanner on GNOME Shell"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:77
msgid "Add a new entry for the account's username"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:78
msgid "Updated database of supported accounts"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:85
msgid "HOTFIX: App not running in DE other than GNOME"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:92
#, fuzzy
msgid "Rename project to Authenticator"
msgstr "O Authenticatorze"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:93
msgid "Cleaner code base"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:94
msgid "Faster startup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:95
msgid "Remove unneeded features"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:96
msgid "Switch to pyzbar instead of zbarlight"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:97
msgid "Flatpak package"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:104
msgid "Bilal Elmoussaoui"
msgstr "Bilal Elmoussaoui"
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:4
msgid "Two-factor authentication"
msgstr "Uwierzytelnianie dwuskładnikowe"
@ -305,18 +195,90 @@ msgstr ""
msgid "Default window maximized behaviour"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:21
msgid "Whether the application is locked with a password or not"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:26
msgid "Whether the application can be locked or not"
msgstr ""
#: data/ui/about_dialog.ui.in:10
msgid "Two-factor authentication code generator."
msgstr "Dwuskładnikowy generator kodów uwierzytelniających."
#: data/ui/about_dialog.ui.in:13
msgid "translator-credits"
msgstr "tłumacz-uznanie"
#: data/ui/account_add.ui:24
msgid "Add a new account"
msgstr "Dodaj nowe konto"
#: data/ui/account_add.ui:27 data/ui/account_edit.ui:21
msgid "Close"
msgstr "Zamknij"
#: data/ui/account_add.ui:36
msgid "Add"
msgstr "Dodaj"
#: data/ui/account_add.ui:56
#, fuzzy
msgid "Scan QR Code"
msgstr "Skanuj kod QR"
#: data/ui/account_edit.ui:30 data/ui/settings.ui.in:454
#: src/Authenticator/widgets/utils.py:34
msgid "Save"
msgstr "Zapisz"
#: data/ui/account_row.ui:23
msgid "Edit"
msgstr "Edycja"
#: data/ui/account_row.ui:37
msgid "Delete"
msgstr "Usuń"
#: data/ui/account_row.ui:92
msgid "Copy PIN to clipboard"
msgstr ""
#: data/ui/settings.ui.in:66
msgid "Behaviour"
msgstr ""
#: data/ui/settings.ui.in:100
msgid "Dark theme"
msgstr "Ciemny motyw"
#: data/ui/settings.ui.in:117
msgid "Use a dark theme, if possible"
msgstr "Użyj ciemnego motywu, jeśli to możliwe"
#: data/ui/settings.ui.in:179 src/Authenticator/application.py.in:91
msgid "Lock the application"
msgstr ""
#: data/ui/settings.ui.in:196
#, fuzzy
msgid "Lock the application with a password"
msgstr "Wystawca uwierzytelnienia"
#: data/ui/settings.ui.in:279
msgid "Keep your accounts safer "
msgstr ""
#: data/ui/settings.ui.in:303
msgid "Password"
msgstr "Hasło"
#: data/ui/settings.ui.in:348
msgid "Repeat Password"
msgstr "Powtórz hasło"
#: data/ui/settings.ui.in:410
msgid "Settings"
msgstr "Ustawienia"
#: data/ui/settings.ui.in:427
#, fuzzy
msgid "Authenticator Password"
msgstr "Wystawca uwierzytelnienia"
#: data/ui/shortcuts.ui:13
msgctxt "shortcut window"
msgid "General"
@ -353,33 +315,153 @@ msgstr "Dodaj"
#: data/ui/shortcuts.ui:51
#, fuzzy
msgctxt "shortcut window"
msgid "Select"
msgstr "Tryb zaznaczania"
#: data/ui/shortcuts.ui:58
#, fuzzy
msgctxt "shortcut window"
msgid "Search"
msgstr "Szukaj"
#: authenticator.py.in:54
#: data/ui/window.ui.in:60
msgid "There are no accounts yet…"
msgstr "Nie ma jeszcze żadnych kont…"
#: data/ui/window.ui.in:187
#, fuzzy
msgid "Authenticator is locked"
msgstr "Wystawca uwierzytelnienia"
#: data/ui/window.ui.in:222
msgid "Unlock"
msgstr ""
#: src/authenticator.py.in:49
msgid "Start in debug mode"
msgstr "Uruchom w trybie debugowania"
#: authenticator.py.in:56
#: src/authenticator.py.in:51
msgid "Authenticator version number"
msgstr "Wersja Authenticatora"
#~ msgid "translator-credits"
#~ msgstr "tłumacz-uznanie"
#: src/Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr "z pliku JSON z czystym tekstem"
#: src/Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr "w pliku JSON z czystym tekstem"
#: src/Authenticator/application.py.in:102
msgid "Restore"
msgstr "Przywracanie"
#: src/Authenticator/application.py.in:103
#, fuzzy
msgid "Backup"
msgstr "Kopia zapasowa"
#. Night mode action
#: src/Authenticator/application.py.in:111
msgid "Preferences"
msgstr ""
#: src/Authenticator/application.py.in:112
msgid "Donate"
msgstr ""
#: src/Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr ""
#: src/Authenticator/application.py.in:114
#, fuzzy
msgid "About Authenticator"
msgstr "Wystawca uwierzytelnienia"
#: src/Authenticator/models/account.py:70
msgid "Default"
msgstr "Domyślne"
#: src/Authenticator/widgets/accounts/add.py:204
msgid "Invalid QR code"
msgstr "Nieprawidłowy kod QR"
#: src/Authenticator/widgets/accounts/edit.py:45
msgid "Edit {} - {}"
msgstr "Edycja {} - {}"
#: src/Authenticator/widgets/accounts/list.py:144
msgid "The One-Time Passwords expires in {} seconds"
msgstr "Hasła jednorazowe wygasają za {} sekund"
#: src/Authenticator/widgets/accounts/row.py:75
msgid "Couldn't generate the secret code"
msgstr "Nie udało się wygenerować sekretnego kodu"
#: src/Authenticator/widgets/settings.py:73
msgid "Authentication password was unset. Please restart the application"
msgstr ""
#: src/Authenticator/widgets/settings.py:81
msgid "Authentication password is now enabled. Please restart the application."
msgstr ""
#: src/Authenticator/widgets/utils.py:32
msgid "Open"
msgstr ""
#: src/Authenticator/widgets/utils.py:36 src/Authenticator/widgets/utils.py:62
msgid "Cancel"
msgstr "Anuluj"
#: src/Authenticator/widgets/utils.py:46 src/Authenticator/widgets/utils.py:51
msgid "JSON files"
msgstr ""
#: src/Authenticator/widgets/utils.py:61
#, fuzzy
msgid "Select"
msgstr "Tryb zaznaczania"
#~ msgid "Provider"
#~ msgstr "Dostawca"
#~ msgid "Account name"
#~ msgstr "Nazwa konta"
#~ msgid "Secret token"
#~ msgstr "Tajny token"
#~ msgid "zbar library is not found. QRCode scanner will be disabled"
#~ msgstr ""
#~ "biblioteka zbar nie została znaleziona. Skaner QRCode zostanie wyłączony"
#~ msgid "Copy"
#~ msgstr "Kopiuj"
#~ msgid "Search"
#~ msgstr "Szukaj"
#~ msgid "Selection mode"
#~ msgstr "Tryb zaznaczania"
#~ msgid "Click on items to select them"
#~ msgstr "Kliknij na elementy aby je wybrać"
#~ msgid "Old Password"
#~ msgstr "Stare hasło"
#~ msgid "Appearance"
#~ msgstr "Wygląd"
#~ msgid "Undo"
#~ msgstr "Cofnij"
#, fuzzy
#~ msgctxt "shortcut window"
#~ msgid "Select"
#~ msgstr "Tryb zaznaczania"
#, fuzzy
#~ msgid "Authenticator@NAME_SUFFIX@"
#~ msgstr "Wystawca uwierzytelnienia"
#~ msgid "from an OpenPGP-encrypted JSON file"
#~ msgstr "z zaszyfrowanego OpenPGP pliku JSON"
#~ msgid "in an OpenPGP-encrypted JSON file"
#~ msgstr "w zaszyfrowanym OpenPGP pliku JSON"
@ -410,13 +492,6 @@ msgstr "Wersja Authenticatora"
#~ msgid "com.github.bilelmoussaoui.Authenticator"
#~ msgstr "com.github.bilelmoussaoui.Authenticator"
#~ msgid "Bilal Elmoussaoui"
#~ msgstr "Bilal Elmoussaoui"
#, fuzzy
#~ msgid "Rename project to Authenticator"
#~ msgstr "O Authenticatorze"
#~ msgid "Next"
#~ msgstr "Następny"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Authenticator\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-25 19:56+0100\n"
"POT-Creation-Date: 2019-02-11 22:35+0100\n"
"PO-Revision-Date: 2019-01-11 03:06+0000\n"
"Last-Translator: RD WebDesign <weblate@rdwebdesign.com.br>\n"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
@ -19,227 +19,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 3.4-dev\n"
#: Authenticator/application.py.in:39
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:6
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:3
#: data/ui/window.ui.in:255 src/Authenticator/application.py.in:36
msgid "Authenticator"
msgstr "Autenticador"
#: Authenticator/application.py.in:91 Authenticator/widgets/settings.py:239
msgid "Lock the application"
msgstr "Bloquear o aplicativo"
#: Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr "de um arquivo JSON de texto simples"
#: Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr "em um arquivo JSON em texto simples"
#: Authenticator/application.py.in:102
msgid "Restore"
msgstr "Restaurar"
#: Authenticator/application.py.in:103
msgid "Backup"
msgstr "Cópia de segurança"
#. Night mode action
#: Authenticator/application.py.in:111
msgid "Preferences"
msgstr "Preferências"
#: Authenticator/application.py.in:112
msgid "Donate"
msgstr "Doar"
#: Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr "Atalhos de Teclado"
#: Authenticator/application.py.in:114
msgid "About Authenticator"
msgstr "Sobre o Autenticador"
#: Authenticator/models/account.py:74
msgid "Default"
msgstr "Padrão"
#: Authenticator/widgets/accounts/add.py:50
#: Authenticator/widgets/headerbar.py:101
msgid "Add a new account"
msgstr "Adicionar uma nova conta"
#: Authenticator/widgets/accounts/add.py:54
msgid "Add"
msgstr "Adicionar"
#: Authenticator/widgets/accounts/add.py:62
msgid "Scan QR code"
msgstr "Escanear código QR"
#: Authenticator/widgets/accounts/add.py:68
#: Authenticator/widgets/accounts/edit.py:58
msgid "Close"
msgstr "Fechar"
#: Authenticator/widgets/accounts/add.py:161
msgid "Provider"
msgstr "Provedor"
#: Authenticator/widgets/accounts/add.py:171
msgid "Account name"
msgstr "Nome da conta"
#: Authenticator/widgets/accounts/add.py:177
msgid "Secret token"
msgstr "Token secreto"
#: Authenticator/widgets/accounts/add.py:260
msgid "Invalid QR code"
msgstr "Código QR inválido"
#: Authenticator/widgets/accounts/add.py:268
msgid "zbar library is not found. QRCode scanner will be disabled"
msgstr ""
"A biblioteca zbar não foi encontrada. O escaneador QRCode será desativado"
#: Authenticator/widgets/accounts/edit.py:47
msgid "Edit {} - {}"
msgstr "Editar {} - {}"
#: Authenticator/widgets/accounts/edit.py:52
#: Authenticator/widgets/settings.py:143 Authenticator/widgets/utils.py:20
msgid "Save"
msgstr "Salvar"
#: Authenticator/widgets/accounts/list.py:164
msgid "The One-Time Passwords expires in {} seconds"
msgstr "As senhas de uso único expiram em {} segundos"
#. Label
#: Authenticator/widgets/accounts/list.py:286
msgid "There are no accounts yet…"
msgstr "Ainda não há contas…"
#: Authenticator/widgets/accounts/row.py:59
msgid "Copy"
msgstr "Copiar"
#: Authenticator/widgets/accounts/row.py:60
msgid "Edit"
msgstr "Editar"
#: Authenticator/widgets/accounts/row.py:150
msgid "Couldn't generate the secret code"
msgstr "Não foi possível gerar o código secreto"
#: Authenticator/widgets/actions_bar.py:52
msgid "Delete"
msgstr "Excluir"
#: Authenticator/widgets/headerbar.py:99
msgid "Search"
msgstr "Procurar"
#: Authenticator/widgets/headerbar.py:103 Authenticator/widgets/settings.py:212
msgid "Settings"
msgstr "Configurações"
#: Authenticator/widgets/headerbar.py:105
msgid "Selection mode"
msgstr "Modo de seleção"
#: Authenticator/widgets/headerbar.py:107 Authenticator/widgets/utils.py:22
#: Authenticator/widgets/utils.py:48
msgid "Cancel"
msgstr "Cancelar"
#: Authenticator/widgets/headerbar.py:183
msgid "Click on items to select them"
msgstr "Clique nos itens para selecioná-los"
#: Authenticator/widgets/settings.py:139
msgid "Authentication Password"
msgstr "Senha de autenticação"
#: Authenticator/widgets/settings.py:152
msgid "Old Password"
msgstr "Senha antiga"
#: Authenticator/widgets/settings.py:156
msgid "Password"
msgstr "Senha"
#: Authenticator/widgets/settings.py:159
msgid "Repeat Password"
msgstr "Repetir senha"
#: Authenticator/widgets/settings.py:229
msgid "Dark theme"
msgstr "Tema escuro"
#: Authenticator/widgets/settings.py:229
msgid "Use a dark theme, if possible"
msgstr "Use um tema escuro, se possível"
#: Authenticator/widgets/settings.py:232
msgid "Appearance"
msgstr "Aparência"
#: Authenticator/widgets/settings.py:236
msgid "Clear the database"
msgstr "Limpar o banco de dados"
#: Authenticator/widgets/settings.py:236
msgid "Erase existing accounts"
msgstr "Apagar contas existentes"
#: Authenticator/widgets/settings.py:240
msgid "Possibility to lock the application with a password"
msgstr "Possibilidade de bloquear o aplicativo com uma senha"
#: Authenticator/widgets/settings.py:243
msgid "Authentication password"
msgstr "Senha de autenticação"
#: Authenticator/widgets/settings.py:244
msgid "Set up application authentication password"
msgstr "Configurar senha de autenticação do aplicativo"
#: Authenticator/widgets/settings.py:250
msgid "Behaviour"
msgstr "Comportamento"
#: Authenticator/widgets/settings.py:259
msgid "The application needs to be restarted first."
msgstr "O aplicativo precisa ser reiniciado antes."
#: Authenticator/widgets/settings.py:288
msgid "The existing accounts will be erased in 5 seconds"
msgstr "As contas existentes serão apagadas em 5 segundos"
#: Authenticator/widgets/settings.py:292 Authenticator/widgets/window.py.in:217
msgid "Undo"
msgstr "Desfazer"
#: Authenticator/widgets/utils.py:18
msgid "Open"
msgstr "Abrir"
#: Authenticator/widgets/utils.py:32 Authenticator/widgets/utils.py:37
msgid "JSON files"
msgstr "Arquivos JSON"
#: Authenticator/widgets/utils.py:47
msgid "Select"
msgstr "Selecionar"
#: Authenticator/widgets/window.py.in:213
msgid "An account or more were removed."
msgstr "Uma ou mais contas foram removidas."
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:7
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:5
msgid "Two-factor authentication code generator"
@ -269,6 +54,117 @@ msgstr "Uma interface de usuário bonita"
msgid "Huge database of (290+) websites/applications"
msgstr "Enorme banco de dados (290+) de web sites e aplicativos"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:34
msgid ""
"Since I have moved the application to GOME Gitlab's World group, a Flatpak "
"build for each new commit is available to download from the site's website."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:38
msgid "Backup and restore from a basic JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:39
#, fuzzy
msgid "Backup and restore from an encrypted-GPG JSON file"
msgstr "de um arquivo JSON criptografado com OpenPGP"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:40
msgid "Add andOTP support (free and open Android 2FA application)"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:41
msgid "New Settings Widow with 3 sections: appearance, behavior and backup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:42
msgid "Fix Flatpak Build with the latest GNOME Runtime"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:43
msgid "Move the project to GOME Gitlab's World group"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:50
msgid "GNOME Shell Search provider"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:51
msgid "Codes expire simultaneously #91"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:58
msgid "Revamped main window to more closely follow the GNOME HIG"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:59
msgid "Revamped add a new account window to make it easier to use"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:60
msgid ""
"Possibility to add an account from a provider not listed in the shipped "
"database"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:61
msgid "Possibilty to edit an account"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:62
msgid "One Time Password now visible by default"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:69
msgid "Fix python-dbus by using GDbus instead"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:76
msgid "Fix the QRScanner on GNOME Shell"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:77
msgid "Add a new entry for the account's username"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:78
msgid "Updated database of supported accounts"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:85
msgid "HOTFIX: App not running in DE other than GNOME"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:92
#, fuzzy
msgid "Rename project to Authenticator"
msgstr "Sobre o Autenticador"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:93
#, fuzzy
msgid "Cleaner code base"
msgstr "Limpar o banco de dados"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:94
msgid "Faster startup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:95
msgid "Remove unneeded features"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:96
msgid "Switch to pyzbar instead of zbarlight"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:97
msgid "Flatpak package"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:104
msgid "Bilal Elmoussaoui"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:4
msgid "Two-factor authentication"
msgstr "Autenticação de dois fatores"
@ -298,18 +194,90 @@ msgstr "Ativar/desativar o modo noturno dentro do aplicativo"
msgid "Default window maximized behaviour"
msgstr "Comportamento padrão da janela maximizada"
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:21
msgid "Whether the application is locked with a password or not"
msgstr "Se o aplicativo está ou não bloqueado com uma senha"
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:26
msgid "Whether the application can be locked or not"
msgstr "Se o aplicativo pode ou não ser bloqueado"
#: data/ui/about_dialog.ui.in:10
msgid "Two-factor authentication code generator."
msgstr "Gerador de código de autenticação de dois fatores."
#: data/ui/about_dialog.ui.in:13
msgid "translator-credits"
msgstr "Fúlvio Alves <fga.fulvio@gmail.com>"
#: data/ui/account_add.ui:24
msgid "Add a new account"
msgstr "Adicionar uma nova conta"
#: data/ui/account_add.ui:27 data/ui/account_edit.ui:21
msgid "Close"
msgstr "Fechar"
#: data/ui/account_add.ui:36
msgid "Add"
msgstr "Adicionar"
#: data/ui/account_add.ui:56
#, fuzzy
msgid "Scan QR Code"
msgstr "Escanear código QR"
#: data/ui/account_edit.ui:30 data/ui/settings.ui.in:454
#: src/Authenticator/widgets/utils.py:34
msgid "Save"
msgstr "Salvar"
#: data/ui/account_row.ui:23
msgid "Edit"
msgstr "Editar"
#: data/ui/account_row.ui:37
msgid "Delete"
msgstr "Excluir"
#: data/ui/account_row.ui:92
msgid "Copy PIN to clipboard"
msgstr ""
#: data/ui/settings.ui.in:66
msgid "Behaviour"
msgstr "Comportamento"
#: data/ui/settings.ui.in:100
msgid "Dark theme"
msgstr "Tema escuro"
#: data/ui/settings.ui.in:117
msgid "Use a dark theme, if possible"
msgstr "Use um tema escuro, se possível"
#: data/ui/settings.ui.in:179 src/Authenticator/application.py.in:91
msgid "Lock the application"
msgstr "Bloquear o aplicativo"
#: data/ui/settings.ui.in:196
#, fuzzy
msgid "Lock the application with a password"
msgstr "Possibilidade de bloquear o aplicativo com uma senha"
#: data/ui/settings.ui.in:279
msgid "Keep your accounts safer "
msgstr ""
#: data/ui/settings.ui.in:303
msgid "Password"
msgstr "Senha"
#: data/ui/settings.ui.in:348
msgid "Repeat Password"
msgstr "Repetir senha"
#: data/ui/settings.ui.in:410
msgid "Settings"
msgstr "Configurações"
#: data/ui/settings.ui.in:427
#, fuzzy
msgid "Authenticator Password"
msgstr "Senha de autenticação"
#: data/ui/shortcuts.ui:13
msgctxt "shortcut window"
msgid "General"
@ -342,32 +310,173 @@ msgstr "Adicionar"
#: data/ui/shortcuts.ui:51
msgctxt "shortcut window"
msgid "Select"
msgstr "Selecionar"
#: data/ui/shortcuts.ui:58
msgctxt "shortcut window"
msgid "Search"
msgstr "Procurar"
#: authenticator.py.in:54
#: data/ui/window.ui.in:60
msgid "There are no accounts yet…"
msgstr "Ainda não há contas…"
#: data/ui/window.ui.in:187
#, fuzzy
msgid "Authenticator is locked"
msgstr "Autenticador"
#: data/ui/window.ui.in:222
msgid "Unlock"
msgstr ""
#: src/authenticator.py.in:49
msgid "Start in debug mode"
msgstr "Iniciar no modo de depuração"
#: authenticator.py.in:56
#: src/authenticator.py.in:51
msgid "Authenticator version number"
msgstr "Número da versão do Autenticador"
#~ msgid "translator-credits"
#~ msgstr "Fúlvio Alves <fga.fulvio@gmail.com>"
#: src/Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr "de um arquivo JSON de texto simples"
#: src/Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr "em um arquivo JSON em texto simples"
#: src/Authenticator/application.py.in:102
msgid "Restore"
msgstr "Restaurar"
#: src/Authenticator/application.py.in:103
msgid "Backup"
msgstr "Cópia de segurança"
#. Night mode action
#: src/Authenticator/application.py.in:111
msgid "Preferences"
msgstr "Preferências"
#: src/Authenticator/application.py.in:112
msgid "Donate"
msgstr "Doar"
#: src/Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr "Atalhos de Teclado"
#: src/Authenticator/application.py.in:114
msgid "About Authenticator"
msgstr "Sobre o Autenticador"
#: src/Authenticator/models/account.py:70
msgid "Default"
msgstr "Padrão"
#: src/Authenticator/widgets/accounts/add.py:204
msgid "Invalid QR code"
msgstr "Código QR inválido"
#: src/Authenticator/widgets/accounts/edit.py:45
msgid "Edit {} - {}"
msgstr "Editar {} - {}"
#: src/Authenticator/widgets/accounts/list.py:144
msgid "The One-Time Passwords expires in {} seconds"
msgstr "As senhas de uso único expiram em {} segundos"
#: src/Authenticator/widgets/accounts/row.py:75
msgid "Couldn't generate the secret code"
msgstr "Não foi possível gerar o código secreto"
#: src/Authenticator/widgets/settings.py:73
msgid "Authentication password was unset. Please restart the application"
msgstr ""
#: src/Authenticator/widgets/settings.py:81
msgid "Authentication password is now enabled. Please restart the application."
msgstr ""
#: src/Authenticator/widgets/utils.py:32
msgid "Open"
msgstr "Abrir"
#: src/Authenticator/widgets/utils.py:36 src/Authenticator/widgets/utils.py:62
msgid "Cancel"
msgstr "Cancelar"
#: src/Authenticator/widgets/utils.py:46 src/Authenticator/widgets/utils.py:51
msgid "JSON files"
msgstr "Arquivos JSON"
#: src/Authenticator/widgets/utils.py:61
msgid "Select"
msgstr "Selecionar"
#~ msgid "Provider"
#~ msgstr "Provedor"
#~ msgid "Account name"
#~ msgstr "Nome da conta"
#~ msgid "Secret token"
#~ msgstr "Token secreto"
#~ msgid "zbar library is not found. QRCode scanner will be disabled"
#~ msgstr ""
#~ "A biblioteca zbar não foi encontrada. O escaneador QRCode será desativado"
#~ msgid "Copy"
#~ msgstr "Copiar"
#~ msgid "Search"
#~ msgstr "Procurar"
#~ msgid "Selection mode"
#~ msgstr "Modo de seleção"
#~ msgid "Click on items to select them"
#~ msgstr "Clique nos itens para selecioná-los"
#~ msgid "Old Password"
#~ msgstr "Senha antiga"
#~ msgid "Appearance"
#~ msgstr "Aparência"
#~ msgid "Erase existing accounts"
#~ msgstr "Apagar contas existentes"
#~ msgid "Authentication password"
#~ msgstr "Senha de autenticação"
#~ msgid "Set up application authentication password"
#~ msgstr "Configurar senha de autenticação do aplicativo"
#~ msgid "The application needs to be restarted first."
#~ msgstr "O aplicativo precisa ser reiniciado antes."
#~ msgid "The existing accounts will be erased in 5 seconds"
#~ msgstr "As contas existentes serão apagadas em 5 segundos"
#~ msgid "Undo"
#~ msgstr "Desfazer"
#~ msgid "An account or more were removed."
#~ msgstr "Uma ou mais contas foram removidas."
#~ msgid "Whether the application is locked with a password or not"
#~ msgstr "Se o aplicativo está ou não bloqueado com uma senha"
#~ msgid "Whether the application can be locked or not"
#~ msgstr "Se o aplicativo pode ou não ser bloqueado"
#~ msgctxt "shortcut window"
#~ msgid "Select"
#~ msgstr "Selecionar"
#, fuzzy
#~ msgid "Authenticator@NAME_SUFFIX@"
#~ msgstr "Autenticador"
#~ msgid "from an OpenPGP-encrypted JSON file"
#~ msgstr "de um arquivo JSON criptografado com OpenPGP"
#~ msgid "in an OpenPGP-encrypted JSON file"
#~ msgstr "em um arquivo JSON encriptado com OpenPGP"

577
po/ru.po
View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Authenticator\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-25 19:56+0100\n"
"POT-Creation-Date: 2019-02-11 22:35+0100\n"
"PO-Revision-Date: 2019-01-08 00:59+0000\n"
"Last-Translator: Vladislav <vladislavp@pm.me>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/authenticator/"
@ -20,226 +20,12 @@ msgstr ""
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 3.4-dev\n"
#: Authenticator/application.py.in:39
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:6
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:3
#: data/ui/window.ui.in:255 src/Authenticator/application.py.in:36
msgid "Authenticator"
msgstr "Аутентификатор"
#: Authenticator/application.py.in:91 Authenticator/widgets/settings.py:239
msgid "Lock the application"
msgstr "Заблокировать приложение"
#: Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr "из текстового файла в формате JSON"
#: Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr "в текстовый файл в формате JSON"
#: Authenticator/application.py.in:102
msgid "Restore"
msgstr "Восстановить"
#: Authenticator/application.py.in:103
msgid "Backup"
msgstr "Резервное копирование"
#. Night mode action
#: Authenticator/application.py.in:111
msgid "Preferences"
msgstr "Настройки"
#: Authenticator/application.py.in:112
msgid "Donate"
msgstr "Пожертвовать"
#: Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr "Горячие Клавиши"
#: Authenticator/application.py.in:114
msgid "About Authenticator"
msgstr "Об Аутентификаторе"
#: Authenticator/models/account.py:74
msgid "Default"
msgstr "По умолчанию"
#: Authenticator/widgets/accounts/add.py:50
#: Authenticator/widgets/headerbar.py:101
msgid "Add a new account"
msgstr "Добавить новый аккаунт"
#: Authenticator/widgets/accounts/add.py:54
msgid "Add"
msgstr "Добавить"
#: Authenticator/widgets/accounts/add.py:62
msgid "Scan QR code"
msgstr "Сканировать QR код"
#: Authenticator/widgets/accounts/add.py:68
#: Authenticator/widgets/accounts/edit.py:58
msgid "Close"
msgstr "Закрыть"
#: Authenticator/widgets/accounts/add.py:161
msgid "Provider"
msgstr "Провайдер"
#: Authenticator/widgets/accounts/add.py:171
msgid "Account name"
msgstr "Имя аккаунта"
#: Authenticator/widgets/accounts/add.py:177
msgid "Secret token"
msgstr "Секретный токен"
#: Authenticator/widgets/accounts/add.py:260
msgid "Invalid QR code"
msgstr "Некорректный QR код"
#: Authenticator/widgets/accounts/add.py:268
msgid "zbar library is not found. QRCode scanner will be disabled"
msgstr "zbar библиотека не найдена. Сканнер QRCode будет отключен"
#: Authenticator/widgets/accounts/edit.py:47
msgid "Edit {} - {}"
msgstr "Редактировать {} - {}"
#: Authenticator/widgets/accounts/edit.py:52
#: Authenticator/widgets/settings.py:143 Authenticator/widgets/utils.py:20
msgid "Save"
msgstr "Сохранить"
#: Authenticator/widgets/accounts/list.py:164
msgid "The One-Time Passwords expires in {} seconds"
msgstr "Одноразовый пароль истекает через {} секунд"
#. Label
#: Authenticator/widgets/accounts/list.py:286
msgid "There are no accounts yet…"
msgstr "Не добавлено ни одного аккаунта…"
#: Authenticator/widgets/accounts/row.py:59
msgid "Copy"
msgstr "Копировать"
#: Authenticator/widgets/accounts/row.py:60
msgid "Edit"
msgstr "Редактировать"
#: Authenticator/widgets/accounts/row.py:150
msgid "Couldn't generate the secret code"
msgstr "Не удалось генерировать секретный код"
#: Authenticator/widgets/actions_bar.py:52
msgid "Delete"
msgstr "Удалить"
#: Authenticator/widgets/headerbar.py:99
msgid "Search"
msgstr "Поиск"
#: Authenticator/widgets/headerbar.py:103 Authenticator/widgets/settings.py:212
msgid "Settings"
msgstr "Настройки"
#: Authenticator/widgets/headerbar.py:105
msgid "Selection mode"
msgstr "Режим выбора"
#: Authenticator/widgets/headerbar.py:107 Authenticator/widgets/utils.py:22
#: Authenticator/widgets/utils.py:48
msgid "Cancel"
msgstr "Отменить"
#: Authenticator/widgets/headerbar.py:183
msgid "Click on items to select them"
msgstr "Нажмите на элемент для выбора"
#: Authenticator/widgets/settings.py:139
msgid "Authentication Password"
msgstr "Пароль Аутентификации"
#: Authenticator/widgets/settings.py:152
msgid "Old Password"
msgstr "Старый Пароль"
#: Authenticator/widgets/settings.py:156
msgid "Password"
msgstr "Пароль"
#: Authenticator/widgets/settings.py:159
msgid "Repeat Password"
msgstr "Повторите пароль"
#: Authenticator/widgets/settings.py:229
msgid "Dark theme"
msgstr "Тёмная тема"
#: Authenticator/widgets/settings.py:229
msgid "Use a dark theme, if possible"
msgstr "По возможности используйте тёмную тему"
#: Authenticator/widgets/settings.py:232
msgid "Appearance"
msgstr "Внешний вид"
#: Authenticator/widgets/settings.py:236
msgid "Clear the database"
msgstr "Очистить базу данных"
#: Authenticator/widgets/settings.py:236
msgid "Erase existing accounts"
msgstr "Удалить существующие аккаунты"
#: Authenticator/widgets/settings.py:240
msgid "Possibility to lock the application with a password"
msgstr "Возможность блокировки программы паролем"
#: Authenticator/widgets/settings.py:243
msgid "Authentication password"
msgstr "Пароль аутентификации"
#: Authenticator/widgets/settings.py:244
msgid "Set up application authentication password"
msgstr "Установите пароль аутентификации приложения"
#: Authenticator/widgets/settings.py:250
msgid "Behaviour"
msgstr "Поведение"
#: Authenticator/widgets/settings.py:259
msgid "The application needs to be restarted first."
msgstr "Приложению требуется перезапуск."
#: Authenticator/widgets/settings.py:288
msgid "The existing accounts will be erased in 5 seconds"
msgstr "Существующие аккаунты будут удалены через 5 секунд"
#: Authenticator/widgets/settings.py:292 Authenticator/widgets/window.py.in:217
msgid "Undo"
msgstr "Отменить"
#: Authenticator/widgets/utils.py:18
msgid "Open"
msgstr "Открыть"
#: Authenticator/widgets/utils.py:32 Authenticator/widgets/utils.py:37
msgid "JSON files"
msgstr "JSON файлы"
#: Authenticator/widgets/utils.py:47
msgid "Select"
msgstr "Выбрать"
#: Authenticator/widgets/window.py.in:213
msgid "An account or more were removed."
msgstr "Один или несколько аккаунтов были удалены."
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:7
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:5
msgid "Two-factor authentication code generator"
@ -269,6 +55,116 @@ msgstr "Прекрасный Пользовательский Интерфейс
msgid "Huge database of (290+) websites/applications"
msgstr "Огромная база данных (290+) веб-сайтов/приложений"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:34
msgid ""
"Since I have moved the application to GOME Gitlab's World group, a Flatpak "
"build for each new commit is available to download from the site's website."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:38
msgid "Backup and restore from a basic JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:39
msgid "Backup and restore from an encrypted-GPG JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:40
msgid "Add andOTP support (free and open Android 2FA application)"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:41
msgid "New Settings Widow with 3 sections: appearance, behavior and backup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:42
msgid "Fix Flatpak Build with the latest GNOME Runtime"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:43
msgid "Move the project to GOME Gitlab's World group"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:50
msgid "GNOME Shell Search provider"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:51
msgid "Codes expire simultaneously #91"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:58
msgid "Revamped main window to more closely follow the GNOME HIG"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:59
msgid "Revamped add a new account window to make it easier to use"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:60
msgid ""
"Possibility to add an account from a provider not listed in the shipped "
"database"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:61
msgid "Possibilty to edit an account"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:62
msgid "One Time Password now visible by default"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:69
msgid "Fix python-dbus by using GDbus instead"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:76
msgid "Fix the QRScanner on GNOME Shell"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:77
msgid "Add a new entry for the account's username"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:78
msgid "Updated database of supported accounts"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:85
msgid "HOTFIX: App not running in DE other than GNOME"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:92
#, fuzzy
msgid "Rename project to Authenticator"
msgstr "Об Аутентификаторе"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:93
#, fuzzy
msgid "Cleaner code base"
msgstr "Очистить базу данных"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:94
msgid "Faster startup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:95
msgid "Remove unneeded features"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:96
msgid "Switch to pyzbar instead of zbarlight"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:97
msgid "Flatpak package"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:104
msgid "Bilal Elmoussaoui"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:4
msgid "Two-factor authentication"
msgstr "Двухфакторная аутентификация"
@ -298,18 +194,90 @@ msgstr "Включение/выключение ночного режима в
msgid "Default window maximized behaviour"
msgstr "Поведение по умолчанию для развернутого окна"
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:21
msgid "Whether the application is locked with a password or not"
msgstr "Заблокировано ли приложение паролем или нет"
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:26
msgid "Whether the application can be locked or not"
msgstr "Может ли приложение быть заблоровано или нет"
#: data/ui/about_dialog.ui.in:10
msgid "Two-factor authentication code generator."
msgstr "Генератор кодов двухфакторной аутентификации."
#: data/ui/about_dialog.ui.in:13
msgid "translator-credits"
msgstr "благодарность-переводчикам"
#: data/ui/account_add.ui:24
msgid "Add a new account"
msgstr "Добавить новый аккаунт"
#: data/ui/account_add.ui:27 data/ui/account_edit.ui:21
msgid "Close"
msgstr "Закрыть"
#: data/ui/account_add.ui:36
msgid "Add"
msgstr "Добавить"
#: data/ui/account_add.ui:56
#, fuzzy
msgid "Scan QR Code"
msgstr "Сканировать QR код"
#: data/ui/account_edit.ui:30 data/ui/settings.ui.in:454
#: src/Authenticator/widgets/utils.py:34
msgid "Save"
msgstr "Сохранить"
#: data/ui/account_row.ui:23
msgid "Edit"
msgstr "Редактировать"
#: data/ui/account_row.ui:37
msgid "Delete"
msgstr "Удалить"
#: data/ui/account_row.ui:92
msgid "Copy PIN to clipboard"
msgstr ""
#: data/ui/settings.ui.in:66
msgid "Behaviour"
msgstr "Поведение"
#: data/ui/settings.ui.in:100
msgid "Dark theme"
msgstr "Тёмная тема"
#: data/ui/settings.ui.in:117
msgid "Use a dark theme, if possible"
msgstr "По возможности используйте тёмную тему"
#: data/ui/settings.ui.in:179 src/Authenticator/application.py.in:91
msgid "Lock the application"
msgstr "Заблокировать приложение"
#: data/ui/settings.ui.in:196
#, fuzzy
msgid "Lock the application with a password"
msgstr "Возможность блокировки программы паролем"
#: data/ui/settings.ui.in:279
msgid "Keep your accounts safer "
msgstr ""
#: data/ui/settings.ui.in:303
msgid "Password"
msgstr "Пароль"
#: data/ui/settings.ui.in:348
msgid "Repeat Password"
msgstr "Повторите пароль"
#: data/ui/settings.ui.in:410
msgid "Settings"
msgstr "Настройки"
#: data/ui/settings.ui.in:427
#, fuzzy
msgid "Authenticator Password"
msgstr "Пароль Аутентификации"
#: data/ui/shortcuts.ui:13
msgctxt "shortcut window"
msgid "General"
@ -342,21 +310,164 @@ msgstr "Добавить"
#: data/ui/shortcuts.ui:51
msgctxt "shortcut window"
msgid "Select"
msgstr "Выбрать"
#: data/ui/shortcuts.ui:58
msgctxt "shortcut window"
msgid "Search"
msgstr "Поиск"
#: authenticator.py.in:54
#: data/ui/window.ui.in:60
msgid "There are no accounts yet…"
msgstr "Не добавлено ни одного аккаунта…"
#: data/ui/window.ui.in:187
#, fuzzy
msgid "Authenticator is locked"
msgstr "Аутентификатор"
#: data/ui/window.ui.in:222
msgid "Unlock"
msgstr ""
#: src/authenticator.py.in:49
msgid "Start in debug mode"
msgstr "Запустить в режиме отладки"
#: authenticator.py.in:56
#: src/authenticator.py.in:51
msgid "Authenticator version number"
msgstr "Номер версии аутентификатора"
#~ msgid "translator-credits"
#~ msgstr "благодарность-переводчикам"
#: src/Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr "из текстового файла в формате JSON"
#: src/Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr "в текстовый файл в формате JSON"
#: src/Authenticator/application.py.in:102
msgid "Restore"
msgstr "Восстановить"
#: src/Authenticator/application.py.in:103
msgid "Backup"
msgstr "Резервное копирование"
#. Night mode action
#: src/Authenticator/application.py.in:111
msgid "Preferences"
msgstr "Настройки"
#: src/Authenticator/application.py.in:112
msgid "Donate"
msgstr "Пожертвовать"
#: src/Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr "Горячие Клавиши"
#: src/Authenticator/application.py.in:114
msgid "About Authenticator"
msgstr "Об Аутентификаторе"
#: src/Authenticator/models/account.py:70
msgid "Default"
msgstr "По умолчанию"
#: src/Authenticator/widgets/accounts/add.py:204
msgid "Invalid QR code"
msgstr "Некорректный QR код"
#: src/Authenticator/widgets/accounts/edit.py:45
msgid "Edit {} - {}"
msgstr "Редактировать {} - {}"
#: src/Authenticator/widgets/accounts/list.py:144
msgid "The One-Time Passwords expires in {} seconds"
msgstr "Одноразовый пароль истекает через {} секунд"
#: src/Authenticator/widgets/accounts/row.py:75
msgid "Couldn't generate the secret code"
msgstr "Не удалось генерировать секретный код"
#: src/Authenticator/widgets/settings.py:73
msgid "Authentication password was unset. Please restart the application"
msgstr ""
#: src/Authenticator/widgets/settings.py:81
msgid "Authentication password is now enabled. Please restart the application."
msgstr ""
#: src/Authenticator/widgets/utils.py:32
msgid "Open"
msgstr "Открыть"
#: src/Authenticator/widgets/utils.py:36 src/Authenticator/widgets/utils.py:62
msgid "Cancel"
msgstr "Отменить"
#: src/Authenticator/widgets/utils.py:46 src/Authenticator/widgets/utils.py:51
msgid "JSON files"
msgstr "JSON файлы"
#: src/Authenticator/widgets/utils.py:61
msgid "Select"
msgstr "Выбрать"
#~ msgid "Provider"
#~ msgstr "Провайдер"
#~ msgid "Account name"
#~ msgstr "Имя аккаунта"
#~ msgid "Secret token"
#~ msgstr "Секретный токен"
#~ msgid "zbar library is not found. QRCode scanner will be disabled"
#~ msgstr "zbar библиотека не найдена. Сканнер QRCode будет отключен"
#~ msgid "Copy"
#~ msgstr "Копировать"
#~ msgid "Search"
#~ msgstr "Поиск"
#~ msgid "Selection mode"
#~ msgstr "Режим выбора"
#~ msgid "Click on items to select them"
#~ msgstr "Нажмите на элемент для выбора"
#~ msgid "Old Password"
#~ msgstr "Старый Пароль"
#~ msgid "Appearance"
#~ msgstr "Внешний вид"
#~ msgid "Erase existing accounts"
#~ msgstr "Удалить существующие аккаунты"
#~ msgid "Authentication password"
#~ msgstr "Пароль аутентификации"
#~ msgid "Set up application authentication password"
#~ msgstr "Установите пароль аутентификации приложения"
#~ msgid "The application needs to be restarted first."
#~ msgstr "Приложению требуется перезапуск."
#~ msgid "The existing accounts will be erased in 5 seconds"
#~ msgstr "Существующие аккаунты будут удалены через 5 секунд"
#~ msgid "Undo"
#~ msgstr "Отменить"
#~ msgid "An account or more were removed."
#~ msgstr "Один или несколько аккаунтов были удалены."
#~ msgid "Whether the application is locked with a password or not"
#~ msgstr "Заблокировано ли приложение паролем или нет"
#~ msgid "Whether the application can be locked or not"
#~ msgstr "Может ли приложение быть заблоровано или нет"
#~ msgctxt "shortcut window"
#~ msgid "Select"
#~ msgstr "Выбрать"

558
po/sr.po
View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Authenticator\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-25 19:56+0100\n"
"POT-Creation-Date: 2019-02-11 22:35+0100\n"
"PO-Revision-Date: 2018-03-25 14:53+0000\n"
"Last-Translator: Slobodan Terzić <githzerai06@gmail.com>\n"
"Language-Team: Serbian <https://hosted.weblate.org/projects/authenticator/"
@ -20,233 +20,12 @@ msgstr ""
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 2.20-dev\n"
#: Authenticator/application.py.in:39
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:6
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:3
#: data/ui/window.ui.in:255 src/Authenticator/application.py.in:36
msgid "Authenticator"
msgstr "Аутентификатор"
#: Authenticator/application.py.in:91 Authenticator/widgets/settings.py:239
msgid "Lock the application"
msgstr ""
#: Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr ""
#: Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr ""
#: Authenticator/application.py.in:102
msgid "Restore"
msgstr ""
#: Authenticator/application.py.in:103
#, fuzzy
msgid "Backup"
msgstr "Назад"
#. Night mode action
#: Authenticator/application.py.in:111
msgid "Preferences"
msgstr ""
#: Authenticator/application.py.in:112
msgid "Donate"
msgstr ""
#: Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr ""
#: Authenticator/application.py.in:114
#, fuzzy
msgid "About Authenticator"
msgstr "Аутентификатор"
#: Authenticator/models/account.py:74
msgid "Default"
msgstr ""
#: Authenticator/widgets/accounts/add.py:50
#: Authenticator/widgets/headerbar.py:101
msgid "Add a new account"
msgstr "Додај нови налог"
#: Authenticator/widgets/accounts/add.py:54
msgid "Add"
msgstr "Додај"
#: Authenticator/widgets/accounts/add.py:62
msgid "Scan QR code"
msgstr "Скенирај КуР код"
#: Authenticator/widgets/accounts/add.py:68
#: Authenticator/widgets/accounts/edit.py:58
msgid "Close"
msgstr "Затвори"
#: Authenticator/widgets/accounts/add.py:161
msgid "Provider"
msgstr ""
#: Authenticator/widgets/accounts/add.py:171
msgid "Account name"
msgstr "Име налога"
#: Authenticator/widgets/accounts/add.py:177
#, fuzzy
msgid "Secret token"
msgstr "Тајни токен"
#: Authenticator/widgets/accounts/add.py:260
msgid "Invalid QR code"
msgstr "Неисправан КуР код"
#: Authenticator/widgets/accounts/add.py:268
msgid "zbar library is not found. QRCode scanner will be disabled"
msgstr ""
#: Authenticator/widgets/accounts/edit.py:47
msgid "Edit {} - {}"
msgstr ""
#: Authenticator/widgets/accounts/edit.py:52
#: Authenticator/widgets/settings.py:143 Authenticator/widgets/utils.py:20
msgid "Save"
msgstr ""
#: Authenticator/widgets/accounts/list.py:164
msgid "The One-Time Passwords expires in {} seconds"
msgstr ""
#. Label
#: Authenticator/widgets/accounts/list.py:286
#, fuzzy
msgid "There are no accounts yet…"
msgstr "Још увек нема налога..."
#: Authenticator/widgets/accounts/row.py:59
msgid "Copy"
msgstr "Умножи"
#: Authenticator/widgets/accounts/row.py:60
msgid "Edit"
msgstr ""
#: Authenticator/widgets/accounts/row.py:150
msgid "Couldn't generate the secret code"
msgstr "Не могу да направим тајни код"
#: Authenticator/widgets/actions_bar.py:52
msgid "Delete"
msgstr "Обриши"
#: Authenticator/widgets/headerbar.py:99
msgid "Search"
msgstr "Претражи"
#: Authenticator/widgets/headerbar.py:103 Authenticator/widgets/settings.py:212
msgid "Settings"
msgstr "Подешавања"
#: Authenticator/widgets/headerbar.py:105
msgid "Selection mode"
msgstr "Режим избора"
#: Authenticator/widgets/headerbar.py:107 Authenticator/widgets/utils.py:22
#: Authenticator/widgets/utils.py:48
msgid "Cancel"
msgstr "Откажи"
#: Authenticator/widgets/headerbar.py:183
msgid "Click on items to select them"
msgstr "Кликните на ставке да их изаберете"
#: Authenticator/widgets/settings.py:139
#, fuzzy
msgid "Authentication Password"
msgstr "Аутентификатор"
#: Authenticator/widgets/settings.py:152
msgid "Old Password"
msgstr ""
#: Authenticator/widgets/settings.py:156
msgid "Password"
msgstr ""
#: Authenticator/widgets/settings.py:159
msgid "Repeat Password"
msgstr ""
#: Authenticator/widgets/settings.py:229
msgid "Dark theme"
msgstr ""
#: Authenticator/widgets/settings.py:229
msgid "Use a dark theme, if possible"
msgstr ""
#: Authenticator/widgets/settings.py:232
msgid "Appearance"
msgstr ""
#: Authenticator/widgets/settings.py:236
msgid "Clear the database"
msgstr ""
#: Authenticator/widgets/settings.py:236
msgid "Erase existing accounts"
msgstr ""
#: Authenticator/widgets/settings.py:240
msgid "Possibility to lock the application with a password"
msgstr ""
#: Authenticator/widgets/settings.py:243
#, fuzzy
msgid "Authentication password"
msgstr "Аутентификатор"
#: Authenticator/widgets/settings.py:244
msgid "Set up application authentication password"
msgstr ""
#: Authenticator/widgets/settings.py:250
msgid "Behaviour"
msgstr ""
#: Authenticator/widgets/settings.py:259
msgid "The application needs to be restarted first."
msgstr ""
#: Authenticator/widgets/settings.py:288
msgid "The existing accounts will be erased in 5 seconds"
msgstr ""
#: Authenticator/widgets/settings.py:292 Authenticator/widgets/window.py.in:217
msgid "Undo"
msgstr "Опозови"
#: Authenticator/widgets/utils.py:18
msgid "Open"
msgstr ""
#: Authenticator/widgets/utils.py:32 Authenticator/widgets/utils.py:37
msgid "JSON files"
msgstr ""
#: Authenticator/widgets/utils.py:47
#, fuzzy
msgid "Select"
msgstr "Режим избора"
#: Authenticator/widgets/window.py.in:213
msgid "An account or more were removed."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:7
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:5
#, fuzzy
@ -278,6 +57,115 @@ msgstr ""
msgid "Huge database of (290+) websites/applications"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:34
msgid ""
"Since I have moved the application to GOME Gitlab's World group, a Flatpak "
"build for each new commit is available to download from the site's website."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:38
msgid "Backup and restore from a basic JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:39
msgid "Backup and restore from an encrypted-GPG JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:40
msgid "Add andOTP support (free and open Android 2FA application)"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:41
msgid "New Settings Widow with 3 sections: appearance, behavior and backup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:42
msgid "Fix Flatpak Build with the latest GNOME Runtime"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:43
msgid "Move the project to GOME Gitlab's World group"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:50
msgid "GNOME Shell Search provider"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:51
msgid "Codes expire simultaneously #91"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:58
msgid "Revamped main window to more closely follow the GNOME HIG"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:59
msgid "Revamped add a new account window to make it easier to use"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:60
msgid ""
"Possibility to add an account from a provider not listed in the shipped "
"database"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:61
msgid "Possibilty to edit an account"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:62
msgid "One Time Password now visible by default"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:69
msgid "Fix python-dbus by using GDbus instead"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:76
msgid "Fix the QRScanner on GNOME Shell"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:77
msgid "Add a new entry for the account's username"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:78
msgid "Updated database of supported accounts"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:85
msgid "HOTFIX: App not running in DE other than GNOME"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:92
#, fuzzy
msgid "Rename project to Authenticator"
msgstr "О Аутентификатору"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:93
msgid "Cleaner code base"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:94
msgid "Faster startup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:95
msgid "Remove unneeded features"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:96
msgid "Switch to pyzbar instead of zbarlight"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:97
msgid "Flatpak package"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:104
msgid "Bilal Elmoussaoui"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:4
#, fuzzy
msgid "Two-factor authentication"
@ -309,19 +197,91 @@ msgstr ""
msgid "Default window maximized behaviour"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:21
msgid "Whether the application is locked with a password or not"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:26
msgid "Whether the application can be locked or not"
msgstr ""
#: data/ui/about_dialog.ui.in:10
#, fuzzy
msgid "Two-factor authentication code generator."
msgstr "Стваралац кодова за двофакторну аутентификацију."
#: data/ui/about_dialog.ui.in:13
msgid "translator-credits"
msgstr "Слободан Терзић <githzerai06@gmail.com>"
#: data/ui/account_add.ui:24
msgid "Add a new account"
msgstr "Додај нови налог"
#: data/ui/account_add.ui:27 data/ui/account_edit.ui:21
msgid "Close"
msgstr "Затвори"
#: data/ui/account_add.ui:36
msgid "Add"
msgstr "Додај"
#: data/ui/account_add.ui:56
#, fuzzy
msgid "Scan QR Code"
msgstr "Скенирај КуР код"
#: data/ui/account_edit.ui:30 data/ui/settings.ui.in:454
#: src/Authenticator/widgets/utils.py:34
msgid "Save"
msgstr ""
#: data/ui/account_row.ui:23
msgid "Edit"
msgstr ""
#: data/ui/account_row.ui:37
msgid "Delete"
msgstr "Обриши"
#: data/ui/account_row.ui:92
msgid "Copy PIN to clipboard"
msgstr ""
#: data/ui/settings.ui.in:66
msgid "Behaviour"
msgstr ""
#: data/ui/settings.ui.in:100
msgid "Dark theme"
msgstr ""
#: data/ui/settings.ui.in:117
msgid "Use a dark theme, if possible"
msgstr ""
#: data/ui/settings.ui.in:179 src/Authenticator/application.py.in:91
msgid "Lock the application"
msgstr ""
#: data/ui/settings.ui.in:196
#, fuzzy
msgid "Lock the application with a password"
msgstr "Аутентификатор"
#: data/ui/settings.ui.in:279
msgid "Keep your accounts safer "
msgstr ""
#: data/ui/settings.ui.in:303
msgid "Password"
msgstr ""
#: data/ui/settings.ui.in:348
msgid "Repeat Password"
msgstr ""
#: data/ui/settings.ui.in:410
msgid "Settings"
msgstr "Подешавања"
#: data/ui/settings.ui.in:427
#, fuzzy
msgid "Authenticator Password"
msgstr "Аутентификатор"
#: data/ui/shortcuts.ui:13
msgctxt "shortcut window"
msgid "General"
@ -358,25 +318,137 @@ msgstr "Додај"
#: data/ui/shortcuts.ui:51
#, fuzzy
msgctxt "shortcut window"
msgid "Select"
msgstr "Режим избора"
#: data/ui/shortcuts.ui:58
#, fuzzy
msgctxt "shortcut window"
msgid "Search"
msgstr "Претражи"
#: authenticator.py.in:54
#: data/ui/window.ui.in:60
#, fuzzy
msgid "There are no accounts yet…"
msgstr "Још увек нема налога..."
#: data/ui/window.ui.in:187
#, fuzzy
msgid "Authenticator is locked"
msgstr "Аутентификатор"
#: data/ui/window.ui.in:222
msgid "Unlock"
msgstr ""
#: src/authenticator.py.in:49
msgid "Start in debug mode"
msgstr "Покрени у режиму за исправљање грешака"
#: authenticator.py.in:56
#: src/authenticator.py.in:51
msgid "Authenticator version number"
msgstr "Верзија Аутентификатора"
#~ msgid "translator-credits"
#~ msgstr "Слободан Терзић <githzerai06@gmail.com>"
#: src/Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr ""
#: src/Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr ""
#: src/Authenticator/application.py.in:102
msgid "Restore"
msgstr ""
#: src/Authenticator/application.py.in:103
#, fuzzy
msgid "Backup"
msgstr "Назад"
#. Night mode action
#: src/Authenticator/application.py.in:111
msgid "Preferences"
msgstr ""
#: src/Authenticator/application.py.in:112
msgid "Donate"
msgstr ""
#: src/Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr ""
#: src/Authenticator/application.py.in:114
#, fuzzy
msgid "About Authenticator"
msgstr "Аутентификатор"
#: src/Authenticator/models/account.py:70
msgid "Default"
msgstr ""
#: src/Authenticator/widgets/accounts/add.py:204
msgid "Invalid QR code"
msgstr "Неисправан КуР код"
#: src/Authenticator/widgets/accounts/edit.py:45
msgid "Edit {} - {}"
msgstr ""
#: src/Authenticator/widgets/accounts/list.py:144
msgid "The One-Time Passwords expires in {} seconds"
msgstr ""
#: src/Authenticator/widgets/accounts/row.py:75
msgid "Couldn't generate the secret code"
msgstr "Не могу да направим тајни код"
#: src/Authenticator/widgets/settings.py:73
msgid "Authentication password was unset. Please restart the application"
msgstr ""
#: src/Authenticator/widgets/settings.py:81
msgid "Authentication password is now enabled. Please restart the application."
msgstr ""
#: src/Authenticator/widgets/utils.py:32
msgid "Open"
msgstr ""
#: src/Authenticator/widgets/utils.py:36 src/Authenticator/widgets/utils.py:62
msgid "Cancel"
msgstr "Откажи"
#: src/Authenticator/widgets/utils.py:46 src/Authenticator/widgets/utils.py:51
msgid "JSON files"
msgstr ""
#: src/Authenticator/widgets/utils.py:61
#, fuzzy
msgid "Select"
msgstr "Режим избора"
#~ msgid "Account name"
#~ msgstr "Име налога"
#, fuzzy
#~ msgid "Secret token"
#~ msgstr "Тајни токен"
#~ msgid "Copy"
#~ msgstr "Умножи"
#~ msgid "Search"
#~ msgstr "Претражи"
#~ msgid "Selection mode"
#~ msgstr "Режим избора"
#~ msgid "Click on items to select them"
#~ msgstr "Кликните на ставке да их изаберете"
#~ msgid "Undo"
#~ msgstr "Опозови"
#, fuzzy
#~ msgctxt "shortcut window"
#~ msgid "Select"
#~ msgstr "Режим избора"
#, fuzzy
#~ msgid "Authenticator@NAME_SUFFIX@"
@ -388,10 +460,6 @@ msgstr "Верзија Аутентификатора"
#~ msgid "com.github.bilelmoussaoui.Authenticator"
#~ msgstr "com.github.bilelmoussaoui.Authenticator"
#, fuzzy
#~ msgid "Rename project to Authenticator"
#~ msgstr "О Аутентификатору"
#~ msgid "Next"
#~ msgstr "Следеће"

View file

@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Serbian (Authenticator)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-25 19:56+0100\n"
"POT-Creation-Date: 2019-02-11 22:35+0100\n"
"PO-Revision-Date: 2018-03-24 20:59+0000\n"
"Last-Translator: Slobodan Terzić <githzerai06@gmail.com>\n"
"Language-Team: Serbian (latin) <https://hosted.weblate.org/projects/"
@ -15,233 +15,12 @@ msgstr ""
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 2.20-dev\n"
#: Authenticator/application.py.in:39
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:6
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:3
#: data/ui/window.ui.in:255 src/Authenticator/application.py.in:36
msgid "Authenticator"
msgstr "Autentifikator"
#: Authenticator/application.py.in:91 Authenticator/widgets/settings.py:239
msgid "Lock the application"
msgstr ""
#: Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr ""
#: Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr ""
#: Authenticator/application.py.in:102
msgid "Restore"
msgstr ""
#: Authenticator/application.py.in:103
#, fuzzy
msgid "Backup"
msgstr "Nazad"
#. Night mode action
#: Authenticator/application.py.in:111
msgid "Preferences"
msgstr ""
#: Authenticator/application.py.in:112
msgid "Donate"
msgstr ""
#: Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr ""
#: Authenticator/application.py.in:114
#, fuzzy
msgid "About Authenticator"
msgstr "Autentifikator"
#: Authenticator/models/account.py:74
msgid "Default"
msgstr ""
#: Authenticator/widgets/accounts/add.py:50
#: Authenticator/widgets/headerbar.py:101
msgid "Add a new account"
msgstr "Dodaj novi nalog"
#: Authenticator/widgets/accounts/add.py:54
msgid "Add"
msgstr "Dodaj"
#: Authenticator/widgets/accounts/add.py:62
msgid "Scan QR code"
msgstr "Skeniraj QR kod"
#: Authenticator/widgets/accounts/add.py:68
#: Authenticator/widgets/accounts/edit.py:58
msgid "Close"
msgstr "Zatvori"
#: Authenticator/widgets/accounts/add.py:161
msgid "Provider"
msgstr ""
#: Authenticator/widgets/accounts/add.py:171
msgid "Account name"
msgstr "Ime naloga"
#: Authenticator/widgets/accounts/add.py:177
#, fuzzy
msgid "Secret token"
msgstr "Tajni token"
#: Authenticator/widgets/accounts/add.py:260
msgid "Invalid QR code"
msgstr "Neispravan QR kod"
#: Authenticator/widgets/accounts/add.py:268
msgid "zbar library is not found. QRCode scanner will be disabled"
msgstr ""
#: Authenticator/widgets/accounts/edit.py:47
msgid "Edit {} - {}"
msgstr ""
#: Authenticator/widgets/accounts/edit.py:52
#: Authenticator/widgets/settings.py:143 Authenticator/widgets/utils.py:20
msgid "Save"
msgstr ""
#: Authenticator/widgets/accounts/list.py:164
msgid "The One-Time Passwords expires in {} seconds"
msgstr ""
#. Label
#: Authenticator/widgets/accounts/list.py:286
#, fuzzy
msgid "There are no accounts yet…"
msgstr "Još uvek nema naloga..."
#: Authenticator/widgets/accounts/row.py:59
msgid "Copy"
msgstr "Umnoži"
#: Authenticator/widgets/accounts/row.py:60
msgid "Edit"
msgstr ""
#: Authenticator/widgets/accounts/row.py:150
msgid "Couldn't generate the secret code"
msgstr "Ne mogu da napravim tajni kod"
#: Authenticator/widgets/actions_bar.py:52
msgid "Delete"
msgstr "Obriši"
#: Authenticator/widgets/headerbar.py:99
msgid "Search"
msgstr "Pretraži"
#: Authenticator/widgets/headerbar.py:103 Authenticator/widgets/settings.py:212
msgid "Settings"
msgstr "Podešavanja"
#: Authenticator/widgets/headerbar.py:105
msgid "Selection mode"
msgstr "Režim izbora"
#: Authenticator/widgets/headerbar.py:107 Authenticator/widgets/utils.py:22
#: Authenticator/widgets/utils.py:48
msgid "Cancel"
msgstr "Otkaži"
#: Authenticator/widgets/headerbar.py:183
msgid "Click on items to select them"
msgstr "Kliknite na stavke da ih izaberete"
#: Authenticator/widgets/settings.py:139
#, fuzzy
msgid "Authentication Password"
msgstr "Autentifikator"
#: Authenticator/widgets/settings.py:152
msgid "Old Password"
msgstr ""
#: Authenticator/widgets/settings.py:156
msgid "Password"
msgstr ""
#: Authenticator/widgets/settings.py:159
msgid "Repeat Password"
msgstr ""
#: Authenticator/widgets/settings.py:229
msgid "Dark theme"
msgstr ""
#: Authenticator/widgets/settings.py:229
msgid "Use a dark theme, if possible"
msgstr ""
#: Authenticator/widgets/settings.py:232
msgid "Appearance"
msgstr ""
#: Authenticator/widgets/settings.py:236
msgid "Clear the database"
msgstr ""
#: Authenticator/widgets/settings.py:236
msgid "Erase existing accounts"
msgstr ""
#: Authenticator/widgets/settings.py:240
msgid "Possibility to lock the application with a password"
msgstr ""
#: Authenticator/widgets/settings.py:243
#, fuzzy
msgid "Authentication password"
msgstr "Autentifikator"
#: Authenticator/widgets/settings.py:244
msgid "Set up application authentication password"
msgstr ""
#: Authenticator/widgets/settings.py:250
msgid "Behaviour"
msgstr ""
#: Authenticator/widgets/settings.py:259
msgid "The application needs to be restarted first."
msgstr ""
#: Authenticator/widgets/settings.py:288
msgid "The existing accounts will be erased in 5 seconds"
msgstr ""
#: Authenticator/widgets/settings.py:292 Authenticator/widgets/window.py.in:217
msgid "Undo"
msgstr "Opozovi"
#: Authenticator/widgets/utils.py:18
msgid "Open"
msgstr ""
#: Authenticator/widgets/utils.py:32 Authenticator/widgets/utils.py:37
msgid "JSON files"
msgstr ""
#: Authenticator/widgets/utils.py:47
#, fuzzy
msgid "Select"
msgstr "Režim izbora"
#: Authenticator/widgets/window.py.in:213
msgid "An account or more were removed."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:7
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:5
#, fuzzy
@ -273,6 +52,115 @@ msgstr ""
msgid "Huge database of (290+) websites/applications"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:34
msgid ""
"Since I have moved the application to GOME Gitlab's World group, a Flatpak "
"build for each new commit is available to download from the site's website."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:38
msgid "Backup and restore from a basic JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:39
msgid "Backup and restore from an encrypted-GPG JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:40
msgid "Add andOTP support (free and open Android 2FA application)"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:41
msgid "New Settings Widow with 3 sections: appearance, behavior and backup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:42
msgid "Fix Flatpak Build with the latest GNOME Runtime"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:43
msgid "Move the project to GOME Gitlab's World group"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:50
msgid "GNOME Shell Search provider"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:51
msgid "Codes expire simultaneously #91"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:58
msgid "Revamped main window to more closely follow the GNOME HIG"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:59
msgid "Revamped add a new account window to make it easier to use"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:60
msgid ""
"Possibility to add an account from a provider not listed in the shipped "
"database"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:61
msgid "Possibilty to edit an account"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:62
msgid "One Time Password now visible by default"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:69
msgid "Fix python-dbus by using GDbus instead"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:76
msgid "Fix the QRScanner on GNOME Shell"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:77
msgid "Add a new entry for the account's username"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:78
msgid "Updated database of supported accounts"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:85
msgid "HOTFIX: App not running in DE other than GNOME"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:92
#, fuzzy
msgid "Rename project to Authenticator"
msgstr "O Autentifikatoru"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:93
msgid "Cleaner code base"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:94
msgid "Faster startup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:95
msgid "Remove unneeded features"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:96
msgid "Switch to pyzbar instead of zbarlight"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:97
msgid "Flatpak package"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:104
msgid "Bilal Elmoussaoui"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:4
#, fuzzy
msgid "Two-factor authentication"
@ -304,19 +192,91 @@ msgstr ""
msgid "Default window maximized behaviour"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:21
msgid "Whether the application is locked with a password or not"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:26
msgid "Whether the application can be locked or not"
msgstr ""
#: data/ui/about_dialog.ui.in:10
#, fuzzy
msgid "Two-factor authentication code generator."
msgstr "Stvaralac kodova za dvofaktornu autentifikaciju."
#: data/ui/about_dialog.ui.in:13
msgid "translator-credits"
msgstr "Slobodan Terzić <githzerai06@gmail.com>"
#: data/ui/account_add.ui:24
msgid "Add a new account"
msgstr "Dodaj novi nalog"
#: data/ui/account_add.ui:27 data/ui/account_edit.ui:21
msgid "Close"
msgstr "Zatvori"
#: data/ui/account_add.ui:36
msgid "Add"
msgstr "Dodaj"
#: data/ui/account_add.ui:56
#, fuzzy
msgid "Scan QR Code"
msgstr "Skeniraj QR kod"
#: data/ui/account_edit.ui:30 data/ui/settings.ui.in:454
#: src/Authenticator/widgets/utils.py:34
msgid "Save"
msgstr ""
#: data/ui/account_row.ui:23
msgid "Edit"
msgstr ""
#: data/ui/account_row.ui:37
msgid "Delete"
msgstr "Obriši"
#: data/ui/account_row.ui:92
msgid "Copy PIN to clipboard"
msgstr ""
#: data/ui/settings.ui.in:66
msgid "Behaviour"
msgstr ""
#: data/ui/settings.ui.in:100
msgid "Dark theme"
msgstr ""
#: data/ui/settings.ui.in:117
msgid "Use a dark theme, if possible"
msgstr ""
#: data/ui/settings.ui.in:179 src/Authenticator/application.py.in:91
msgid "Lock the application"
msgstr ""
#: data/ui/settings.ui.in:196
#, fuzzy
msgid "Lock the application with a password"
msgstr "Autentifikator"
#: data/ui/settings.ui.in:279
msgid "Keep your accounts safer "
msgstr ""
#: data/ui/settings.ui.in:303
msgid "Password"
msgstr ""
#: data/ui/settings.ui.in:348
msgid "Repeat Password"
msgstr ""
#: data/ui/settings.ui.in:410
msgid "Settings"
msgstr "Podešavanja"
#: data/ui/settings.ui.in:427
#, fuzzy
msgid "Authenticator Password"
msgstr "Autentifikator"
#: data/ui/shortcuts.ui:13
msgctxt "shortcut window"
msgid "General"
@ -353,25 +313,137 @@ msgstr "Dodaj"
#: data/ui/shortcuts.ui:51
#, fuzzy
msgctxt "shortcut window"
msgid "Select"
msgstr "Režim izbora"
#: data/ui/shortcuts.ui:58
#, fuzzy
msgctxt "shortcut window"
msgid "Search"
msgstr "Pretraži"
#: authenticator.py.in:54
#: data/ui/window.ui.in:60
#, fuzzy
msgid "There are no accounts yet…"
msgstr "Još uvek nema naloga..."
#: data/ui/window.ui.in:187
#, fuzzy
msgid "Authenticator is locked"
msgstr "Autentifikator"
#: data/ui/window.ui.in:222
msgid "Unlock"
msgstr ""
#: src/authenticator.py.in:49
msgid "Start in debug mode"
msgstr "Pokreni u režimu za ispravljanje grešaka"
#: authenticator.py.in:56
#: src/authenticator.py.in:51
msgid "Authenticator version number"
msgstr "Verzija Autentifikatora"
#~ msgid "translator-credits"
#~ msgstr "Slobodan Terzić <githzerai06@gmail.com>"
#: src/Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr ""
#: src/Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr ""
#: src/Authenticator/application.py.in:102
msgid "Restore"
msgstr ""
#: src/Authenticator/application.py.in:103
#, fuzzy
msgid "Backup"
msgstr "Nazad"
#. Night mode action
#: src/Authenticator/application.py.in:111
msgid "Preferences"
msgstr ""
#: src/Authenticator/application.py.in:112
msgid "Donate"
msgstr ""
#: src/Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr ""
#: src/Authenticator/application.py.in:114
#, fuzzy
msgid "About Authenticator"
msgstr "Autentifikator"
#: src/Authenticator/models/account.py:70
msgid "Default"
msgstr ""
#: src/Authenticator/widgets/accounts/add.py:204
msgid "Invalid QR code"
msgstr "Neispravan QR kod"
#: src/Authenticator/widgets/accounts/edit.py:45
msgid "Edit {} - {}"
msgstr ""
#: src/Authenticator/widgets/accounts/list.py:144
msgid "The One-Time Passwords expires in {} seconds"
msgstr ""
#: src/Authenticator/widgets/accounts/row.py:75
msgid "Couldn't generate the secret code"
msgstr "Ne mogu da napravim tajni kod"
#: src/Authenticator/widgets/settings.py:73
msgid "Authentication password was unset. Please restart the application"
msgstr ""
#: src/Authenticator/widgets/settings.py:81
msgid "Authentication password is now enabled. Please restart the application."
msgstr ""
#: src/Authenticator/widgets/utils.py:32
msgid "Open"
msgstr ""
#: src/Authenticator/widgets/utils.py:36 src/Authenticator/widgets/utils.py:62
msgid "Cancel"
msgstr "Otkaži"
#: src/Authenticator/widgets/utils.py:46 src/Authenticator/widgets/utils.py:51
msgid "JSON files"
msgstr ""
#: src/Authenticator/widgets/utils.py:61
#, fuzzy
msgid "Select"
msgstr "Režim izbora"
#~ msgid "Account name"
#~ msgstr "Ime naloga"
#, fuzzy
#~ msgid "Secret token"
#~ msgstr "Tajni token"
#~ msgid "Copy"
#~ msgstr "Umnoži"
#~ msgid "Search"
#~ msgstr "Pretraži"
#~ msgid "Selection mode"
#~ msgstr "Režim izbora"
#~ msgid "Click on items to select them"
#~ msgstr "Kliknite na stavke da ih izaberete"
#~ msgid "Undo"
#~ msgstr "Opozovi"
#, fuzzy
#~ msgctxt "shortcut window"
#~ msgid "Select"
#~ msgstr "Režim izbora"
#, fuzzy
#~ msgid "Authenticator@NAME_SUFFIX@"
@ -383,10 +455,6 @@ msgstr "Verzija Autentifikatora"
#~ msgid "com.github.bilelmoussaoui.Authenticator"
#~ msgstr "com.github.bilelmoussaoui.Authenticator"
#, fuzzy
#~ msgid "Rename project to Authenticator"
#~ msgstr "O Autentifikatoru"
#~ msgid "Next"
#~ msgstr "Sledeće"

618
po/sv.po
View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-25 19:56+0100\n"
"POT-Creation-Date: 2019-02-11 22:35+0100\n"
"PO-Revision-Date: 2019-01-01 16:01+0000\n"
"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
"Language-Team: Swedish <https://hosted.weblate.org/projects/authenticator/"
@ -19,226 +19,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.4-dev\n"
#: Authenticator/application.py.in:39
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:6
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:3
#: data/ui/window.ui.in:255 src/Authenticator/application.py.in:36
msgid "Authenticator"
msgstr "Authenticator"
#: Authenticator/application.py.in:91 Authenticator/widgets/settings.py:239
msgid "Lock the application"
msgstr "Lås programmet"
#: Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr "från en oformaterad JSON-fil"
#: Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr "i en oformaterad JSON-fil"
#: Authenticator/application.py.in:102
msgid "Restore"
msgstr "Återställ"
#: Authenticator/application.py.in:103
msgid "Backup"
msgstr "Säkerhetskopiera"
#. Night mode action
#: Authenticator/application.py.in:111
msgid "Preferences"
msgstr "Inställningar"
#: Authenticator/application.py.in:112
msgid "Donate"
msgstr "Donera"
#: Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr "Tangentbordsgenvägar"
#: Authenticator/application.py.in:114
msgid "About Authenticator"
msgstr "Om Authenticator"
#: Authenticator/models/account.py:74
msgid "Default"
msgstr "Standard"
#: Authenticator/widgets/accounts/add.py:50
#: Authenticator/widgets/headerbar.py:101
msgid "Add a new account"
msgstr "Lägg till ett nytt konto"
#: Authenticator/widgets/accounts/add.py:54
msgid "Add"
msgstr "Lägg till"
#: Authenticator/widgets/accounts/add.py:62
msgid "Scan QR code"
msgstr "Läs av QR-kod"
#: Authenticator/widgets/accounts/add.py:68
#: Authenticator/widgets/accounts/edit.py:58
msgid "Close"
msgstr "Stäng"
#: Authenticator/widgets/accounts/add.py:161
msgid "Provider"
msgstr "Leverantör"
#: Authenticator/widgets/accounts/add.py:171
msgid "Account name"
msgstr "Kontonamn"
#: Authenticator/widgets/accounts/add.py:177
msgid "Secret token"
msgstr "Hemlig token"
#: Authenticator/widgets/accounts/add.py:260
msgid "Invalid QR code"
msgstr "Ogiltig QR-kod"
#: Authenticator/widgets/accounts/add.py:268
msgid "zbar library is not found. QRCode scanner will be disabled"
msgstr "zbar-bibliotek hittades inte. QR-kodskanner inaktiveras."
#: Authenticator/widgets/accounts/edit.py:47
msgid "Edit {} - {}"
msgstr "Redigera {} - {}"
#: Authenticator/widgets/accounts/edit.py:52
#: Authenticator/widgets/settings.py:143 Authenticator/widgets/utils.py:20
msgid "Save"
msgstr "Spara"
#: Authenticator/widgets/accounts/list.py:164
msgid "The One-Time Passwords expires in {} seconds"
msgstr "Engångslösenordet upphör att gälla om {} sekunder"
#. Label
#: Authenticator/widgets/accounts/list.py:286
msgid "There are no accounts yet…"
msgstr "Det finns inga konton ännu…"
#: Authenticator/widgets/accounts/row.py:59
msgid "Copy"
msgstr "Kopiera"
#: Authenticator/widgets/accounts/row.py:60
msgid "Edit"
msgstr "Redigera"
#: Authenticator/widgets/accounts/row.py:150
msgid "Couldn't generate the secret code"
msgstr "Kunde inte generera den hemliga koden"
#: Authenticator/widgets/actions_bar.py:52
msgid "Delete"
msgstr "Ta bort"
#: Authenticator/widgets/headerbar.py:99
msgid "Search"
msgstr "Sök"
#: Authenticator/widgets/headerbar.py:103 Authenticator/widgets/settings.py:212
msgid "Settings"
msgstr "Inställningar"
#: Authenticator/widgets/headerbar.py:105
msgid "Selection mode"
msgstr "Urvalsläge"
#: Authenticator/widgets/headerbar.py:107 Authenticator/widgets/utils.py:22
#: Authenticator/widgets/utils.py:48
msgid "Cancel"
msgstr "Avbryt"
#: Authenticator/widgets/headerbar.py:183
msgid "Click on items to select them"
msgstr "Klicka på objekt för att välja dem"
#: Authenticator/widgets/settings.py:139
msgid "Authentication Password"
msgstr "Autentiseringslösenord"
#: Authenticator/widgets/settings.py:152
msgid "Old Password"
msgstr "Gammalt lösenord"
#: Authenticator/widgets/settings.py:156
msgid "Password"
msgstr "Lösenord"
#: Authenticator/widgets/settings.py:159
msgid "Repeat Password"
msgstr "Upprepa lösenord"
#: Authenticator/widgets/settings.py:229
msgid "Dark theme"
msgstr "Mörkt tema"
#: Authenticator/widgets/settings.py:229
msgid "Use a dark theme, if possible"
msgstr "Använd om möjligt ett mörkt tema"
#: Authenticator/widgets/settings.py:232
msgid "Appearance"
msgstr "Utseende"
#: Authenticator/widgets/settings.py:236
msgid "Clear the database"
msgstr "Rensa databasen"
#: Authenticator/widgets/settings.py:236
msgid "Erase existing accounts"
msgstr "Radera befintliga konton"
#: Authenticator/widgets/settings.py:240
msgid "Possibility to lock the application with a password"
msgstr "Möjlighet att låsa programmet med ett lösenord"
#: Authenticator/widgets/settings.py:243
msgid "Authentication password"
msgstr "Autentiseringslösenord"
#: Authenticator/widgets/settings.py:244
msgid "Set up application authentication password"
msgstr "Konfigurera autentiseringslösenord"
#: Authenticator/widgets/settings.py:250
msgid "Behaviour"
msgstr "Beteende"
#: Authenticator/widgets/settings.py:259
msgid "The application needs to be restarted first."
msgstr "Programmet måste startas om först."
#: Authenticator/widgets/settings.py:288
msgid "The existing accounts will be erased in 5 seconds"
msgstr "De befintliga kontona kommer att raderas om 5 sekunder"
#: Authenticator/widgets/settings.py:292 Authenticator/widgets/window.py.in:217
msgid "Undo"
msgstr "Ångra"
#: Authenticator/widgets/utils.py:18
msgid "Open"
msgstr "Öppna"
#: Authenticator/widgets/utils.py:32 Authenticator/widgets/utils.py:37
msgid "JSON files"
msgstr "JSON-filer"
#: Authenticator/widgets/utils.py:47
msgid "Select"
msgstr "Välj"
#: Authenticator/widgets/window.py.in:213
msgid "An account or more were removed."
msgstr "Ett konto eller fler, togs bort."
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:7
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:5
msgid "Two-factor authentication code generator"
@ -268,6 +54,115 @@ msgstr "Vackert användargränssnitt"
msgid "Huge database of (290+) websites/applications"
msgstr "Enorm databas med (290+) webbplatser/program"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:34
msgid ""
"Since I have moved the application to GOME Gitlab's World group, a Flatpak "
"build for each new commit is available to download from the site's website."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:38
msgid "Backup and restore from a basic JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:39
#, fuzzy
msgid "Backup and restore from an encrypted-GPG JSON file"
msgstr "från en OpenPGP-krypterad JSON-fil"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:40
msgid "Add andOTP support (free and open Android 2FA application)"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:41
msgid "New Settings Widow with 3 sections: appearance, behavior and backup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:42
msgid "Fix Flatpak Build with the latest GNOME Runtime"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:43
msgid "Move the project to GOME Gitlab's World group"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:50
msgid "GNOME Shell Search provider"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:51
msgid "Codes expire simultaneously #91"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:58
msgid "Revamped main window to more closely follow the GNOME HIG"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:59
msgid "Revamped add a new account window to make it easier to use"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:60
msgid ""
"Possibility to add an account from a provider not listed in the shipped "
"database"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:61
msgid "Possibilty to edit an account"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:62
msgid "One Time Password now visible by default"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:69
msgid "Fix python-dbus by using GDbus instead"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:76
msgid "Fix the QRScanner on GNOME Shell"
msgstr "Fixa QR-läsaren i GNOME Shell"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:77
msgid "Add a new entry for the account's username"
msgstr "Lägg till en ny post för kontots användarnamn"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:78
msgid "Updated database of supported accounts"
msgstr "Uppdaterad databas över konton som stöds"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:85
msgid "HOTFIX: App not running in DE other than GNOME"
msgstr "SNABBFIX: Programmet gick inte köra annat än i GNOME"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:92
msgid "Rename project to Authenticator"
msgstr "Byt namn på projektet till Authenticator"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:93
msgid "Cleaner code base"
msgstr "Renare kodbas"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:94
msgid "Faster startup"
msgstr "Snabbare uppstart"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:95
msgid "Remove unneeded features"
msgstr "Ta bort onödiga funktioner"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:96
msgid "Switch to pyzbar instead of zbarlight"
msgstr "Växla till pyzbar istället för zbarlight"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:97
msgid "Flatpak package"
msgstr "Flatpak-paket"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:104
msgid "Bilal Elmoussaoui"
msgstr "Bilal Elmoussaoui"
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:4
msgid "Two-factor authentication"
msgstr "Tvåfaktorsautentisering"
@ -297,18 +192,90 @@ msgstr "Aktivera/inaktivera nattläge inifrån programmet"
msgid "Default window maximized behaviour"
msgstr "Standardfönstrets maximeringsbeteende"
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:21
msgid "Whether the application is locked with a password or not"
msgstr "Om programmet är låst med lösenord eller inte"
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:26
msgid "Whether the application can be locked or not"
msgstr "Om programmet kan låsas eller inte"
#: data/ui/about_dialog.ui.in:10
msgid "Two-factor authentication code generator."
msgstr "Generator för tvåfaktorsautentiseringskoder."
#: data/ui/about_dialog.ui.in:13
msgid "translator-credits"
msgstr "Anders Jonsson <anders.jonsson@norsjovallen.se>"
#: data/ui/account_add.ui:24
msgid "Add a new account"
msgstr "Lägg till ett nytt konto"
#: data/ui/account_add.ui:27 data/ui/account_edit.ui:21
msgid "Close"
msgstr "Stäng"
#: data/ui/account_add.ui:36
msgid "Add"
msgstr "Lägg till"
#: data/ui/account_add.ui:56
#, fuzzy
msgid "Scan QR Code"
msgstr "Läs av QR-kod"
#: data/ui/account_edit.ui:30 data/ui/settings.ui.in:454
#: src/Authenticator/widgets/utils.py:34
msgid "Save"
msgstr "Spara"
#: data/ui/account_row.ui:23
msgid "Edit"
msgstr "Redigera"
#: data/ui/account_row.ui:37
msgid "Delete"
msgstr "Ta bort"
#: data/ui/account_row.ui:92
msgid "Copy PIN to clipboard"
msgstr ""
#: data/ui/settings.ui.in:66
msgid "Behaviour"
msgstr "Beteende"
#: data/ui/settings.ui.in:100
msgid "Dark theme"
msgstr "Mörkt tema"
#: data/ui/settings.ui.in:117
msgid "Use a dark theme, if possible"
msgstr "Använd om möjligt ett mörkt tema"
#: data/ui/settings.ui.in:179 src/Authenticator/application.py.in:91
msgid "Lock the application"
msgstr "Lås programmet"
#: data/ui/settings.ui.in:196
#, fuzzy
msgid "Lock the application with a password"
msgstr "Möjlighet att låsa programmet med ett lösenord"
#: data/ui/settings.ui.in:279
msgid "Keep your accounts safer "
msgstr ""
#: data/ui/settings.ui.in:303
msgid "Password"
msgstr "Lösenord"
#: data/ui/settings.ui.in:348
msgid "Repeat Password"
msgstr "Upprepa lösenord"
#: data/ui/settings.ui.in:410
msgid "Settings"
msgstr "Inställningar"
#: data/ui/settings.ui.in:427
#, fuzzy
msgid "Authenticator Password"
msgstr "Autentiseringslösenord"
#: data/ui/shortcuts.ui:13
msgctxt "shortcut window"
msgid "General"
@ -341,32 +308,175 @@ msgstr "Lägg till"
#: data/ui/shortcuts.ui:51
msgctxt "shortcut window"
msgid "Select"
msgstr "Välj"
#: data/ui/shortcuts.ui:58
msgctxt "shortcut window"
msgid "Search"
msgstr "Sök"
#: authenticator.py.in:54
#: data/ui/window.ui.in:60
msgid "There are no accounts yet…"
msgstr "Det finns inga konton ännu…"
#: data/ui/window.ui.in:187
#, fuzzy
msgid "Authenticator is locked"
msgstr "Authenticator"
#: data/ui/window.ui.in:222
msgid "Unlock"
msgstr "Lås upp"
#: src/authenticator.py.in:49
msgid "Start in debug mode"
msgstr "Starta i felsökningsläge"
#: authenticator.py.in:56
#: src/authenticator.py.in:51
msgid "Authenticator version number"
msgstr "Versionsnummer för Authenticator"
#~ msgid "translator-credits"
#~ msgstr "Anders Jonsson <anders.jonsson@norsjovallen.se>"
#: src/Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr "från en oformaterad JSON-fil"
#: src/Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr "i en oformaterad JSON-fil"
#: src/Authenticator/application.py.in:102
msgid "Restore"
msgstr "Återställ"
#: src/Authenticator/application.py.in:103
msgid "Backup"
msgstr "Säkerhetskopiera"
#. Night mode action
#: src/Authenticator/application.py.in:111
msgid "Preferences"
msgstr "Inställningar"
#: src/Authenticator/application.py.in:112
msgid "Donate"
msgstr "Donera"
#: src/Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr "Tangentbordsgenvägar"
#: src/Authenticator/application.py.in:114
msgid "About Authenticator"
msgstr "Om Authenticator"
#: src/Authenticator/models/account.py:70
msgid "Default"
msgstr "Standard"
#: src/Authenticator/widgets/accounts/add.py:204
msgid "Invalid QR code"
msgstr "Ogiltig QR-kod"
#: src/Authenticator/widgets/accounts/edit.py:45
msgid "Edit {} - {}"
msgstr "Redigera {} - {}"
#: src/Authenticator/widgets/accounts/list.py:144
msgid "The One-Time Passwords expires in {} seconds"
msgstr "Engångslösenordet upphör att gälla om {} sekunder"
#: src/Authenticator/widgets/accounts/row.py:75
msgid "Couldn't generate the secret code"
msgstr "Kunde inte generera den hemliga koden"
#: src/Authenticator/widgets/settings.py:73
msgid "Authentication password was unset. Please restart the application"
msgstr ""
#: src/Authenticator/widgets/settings.py:81
msgid "Authentication password is now enabled. Please restart the application."
msgstr ""
#: src/Authenticator/widgets/utils.py:32
msgid "Open"
msgstr "Öppna"
#: src/Authenticator/widgets/utils.py:36 src/Authenticator/widgets/utils.py:62
msgid "Cancel"
msgstr "Avbryt"
#: src/Authenticator/widgets/utils.py:46 src/Authenticator/widgets/utils.py:51
msgid "JSON files"
msgstr "JSON-filer"
#: src/Authenticator/widgets/utils.py:61
msgid "Select"
msgstr "Välj"
#~ msgid "Provider"
#~ msgstr "Leverantör"
#~ msgid "Account name"
#~ msgstr "Kontonamn"
#~ msgid "Secret token"
#~ msgstr "Hemlig token"
#~ msgid "zbar library is not found. QRCode scanner will be disabled"
#~ msgstr "zbar-bibliotek hittades inte. QR-kodskanner inaktiveras."
#~ msgid "Copy"
#~ msgstr "Kopiera"
#~ msgid "Search"
#~ msgstr "Sök"
#~ msgid "Selection mode"
#~ msgstr "Urvalsläge"
#~ msgid "Click on items to select them"
#~ msgstr "Klicka på objekt för att välja dem"
#~ msgid "Old Password"
#~ msgstr "Gammalt lösenord"
#~ msgid "Appearance"
#~ msgstr "Utseende"
#~ msgid "Clear the database"
#~ msgstr "Rensa databasen"
#~ msgid "Erase existing accounts"
#~ msgstr "Radera befintliga konton"
#~ msgid "Authentication password"
#~ msgstr "Autentiseringslösenord"
#~ msgid "Set up application authentication password"
#~ msgstr "Konfigurera autentiseringslösenord"
#~ msgid "The application needs to be restarted first."
#~ msgstr "Programmet måste startas om först."
#~ msgid "The existing accounts will be erased in 5 seconds"
#~ msgstr "De befintliga kontona kommer att raderas om 5 sekunder"
#~ msgid "Undo"
#~ msgstr "Ångra"
#~ msgid "An account or more were removed."
#~ msgstr "Ett konto eller fler, togs bort."
#~ msgid "Whether the application is locked with a password or not"
#~ msgstr "Om programmet är låst med lösenord eller inte"
#~ msgid "Whether the application can be locked or not"
#~ msgstr "Om programmet kan låsas eller inte"
#~ msgctxt "shortcut window"
#~ msgid "Select"
#~ msgstr "Välj"
#, fuzzy
#~ msgid "Authenticator@NAME_SUFFIX@"
#~ msgstr "Authenticator"
#~ msgid "from an OpenPGP-encrypted JSON file"
#~ msgstr "från en OpenPGP-krypterad JSON-fil"
#~ msgid "in an OpenPGP-encrypted JSON file"
#~ msgstr "i en OpenPGP-krypterad JSON-fil"
@ -403,43 +513,10 @@ msgstr "Versionsnummer för Authenticator"
#~ msgid "com.github.bilelmoussaoui.Authenticator"
#~ msgstr "com.github.bilelmoussaoui.Authenticator"
#~ msgid "Bilal Elmoussaoui"
#~ msgstr "Bilal Elmoussaoui"
#, fuzzy
#~ msgid "Backup Password"
#~ msgstr "Ändra lösenord"
#~ msgid "Fix the QRScanner on GNOME Shell"
#~ msgstr "Fixa QR-läsaren i GNOME Shell"
#~ msgid "Add a new entry for the account's username"
#~ msgstr "Lägg till en ny post för kontots användarnamn"
#~ msgid "Updated database of supported accounts"
#~ msgstr "Uppdaterad databas över konton som stöds"
#~ msgid "HOTFIX: App not running in DE other than GNOME"
#~ msgstr "SNABBFIX: Programmet gick inte köra annat än i GNOME"
#~ msgid "Rename project to Authenticator"
#~ msgstr "Byt namn på projektet till Authenticator"
#~ msgid "Cleaner code base"
#~ msgstr "Renare kodbas"
#~ msgid "Faster startup"
#~ msgstr "Snabbare uppstart"
#~ msgid "Remove unneeded features"
#~ msgstr "Ta bort onödiga funktioner"
#~ msgid "Switch to pyzbar instead of zbarlight"
#~ msgstr "Växla till pyzbar istället för zbarlight"
#~ msgid "Flatpak package"
#~ msgstr "Flatpak-paket"
#~ msgid "Next"
#~ msgstr "Nästa"
@ -496,9 +573,6 @@ msgstr "Versionsnummer för Authenticator"
#~ msgid "Enter your password"
#~ msgstr "Ange ditt lösenord"
#~ msgid "Unlock"
#~ msgstr "Lås upp"
#~ msgid "Remove the account"
#~ msgstr "Ta bort kontot"

549
po/tr.po
View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Authenticator\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-25 19:58+0100\n"
"POT-Creation-Date: 2019-02-11 22:35+0100\n"
"PO-Revision-Date: 2019-01-29 03:08+0000\n"
"Last-Translator: Muha Aliss <muhaaliss@pm.me>\n"
"Language-Team: Turkish <https://hosted.weblate.org/projects/authenticator/"
@ -19,227 +19,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.5-dev\n"
#: Authenticator/application.py.in:39
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:6
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:3
#: data/ui/window.ui.in:255 src/Authenticator/application.py.in:36
msgid "Authenticator"
msgstr "Şifrematik"
#: Authenticator/application.py.in:91 Authenticator/widgets/settings.py:239
msgid "Lock the application"
msgstr "Uygulamayı kilitle"
#: Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr ""
#: Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr ""
#: Authenticator/application.py.in:102
msgid "Restore"
msgstr ""
#: Authenticator/application.py.in:103
msgid "Backup"
msgstr "Yedekle"
#. Night mode action
#: Authenticator/application.py.in:111
msgid "Preferences"
msgstr "Tercihler"
#: Authenticator/application.py.in:112
msgid "Donate"
msgstr "Bağış"
#: Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr "Klavye Kısayolları"
#: Authenticator/application.py.in:114
msgid "About Authenticator"
msgstr "Şifrematik hakkında"
#: Authenticator/models/account.py:74
msgid "Default"
msgstr "Varsayılan"
#: Authenticator/widgets/accounts/add.py:50
#: Authenticator/widgets/headerbar.py:101
msgid "Add a new account"
msgstr "Yeni hesap ekle"
#: Authenticator/widgets/accounts/add.py:54
msgid "Add"
msgstr "Ekle"
#: Authenticator/widgets/accounts/add.py:62
msgid "Scan QR code"
msgstr "QR kod tara"
#: Authenticator/widgets/accounts/add.py:68
#: Authenticator/widgets/accounts/edit.py:58
msgid "Close"
msgstr "Kapat"
#: Authenticator/widgets/accounts/add.py:161
msgid "Provider"
msgstr "Sağlayıcı"
#: Authenticator/widgets/accounts/add.py:171
msgid "Account name"
msgstr "Hesap adı"
#: Authenticator/widgets/accounts/add.py:177
msgid "Secret token"
msgstr "Gizli belirteç"
#: Authenticator/widgets/accounts/add.py:260
msgid "Invalid QR code"
msgstr "Geçersiz QR kodu"
#: Authenticator/widgets/accounts/add.py:268
msgid "zbar library is not found. QRCode scanner will be disabled"
msgstr "zbar kütüphanesi bulunamadı. QRCode tarayıcı devre dışı bırakılacak"
#: Authenticator/widgets/accounts/edit.py:47
#, fuzzy
msgid "Edit {} - {}"
msgstr "Düzenle {} - {}"
#: Authenticator/widgets/accounts/edit.py:52
#: Authenticator/widgets/settings.py:143 Authenticator/widgets/utils.py:20
msgid "Save"
msgstr "Kaydet"
#: Authenticator/widgets/accounts/list.py:164
msgid "The One-Time Passwords expires in {} seconds"
msgstr "Tek kullanımlık parolalar {} saniye içinde sona eriyor"
#. Label
#: Authenticator/widgets/accounts/list.py:286
msgid "There are no accounts yet…"
msgstr "Henüz hesap yok…"
#: Authenticator/widgets/accounts/row.py:59
msgid "Copy"
msgstr "Kopyala"
#: Authenticator/widgets/accounts/row.py:60
msgid "Edit"
msgstr "Düzenle"
#: Authenticator/widgets/accounts/row.py:150
msgid "Couldn't generate the secret code"
msgstr "Gizli kod oluşturulamadı"
#: Authenticator/widgets/actions_bar.py:52
msgid "Delete"
msgstr "Sil"
#: Authenticator/widgets/headerbar.py:99
msgid "Search"
msgstr "Ara"
#: Authenticator/widgets/headerbar.py:103 Authenticator/widgets/settings.py:212
msgid "Settings"
msgstr "Ayarlar"
#: Authenticator/widgets/headerbar.py:105
msgid "Selection mode"
msgstr "Seçim modu"
#: Authenticator/widgets/headerbar.py:107 Authenticator/widgets/utils.py:22
#: Authenticator/widgets/utils.py:48
msgid "Cancel"
msgstr "İptal"
#: Authenticator/widgets/headerbar.py:183
msgid "Click on items to select them"
msgstr "Seçmek için üzerine tıkla"
#: Authenticator/widgets/settings.py:139
msgid "Authentication Password"
msgstr "Kimlik doğrulama parolası"
#: Authenticator/widgets/settings.py:152
msgid "Old Password"
msgstr "Eski parola"
#: Authenticator/widgets/settings.py:156
msgid "Password"
msgstr "Parola"
#: Authenticator/widgets/settings.py:159
msgid "Repeat Password"
msgstr "Tekrar Parola"
#: Authenticator/widgets/settings.py:229
msgid "Dark theme"
msgstr "Koyu tema"
#: Authenticator/widgets/settings.py:229
msgid "Use a dark theme, if possible"
msgstr "Mümkünse koyu bir tema kullanın"
#: Authenticator/widgets/settings.py:232
msgid "Appearance"
msgstr "Görünüm"
#: Authenticator/widgets/settings.py:236
msgid "Clear the database"
msgstr "Veritabanını temizle"
#: Authenticator/widgets/settings.py:236
msgid "Erase existing accounts"
msgstr "Mevcut hesapları sil"
#: Authenticator/widgets/settings.py:240
msgid "Possibility to lock the application with a password"
msgstr ""
#: Authenticator/widgets/settings.py:243
msgid "Authentication password"
msgstr "Kimlik doğrulama parolası"
#: Authenticator/widgets/settings.py:244
msgid "Set up application authentication password"
msgstr ""
#: Authenticator/widgets/settings.py:250
msgid "Behaviour"
msgstr "Davranış"
#: Authenticator/widgets/settings.py:259
msgid "The application needs to be restarted first."
msgstr ""
#: Authenticator/widgets/settings.py:288
msgid "The existing accounts will be erased in 5 seconds"
msgstr ""
#: Authenticator/widgets/settings.py:292 Authenticator/widgets/window.py.in:217
msgid "Undo"
msgstr ""
#: Authenticator/widgets/utils.py:18
msgid "Open"
msgstr ""
#: Authenticator/widgets/utils.py:32 Authenticator/widgets/utils.py:37
msgid "JSON files"
msgstr ""
#: Authenticator/widgets/utils.py:47
msgid "Select"
msgstr ""
#: Authenticator/widgets/window.py.in:213
msgid "An account or more were removed."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:7
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:5
msgid "Two-factor authentication code generator"
@ -267,6 +52,116 @@ msgstr ""
msgid "Huge database of (290+) websites/applications"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:34
msgid ""
"Since I have moved the application to GOME Gitlab's World group, a Flatpak "
"build for each new commit is available to download from the site's website."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:38
msgid "Backup and restore from a basic JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:39
msgid "Backup and restore from an encrypted-GPG JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:40
msgid "Add andOTP support (free and open Android 2FA application)"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:41
msgid "New Settings Widow with 3 sections: appearance, behavior and backup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:42
msgid "Fix Flatpak Build with the latest GNOME Runtime"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:43
msgid "Move the project to GOME Gitlab's World group"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:50
msgid "GNOME Shell Search provider"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:51
msgid "Codes expire simultaneously #91"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:58
msgid "Revamped main window to more closely follow the GNOME HIG"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:59
msgid "Revamped add a new account window to make it easier to use"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:60
msgid ""
"Possibility to add an account from a provider not listed in the shipped "
"database"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:61
msgid "Possibilty to edit an account"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:62
msgid "One Time Password now visible by default"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:69
msgid "Fix python-dbus by using GDbus instead"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:76
msgid "Fix the QRScanner on GNOME Shell"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:77
msgid "Add a new entry for the account's username"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:78
msgid "Updated database of supported accounts"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:85
msgid "HOTFIX: App not running in DE other than GNOME"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:92
#, fuzzy
msgid "Rename project to Authenticator"
msgstr "Şifrematik hakkında"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:93
#, fuzzy
msgid "Cleaner code base"
msgstr "Veritabanını temizle"
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:94
msgid "Faster startup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:95
msgid "Remove unneeded features"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:96
msgid "Switch to pyzbar instead of zbarlight"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:97
msgid "Flatpak package"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:104
msgid "Bilal Elmoussaoui"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:4
msgid "Two-factor authentication"
msgstr ""
@ -296,14 +191,6 @@ msgstr ""
msgid "Default window maximized behaviour"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:21
msgid "Whether the application is locked with a password or not"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:26
msgid "Whether the application can be locked or not"
msgstr ""
#: data/ui/about_dialog.ui.in:10
msgid "Two-factor authentication code generator."
msgstr ""
@ -312,6 +199,82 @@ msgstr ""
msgid "translator-credits"
msgstr ""
#: data/ui/account_add.ui:24
msgid "Add a new account"
msgstr "Yeni hesap ekle"
#: data/ui/account_add.ui:27 data/ui/account_edit.ui:21
msgid "Close"
msgstr "Kapat"
#: data/ui/account_add.ui:36
msgid "Add"
msgstr "Ekle"
#: data/ui/account_add.ui:56
#, fuzzy
msgid "Scan QR Code"
msgstr "QR kod tara"
#: data/ui/account_edit.ui:30 data/ui/settings.ui.in:454
#: src/Authenticator/widgets/utils.py:34
msgid "Save"
msgstr "Kaydet"
#: data/ui/account_row.ui:23
msgid "Edit"
msgstr "Düzenle"
#: data/ui/account_row.ui:37
msgid "Delete"
msgstr "Sil"
#: data/ui/account_row.ui:92
msgid "Copy PIN to clipboard"
msgstr ""
#: data/ui/settings.ui.in:66
msgid "Behaviour"
msgstr "Davranış"
#: data/ui/settings.ui.in:100
msgid "Dark theme"
msgstr "Koyu tema"
#: data/ui/settings.ui.in:117
msgid "Use a dark theme, if possible"
msgstr "Mümkünse koyu bir tema kullanın"
#: data/ui/settings.ui.in:179 src/Authenticator/application.py.in:91
msgid "Lock the application"
msgstr "Uygulamayı kilitle"
#: data/ui/settings.ui.in:196
#, fuzzy
msgid "Lock the application with a password"
msgstr "Uygulamayı kilitle"
#: data/ui/settings.ui.in:279
msgid "Keep your accounts safer "
msgstr ""
#: data/ui/settings.ui.in:303
msgid "Password"
msgstr "Parola"
#: data/ui/settings.ui.in:348
msgid "Repeat Password"
msgstr "Tekrar Parola"
#: data/ui/settings.ui.in:410
msgid "Settings"
msgstr "Ayarlar"
#: data/ui/settings.ui.in:427
#, fuzzy
msgid "Authenticator Password"
msgstr "Kimlik doğrulama parolası"
#: data/ui/shortcuts.ui:13
msgctxt "shortcut window"
msgid "General"
@ -344,18 +307,140 @@ msgstr ""
#: data/ui/shortcuts.ui:51
msgctxt "shortcut window"
msgid "Select"
msgstr ""
#: data/ui/shortcuts.ui:58
msgctxt "shortcut window"
msgid "Search"
msgstr ""
#: authenticator.py.in:54
#: data/ui/window.ui.in:60
msgid "There are no accounts yet…"
msgstr "Henüz hesap yok…"
#: data/ui/window.ui.in:187
#, fuzzy
msgid "Authenticator is locked"
msgstr "Şifrematik"
#: data/ui/window.ui.in:222
msgid "Unlock"
msgstr ""
#: src/authenticator.py.in:49
msgid "Start in debug mode"
msgstr ""
#: authenticator.py.in:56
#: src/authenticator.py.in:51
msgid "Authenticator version number"
msgstr ""
#: src/Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr ""
#: src/Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr ""
#: src/Authenticator/application.py.in:102
msgid "Restore"
msgstr ""
#: src/Authenticator/application.py.in:103
msgid "Backup"
msgstr "Yedekle"
#. Night mode action
#: src/Authenticator/application.py.in:111
msgid "Preferences"
msgstr "Tercihler"
#: src/Authenticator/application.py.in:112
msgid "Donate"
msgstr "Bağış"
#: src/Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr "Klavye Kısayolları"
#: src/Authenticator/application.py.in:114
msgid "About Authenticator"
msgstr "Şifrematik hakkında"
#: src/Authenticator/models/account.py:70
msgid "Default"
msgstr "Varsayılan"
#: src/Authenticator/widgets/accounts/add.py:204
msgid "Invalid QR code"
msgstr "Geçersiz QR kodu"
#: src/Authenticator/widgets/accounts/edit.py:45
#, fuzzy
msgid "Edit {} - {}"
msgstr "Düzenle {} - {}"
#: src/Authenticator/widgets/accounts/list.py:144
msgid "The One-Time Passwords expires in {} seconds"
msgstr "Tek kullanımlık parolalar {} saniye içinde sona eriyor"
#: src/Authenticator/widgets/accounts/row.py:75
msgid "Couldn't generate the secret code"
msgstr "Gizli kod oluşturulamadı"
#: src/Authenticator/widgets/settings.py:73
msgid "Authentication password was unset. Please restart the application"
msgstr ""
#: src/Authenticator/widgets/settings.py:81
msgid "Authentication password is now enabled. Please restart the application."
msgstr ""
#: src/Authenticator/widgets/utils.py:32
msgid "Open"
msgstr ""
#: src/Authenticator/widgets/utils.py:36 src/Authenticator/widgets/utils.py:62
msgid "Cancel"
msgstr "İptal"
#: src/Authenticator/widgets/utils.py:46 src/Authenticator/widgets/utils.py:51
msgid "JSON files"
msgstr ""
#: src/Authenticator/widgets/utils.py:61
msgid "Select"
msgstr ""
#~ msgid "Provider"
#~ msgstr "Sağlayıcı"
#~ msgid "Account name"
#~ msgstr "Hesap adı"
#~ msgid "Secret token"
#~ msgstr "Gizli belirteç"
#~ msgid "zbar library is not found. QRCode scanner will be disabled"
#~ msgstr "zbar kütüphanesi bulunamadı. QRCode tarayıcı devre dışı bırakılacak"
#~ msgid "Copy"
#~ msgstr "Kopyala"
#~ msgid "Search"
#~ msgstr "Ara"
#~ msgid "Selection mode"
#~ msgstr "Seçim modu"
#~ msgid "Click on items to select them"
#~ msgstr "Seçmek için üzerine tıkla"
#~ msgid "Old Password"
#~ msgstr "Eski parola"
#~ msgid "Appearance"
#~ msgstr "Görünüm"
#~ msgid "Erase existing accounts"
#~ msgstr "Mevcut hesapları sil"
#~ msgid "Authentication password"
#~ msgstr "Kimlik doğrulama parolası"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Authenticator\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-25 19:56+0100\n"
"POT-Creation-Date: 2019-02-11 22:35+0100\n"
"PO-Revision-Date: 2019-01-29 03:08+0000\n"
"Last-Translator: Louies <louies0623@gmail.com>\n"
"Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/"
@ -19,226 +19,12 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 3.5-dev\n"
#: Authenticator/application.py.in:39
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:6
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:3
#: data/ui/window.ui.in:255 src/Authenticator/application.py.in:36
msgid "Authenticator"
msgstr ""
#: Authenticator/application.py.in:91 Authenticator/widgets/settings.py:239
msgid "Lock the application"
msgstr "鎖定應用程式"
#: Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr ""
#: Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr ""
#: Authenticator/application.py.in:102
msgid "Restore"
msgstr "還原"
#: Authenticator/application.py.in:103
msgid "Backup"
msgstr "備份"
#. Night mode action
#: Authenticator/application.py.in:111
msgid "Preferences"
msgstr "偏好設定"
#: Authenticator/application.py.in:112
msgid "Donate"
msgstr "贊助"
#: Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr "鍵盤快速鍵"
#: Authenticator/application.py.in:114
msgid "About Authenticator"
msgstr ""
#: Authenticator/models/account.py:74
msgid "Default"
msgstr ""
#: Authenticator/widgets/accounts/add.py:50
#: Authenticator/widgets/headerbar.py:101
msgid "Add a new account"
msgstr ""
#: Authenticator/widgets/accounts/add.py:54
msgid "Add"
msgstr "添加"
#: Authenticator/widgets/accounts/add.py:62
msgid "Scan QR code"
msgstr "掃描 QR Code"
#: Authenticator/widgets/accounts/add.py:68
#: Authenticator/widgets/accounts/edit.py:58
msgid "Close"
msgstr "關閉"
#: Authenticator/widgets/accounts/add.py:161
msgid "Provider"
msgstr "供應商"
#: Authenticator/widgets/accounts/add.py:171
msgid "Account name"
msgstr ""
#: Authenticator/widgets/accounts/add.py:177
msgid "Secret token"
msgstr ""
#: Authenticator/widgets/accounts/add.py:260
msgid "Invalid QR code"
msgstr "無效的 QR code"
#: Authenticator/widgets/accounts/add.py:268
msgid "zbar library is not found. QRCode scanner will be disabled"
msgstr ""
#: Authenticator/widgets/accounts/edit.py:47
msgid "Edit {} - {}"
msgstr ""
#: Authenticator/widgets/accounts/edit.py:52
#: Authenticator/widgets/settings.py:143 Authenticator/widgets/utils.py:20
msgid "Save"
msgstr "儲存"
#: Authenticator/widgets/accounts/list.py:164
msgid "The One-Time Passwords expires in {} seconds"
msgstr ""
#. Label
#: Authenticator/widgets/accounts/list.py:286
msgid "There are no accounts yet…"
msgstr ""
#: Authenticator/widgets/accounts/row.py:59
msgid "Copy"
msgstr "複製"
#: Authenticator/widgets/accounts/row.py:60
msgid "Edit"
msgstr "編輯"
#: Authenticator/widgets/accounts/row.py:150
msgid "Couldn't generate the secret code"
msgstr ""
#: Authenticator/widgets/actions_bar.py:52
msgid "Delete"
msgstr "删除"
#: Authenticator/widgets/headerbar.py:99
msgid "Search"
msgstr "搜尋"
#: Authenticator/widgets/headerbar.py:103 Authenticator/widgets/settings.py:212
msgid "Settings"
msgstr "設定"
#: Authenticator/widgets/headerbar.py:105
msgid "Selection mode"
msgstr "選擇模式"
#: Authenticator/widgets/headerbar.py:107 Authenticator/widgets/utils.py:22
#: Authenticator/widgets/utils.py:48
msgid "Cancel"
msgstr "取消"
#: Authenticator/widgets/headerbar.py:183
msgid "Click on items to select them"
msgstr ""
#: Authenticator/widgets/settings.py:139
msgid "Authentication Password"
msgstr ""
#: Authenticator/widgets/settings.py:152
msgid "Old Password"
msgstr ""
#: Authenticator/widgets/settings.py:156
msgid "Password"
msgstr "密碼"
#: Authenticator/widgets/settings.py:159
msgid "Repeat Password"
msgstr "再次輸入密碼"
#: Authenticator/widgets/settings.py:229
msgid "Dark theme"
msgstr "黑暗主題"
#: Authenticator/widgets/settings.py:229
msgid "Use a dark theme, if possible"
msgstr ""
#: Authenticator/widgets/settings.py:232
msgid "Appearance"
msgstr "外觀"
#: Authenticator/widgets/settings.py:236
msgid "Clear the database"
msgstr ""
#: Authenticator/widgets/settings.py:236
msgid "Erase existing accounts"
msgstr ""
#: Authenticator/widgets/settings.py:240
msgid "Possibility to lock the application with a password"
msgstr ""
#: Authenticator/widgets/settings.py:243
msgid "Authentication password"
msgstr ""
#: Authenticator/widgets/settings.py:244
msgid "Set up application authentication password"
msgstr ""
#: Authenticator/widgets/settings.py:250
msgid "Behaviour"
msgstr ""
#: Authenticator/widgets/settings.py:259
msgid "The application needs to be restarted first."
msgstr ""
#: Authenticator/widgets/settings.py:288
msgid "The existing accounts will be erased in 5 seconds"
msgstr ""
#: Authenticator/widgets/settings.py:292 Authenticator/widgets/window.py.in:217
msgid "Undo"
msgstr ""
#: Authenticator/widgets/utils.py:18
msgid "Open"
msgstr ""
#: Authenticator/widgets/utils.py:32 Authenticator/widgets/utils.py:37
msgid "JSON files"
msgstr ""
#: Authenticator/widgets/utils.py:47
msgid "Select"
msgstr ""
#: Authenticator/widgets/window.py.in:213
msgid "An account or more were removed."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:7
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:5
msgid "Two-factor authentication code generator"
@ -266,6 +52,114 @@ msgstr ""
msgid "Huge database of (290+) websites/applications"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:34
msgid ""
"Since I have moved the application to GOME Gitlab's World group, a Flatpak "
"build for each new commit is available to download from the site's website."
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:38
msgid "Backup and restore from a basic JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:39
msgid "Backup and restore from an encrypted-GPG JSON file"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:40
msgid "Add andOTP support (free and open Android 2FA application)"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:41
msgid "New Settings Widow with 3 sections: appearance, behavior and backup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:42
msgid "Fix Flatpak Build with the latest GNOME Runtime"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:43
msgid "Move the project to GOME Gitlab's World group"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:50
msgid "GNOME Shell Search provider"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:51
msgid "Codes expire simultaneously #91"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:58
msgid "Revamped main window to more closely follow the GNOME HIG"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:59
msgid "Revamped add a new account window to make it easier to use"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:60
msgid ""
"Possibility to add an account from a provider not listed in the shipped "
"database"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:61
msgid "Possibilty to edit an account"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:62
msgid "One Time Password now visible by default"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:69
msgid "Fix python-dbus by using GDbus instead"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:76
msgid "Fix the QRScanner on GNOME Shell"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:77
msgid "Add a new entry for the account's username"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:78
msgid "Updated database of supported accounts"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:85
msgid "HOTFIX: App not running in DE other than GNOME"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:92
msgid "Rename project to Authenticator"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:93
msgid "Cleaner code base"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:94
msgid "Faster startup"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:95
msgid "Remove unneeded features"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:96
msgid "Switch to pyzbar instead of zbarlight"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:97
msgid "Flatpak package"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.appdata.xml.in.in:104
msgid "Bilal Elmoussaoui"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.desktop.in.in:4
msgid "Two-factor authentication"
msgstr ""
@ -295,18 +189,90 @@ msgstr ""
msgid "Default window maximized behaviour"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:21
msgid "Whether the application is locked with a password or not"
msgstr ""
#: data/com.github.bilelmoussaoui.Authenticator.gschema.xml.in:26
msgid "Whether the application can be locked or not"
msgstr ""
#: data/ui/about_dialog.ui.in:10
msgid "Two-factor authentication code generator."
msgstr ""
#: data/ui/about_dialog.ui.in:13
msgid "translator-credits"
msgstr ""
#: data/ui/account_add.ui:24
msgid "Add a new account"
msgstr ""
#: data/ui/account_add.ui:27 data/ui/account_edit.ui:21
msgid "Close"
msgstr "關閉"
#: data/ui/account_add.ui:36
msgid "Add"
msgstr "添加"
#: data/ui/account_add.ui:56
#, fuzzy
msgid "Scan QR Code"
msgstr "掃描 QR Code"
#: data/ui/account_edit.ui:30 data/ui/settings.ui.in:454
#: src/Authenticator/widgets/utils.py:34
msgid "Save"
msgstr "儲存"
#: data/ui/account_row.ui:23
msgid "Edit"
msgstr "編輯"
#: data/ui/account_row.ui:37
msgid "Delete"
msgstr "删除"
#: data/ui/account_row.ui:92
msgid "Copy PIN to clipboard"
msgstr ""
#: data/ui/settings.ui.in:66
msgid "Behaviour"
msgstr ""
#: data/ui/settings.ui.in:100
msgid "Dark theme"
msgstr "黑暗主題"
#: data/ui/settings.ui.in:117
msgid "Use a dark theme, if possible"
msgstr ""
#: data/ui/settings.ui.in:179 src/Authenticator/application.py.in:91
msgid "Lock the application"
msgstr "鎖定應用程式"
#: data/ui/settings.ui.in:196
#, fuzzy
msgid "Lock the application with a password"
msgstr "鎖定應用程式"
#: data/ui/settings.ui.in:279
msgid "Keep your accounts safer "
msgstr ""
#: data/ui/settings.ui.in:303
msgid "Password"
msgstr "密碼"
#: data/ui/settings.ui.in:348
msgid "Repeat Password"
msgstr "再次輸入密碼"
#: data/ui/settings.ui.in:410
msgid "Settings"
msgstr "設定"
#: data/ui/settings.ui.in:427
#, fuzzy
msgid "Authenticator Password"
msgstr "再次輸入密碼"
#: data/ui/shortcuts.ui:13
msgctxt "shortcut window"
msgid "General"
@ -339,18 +305,117 @@ msgstr ""
#: data/ui/shortcuts.ui:51
msgctxt "shortcut window"
msgid "Select"
msgstr ""
#: data/ui/shortcuts.ui:58
msgctxt "shortcut window"
msgid "Search"
msgstr ""
#: authenticator.py.in:54
#: data/ui/window.ui.in:60
msgid "There are no accounts yet…"
msgstr ""
#: data/ui/window.ui.in:187
msgid "Authenticator is locked"
msgstr ""
#: data/ui/window.ui.in:222
msgid "Unlock"
msgstr ""
#: src/authenticator.py.in:49
msgid "Start in debug mode"
msgstr ""
#: authenticator.py.in:56
#: src/authenticator.py.in:51
msgid "Authenticator version number"
msgstr ""
#: src/Authenticator/application.py.in:99
msgid "from a plain-text JSON file"
msgstr ""
#: src/Authenticator/application.py.in:100
msgid "in a plain-text JSON file"
msgstr ""
#: src/Authenticator/application.py.in:102
msgid "Restore"
msgstr "還原"
#: src/Authenticator/application.py.in:103
msgid "Backup"
msgstr "備份"
#. Night mode action
#: src/Authenticator/application.py.in:111
msgid "Preferences"
msgstr "偏好設定"
#: src/Authenticator/application.py.in:112
msgid "Donate"
msgstr "贊助"
#: src/Authenticator/application.py.in:113
msgid "Keyboard Shortcuts"
msgstr "鍵盤快速鍵"
#: src/Authenticator/application.py.in:114
msgid "About Authenticator"
msgstr ""
#: src/Authenticator/models/account.py:70
msgid "Default"
msgstr ""
#: src/Authenticator/widgets/accounts/add.py:204
msgid "Invalid QR code"
msgstr "無效的 QR code"
#: src/Authenticator/widgets/accounts/edit.py:45
msgid "Edit {} - {}"
msgstr ""
#: src/Authenticator/widgets/accounts/list.py:144
msgid "The One-Time Passwords expires in {} seconds"
msgstr ""
#: src/Authenticator/widgets/accounts/row.py:75
msgid "Couldn't generate the secret code"
msgstr ""
#: src/Authenticator/widgets/settings.py:73
msgid "Authentication password was unset. Please restart the application"
msgstr ""
#: src/Authenticator/widgets/settings.py:81
msgid "Authentication password is now enabled. Please restart the application."
msgstr ""
#: src/Authenticator/widgets/utils.py:32
msgid "Open"
msgstr ""
#: src/Authenticator/widgets/utils.py:36 src/Authenticator/widgets/utils.py:62
msgid "Cancel"
msgstr "取消"
#: src/Authenticator/widgets/utils.py:46 src/Authenticator/widgets/utils.py:51
msgid "JSON files"
msgstr ""
#: src/Authenticator/widgets/utils.py:61
msgid "Select"
msgstr ""
#~ msgid "Provider"
#~ msgstr "供應商"
#~ msgid "Copy"
#~ msgstr "複製"
#~ msgid "Search"
#~ msgstr "搜尋"
#~ msgid "Selection mode"
#~ msgstr "選擇模式"
#~ msgid "Appearance"
#~ msgstr "外觀"

View file

@ -18,3 +18,5 @@
"""
from .application import Application
from .utils import load_pixbuf, load_pixbuf_from_provider
from .models import *
from .widgets import *

View file

@ -17,13 +17,10 @@
along with Authenticator. If not, see <http://www.gnu.org/licenses/>.
"""
from gettext import gettext as _
from gi import require_version
require_version("Gtk", "3.0")
from gi.repository import Gtk, GLib, Gio, Gdk, GObject
from .widgets import Window, AboutDialog, import_json, export_json
from .models import Settings, Clipboard, Logger
from Authenticator.widgets import Window, WindowState, AboutDialog, import_json, export_json
from Authenticator.models import Database, Settings, Clipboard, Logger, Keyring
class Application(Gtk.Application):
@ -40,15 +37,18 @@ class Application(Gtk.Application):
GLib.set_prgname("Authenticator")
self.connect("notify::is-locked", self.__is_locked_changed)
self.alive = True
Settings.get_default().bind("is-locked", self, "is_locked", Gio.SettingsBindFlags.GET)
self._menu = Gio.Menu()
def __is_locked_changed(self, *_):
if self.is_locked:
Window.get_default().emit("locked")
Window.get_default().state = WindowState.LOCKED
else:
Window.get_default().emit("unlocked")
count = Database.get_default().count
if count == 0:
Window.get_default().state = WindowState.EMPTY
else:
Window.get_default().state = WindowState.NORMAL
@staticmethod
def get_default():
if Application.instance is None:
@ -60,7 +60,7 @@ class Application(Gtk.Application):
Gtk.Application.do_startup(self)
self.__generate_menu()
self.__setup_actions()
self.set_property("is-locked", Settings.get_default().can_be_locked)
self.props.is_locked = Keyring.get_default().has_password()
Application.__setup_css()
# Set the default night mode
@ -86,7 +86,7 @@ class Application(Gtk.Application):
def __generate_menu(self):
"""Generate application menu."""
# Lock/Unlock
if Settings.get_default().can_be_locked:
if Keyring.get_default().has_password():
lock_content = Gio.Menu.new()
lock_content.append_item(Gio.MenuItem.new(_("Lock the application"), "app.lock"))
self._menu.append_item(Gio.MenuItem.new_section(None, lock_content))
@ -123,14 +123,13 @@ class Application(Gtk.Application):
self.__add_action("settings", self.__on_settings, "is_locked")
self.__add_action("import_json", self.__on_import_json, "is_locked")
self.__add_action("export_json", self.__on_export_json, "is_locked")
if Settings.get_default().can_be_locked:
if Keyring.get_default().has_password():
self.__add_action("lock", self.__on_lock, "is_locked")
# Keyboard shortcuts. This includes actions defined in window.py.in
self.set_accels_for_action("app.shortcuts", ["<Ctrl>question"])
self.set_accels_for_action("app.quit", ["<Ctrl>Q"])
self.set_accels_for_action("app.settings", ["<Ctrl>comma"])
self.set_accels_for_action("win.toggle-select", ["<Ctrl>S"])
self.set_accels_for_action("win.add-account", ["<Ctrl>N"])
self.set_accels_for_action("win.toggle-searchbar", ["<Ctrl>F"])
@ -144,9 +143,8 @@ class Application(Gtk.Application):
def do_activate(self, *_):
"""On activate signal override."""
window = Window.get_default()
window.set_application(self)
window.set_menu(self._menu)
window.set_application(self)
window.connect("delete-event", lambda x, y: self.__on_quit())
if Application.IS_DEVEL:
window.get_style_context().add_class("devel")

View file

@ -16,14 +16,17 @@
You should have received a copy of the GNU General Public License
along with Authenticator. If not, see <http://www.gnu.org/licenses/>.
"""
from .account import Account
from .accounts_manager import AccountsManager
from .backup import BackupJSON
from .clipboard import Clipboard
from .database import Database
from .keyring import Keyring
from .logger import Logger
from .otp import OTP
from .qr_reader import QRReader
from .screenshot import GNOMEScreenshot
from .settings import Settings
from Authenticator.models.logger import Logger
from Authenticator.models.otp import OTP
from Authenticator.models.clipboard import Clipboard
from Authenticator.models.database import Database
from Authenticator.models.keyring import Keyring
from Authenticator.models.account import Account
from Authenticator.models.accounts_manager import AccountsManager
from Authenticator.models.backup import BackupJSON
from Authenticator.models.qr_reader import QRReader
from Authenticator.models.screenshot import GNOMEScreenshot
from Authenticator.models.settings import Settings

View file

@ -20,11 +20,7 @@ from hashlib import sha256
from gettext import gettext as _
from gi.repository import GObject
from .clipboard import Clipboard
from .database import Database
from .keyring import Keyring
from .logger import Logger
from .otp import OTP
from Authenticator.models import Clipboard, Database, Keyring, Logger, OTP
class Account(GObject.GObject):
@ -88,6 +84,8 @@ class Account(GObject.GObject):
:param username: the account's username
:param provider: the account's provider
"""
self.username = username
self.provider = provider
Database.get_default().update(username, provider, self.id)
def remove(self):

View file

@ -18,7 +18,6 @@
"""
from threading import Thread
from time import sleep
from gi.repository import GObject

View file

@ -19,10 +19,7 @@
import json
from gi.repository import Gio
from .account import Account
from .accounts_manager import AccountsManager
from .keyring import Keyring
from .logger import Logger
from Authenticator.models import Account, AccountsManager, Logger, Keyring
class Backup:

View file

@ -16,10 +16,6 @@
You should have received a copy of the GNU General Public License
along with Authenticator. If not, see <http://www.gnu.org/licenses/>.
"""
from gi import require_version
require_version("Gtk", "3.0")
from gi.repository import Gdk, Gtk

View file

@ -19,10 +19,9 @@
import sqlite3
from collections import OrderedDict
from os import path, makedirs
from gi.repository import GLib
from .logger import Logger
from Authenticator.models import Logger
class Database:

View file

@ -16,9 +16,6 @@
You should have received a copy of the GNU General Public License
along with Authenticator. If not, see <http://www.gnu.org/licenses/>.
"""
from gi import require_version
require_version('Secret', '1')
from gi.repository import Secret
@ -137,3 +134,8 @@ class Keyring:
@staticmethod
def has_password():
return Keyring.get_password() is not None
@staticmethod
def clear_password():
schema = Keyring.get_default().password_schema
Secret.password_clear_sync(schema, {}, None)

View file

@ -18,7 +18,7 @@
"""
import binascii
from .logger import Logger
from Authenticator.models import Logger
try:
from pyotp import TOTP

View file

@ -19,12 +19,14 @@
from os import remove, path
from urllib.parse import urlparse, parse_qsl, unquote
from .logger import Logger
from .otp import OTP
from PIL import Image
from pyzbar.pyzbar import decode
from Authenticator.models import Logger, OTP
class QRReader:
ZBAR_FOUND = True
def __init__(self, filename):
self.filename = filename
self._codes = None
@ -32,33 +34,28 @@ class QRReader:
self.username = None
def read(self):
decoded_data = decode(Image.open(self.filename))
if path.isfile(self.filename):
remove(self.filename)
try:
from PIL import Image
from pyzbar.pyzbar import decode
decoded_data = decode(Image.open(self.filename))
if path.isfile(self.filename):
remove(self.filename)
try:
# See https://github.com/google/google-authenticator/wiki/Key-Uri-Format
# for a description of the URL format
url = urlparse(decoded_data[0].data.decode())
query_params = parse_qsl(url.query)
self._codes = dict(query_params)
# See https://github.com/google/google-authenticator/wiki/Key-Uri-Format
# for a description of the URL format
url = urlparse(decoded_data[0].data.decode())
query_params = parse_qsl(url.query)
self._codes = dict(query_params)
label = unquote(url.path.lstrip("/"))
if ":" in label:
self.provider, self.username = label.split(":", maxsplit=1)
else:
self.provider = label
# provider information could also be in the query params
self.provider = self._codes.get("issuer", self.provider)
label = unquote(url.path.lstrip("/"))
if ":" in label:
self.provider, self.username = label.split(":", maxsplit=1)
else:
self.provider = label
# provider information could also be in the query params
self.provider = self._codes.get("issuer", self.provider)
return self._codes.get("secret")
except (KeyError, IndexError):
Logger.error("Invalid QR image")
return None
except ImportError:
QRReader.ZBAR_FOUND = False
return self._codes.get("secret")
except (KeyError, IndexError):
Logger.error("Invalid QR image")
return None
def is_valid(self):
"""

View file

@ -29,7 +29,7 @@ class Settings(Gio.Settings):
instance = None
# Settings schema
SCHEMA = "@APP_ID@"
def __init__(self):
Gio.Settings.__init__(self)
@ -92,20 +92,3 @@ class Settings(Gio.Settings):
:type is_maximized: bool
"""
self.set_boolean("is-maximized", is_maximized)
@property
def is_locked(self):
return self.get_boolean("is-locked")
@is_locked.setter
def is_locked(self, state):
self.set_boolean("is-locked", state)
@property
def can_be_locked(self):
return self.get_boolean("can-be-locked")
@can_be_locked.setter
def can_be_locked(self, state):
self.set_boolean("can-be-locked", state)

View file

@ -17,11 +17,7 @@
along with Authenticator. If not, see <http://www.gnu.org/licenses/>.
"""
from os import environ
from gi import require_version
require_version('Gtk', '3.0')
from gi.repository import Gtk, GdkPixbuf, GLib, Gio
from gi.repository import Gtk, GdkPixbuf, GLib
def load_pixbuf(icon_name, size):

View file

@ -17,11 +17,7 @@
along with Authenticator. If not, see <http://www.gnu.org/licenses/>.
"""
from .about import AboutDialog
from .accounts import AccountsList, AccountRow, AccountsListState
from .actions_bar import ActionsBar
from .headerbar import HeaderBar
from .login import LoginWidget
from .search_bar import SearchBar
from .window import Window
from .accounts import AccountsList, AccountRow
from .window import Window, WindowState
from .settings import SettingsWindow
from .utils import import_json, export_json

View file

@ -16,10 +16,6 @@
You should have received a copy of the GNU General Public License
along with Authenticator. If not, see <http://www.gnu.org/licenses/>.
"""
from gettext import gettext as _
from gi import require_version
require_version("Gtk", "3.0")
from gi.repository import Gtk
@ -31,7 +27,7 @@ class AboutDialog(Gtk.AboutDialog):
__gtype_name__ ="AboutDialog"
def __init__(self):
super().__init__(self)
super(AboutDialog, self).__init__()
def __repr__(self):
return '<AboutDialog>'

View file

@ -17,5 +17,5 @@
along with Authenticator. If not, see <http://www.gnu.org/licenses/>.
"""
from .add import AddAccountWindow
from .list import AccountsWidget, AccountsList, EmptyAccountsList, AccountsListState
from .list import AccountsWidget, AccountsList
from .row import AccountRow

View file

@ -0,0 +1,221 @@
"""
Copyright © 2017 Bilal Elmoussaoui <bil.elmoussaoui@gmail.com>
This file is part of Authenticator.
Authenticator 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.
Authenticator 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 Authenticator. If not, see <http://www.gnu.org/licenses/>.
"""
import json
from gettext import gettext as _
from gi.repository import Gio, Gtk, GObject, GLib
from Authenticator.models import OTP
from Authenticator.utils import load_pixbuf_from_provider
@Gtk.Template(resource_path='/com/github/bilelmoussaoui/Authenticator/account_add.ui')
class AddAccountWindow(Gtk.Window):
"""Add Account Window."""
__gtype_name__ = "AddAccountWindow"
add_btn = Gtk.Template.Child()
def __init__(self):
super(AddAccountWindow, self).__init__()
self.init_template('AddAccountWindow')
self.__init_widgets()
def __init_widgets(self):
"""Create the Add Account widgets."""
self.account_config = AccountConfig()
self.account_config.connect("changed", self._on_account_config_changed)
self.add(self.account_config)
@Gtk.Template.Callback('scan_btn_clicked')
def _on_scan(self, *_):
"""
QR Scan button clicked signal handler.
"""
if self.account_config:
self.account_config.scan_qr()
def _on_account_config_changed(self, _, state):
"""Set the sensitivity of the AddButton depends on the AccountConfig."""
self.add_btn.set_sensitive(state)
@Gtk.Template.Callback('close_btn_clicked')
def _on_quit(self, *_):
self.destroy()
@Gtk.Template.Callback('add_btn_clicked')
def _on_add(self, *_):
from .list import AccountsWidget
from ...models import AccountsManager, Account
account_obj = self.account_config.account
# Create a new account
account = Account.create(account_obj["username"],
account_obj["provider"],
account_obj["token"])
# Add it to the AccountsManager
AccountsManager.get_default().add(account)
AccountsWidget.get_default().append(account)
self._on_quit()
@Gtk.Template(resource_path='/com/github/bilelmoussaoui/Authenticator/account_config.ui')
class AccountConfig(Gtk.Box, GObject.GObject):
__gsignals__ = {
'changed': (GObject.SignalFlags.RUN_LAST, None, (bool,)),
}
__gtype_name__ = 'AccountConfig'
provider_img = Gtk.Template.Child()
account_name_entry = Gtk.Template.Child()
token_entry = Gtk.Template.Child()
provider_combobox = Gtk.Template.Child()
provider_entry = Gtk.Template.Child()
providers_store = Gtk.Template.Child()
provider_completion = Gtk.Template.Child()
notification = Gtk.Template.Child()
notification_label = Gtk.Template.Child()
def __init__(self, **kwargs):
super(AccountConfig, self).__init__()
self.init_template('AccountConfig')
GObject.GObject.__init__(self)
self.is_edit = kwargs.get("edit", False)
self._account = kwargs.get("account", None)
self.__init_widgets()
@property
def account(self):
"""
Return an instance of Account for the new account.
"""
account = {
"username": self.account_name_entry.get_text(),
"provider": self.provider_entry.get_text()
}
if not self.is_edit:
# remove spaces
token = self.token_entry.get_text()
account["token"] = "".join(token.split())
return account
def __init_widgets(self):
# Set up auto completion
if self._account and self._account.provider:
self.provider_entry.set_text(self._account.provider)
if self._account and self._account.username:
self.account_name_entry.set_text(self._account.username)
if not self.is_edit:
self.token_entry.set_no_show_all(False)
self.token_entry.show()
# To set the empty logo
if self._account:
pixbuf = load_pixbuf_from_provider(self._account.provider, 96)
else:
pixbuf = load_pixbuf_from_provider(None, 96)
self.provider_img.set_from_pixbuf(pixbuf)
self._fill_data()
@Gtk.Template.Callback('provider_changed')
def _on_provider_changed(self, combo):
tree_iter = combo.get_active_iter()
if tree_iter is not None:
model = combo.get_model()
logo = model[tree_iter][-1]
else:
entry = combo.get_child()
logo = entry.get_text()
self._validate()
self.provider_img.set_from_pixbuf(load_pixbuf_from_provider(logo, 96))
def _fill_data(self):
uri = 'resource:///com/github/bilelmoussaoui/Authenticator/data.json'
g_file = Gio.File.new_for_uri(uri)
content = str(g_file.load_contents(None)[1].decode("utf-8"))
data = json.loads(content)
data = sorted([(name, logo) for name, logo in data.items()],
key=lambda account: account[0].lower())
for name, logo in data:
self.providers_store.append([name, logo])
@Gtk.Template.Callback('account_edited')
def _validate(self, *_):
"""Validate the username and the token."""
provider = self.provider_entry.get_text()
username = self.account_name_entry.get_text()
token = "".join(self.token_entry.get_text().split())
if not username:
self.account_name_entry.get_style_context().add_class("error")
valid_name = False
else:
self.account_name_entry.get_style_context().remove_class("error")
valid_name = True
if not provider:
self.provider_combobox.get_style_context().add_class("error")
valid_provider = False
else:
self.provider_combobox.get_style_context().remove_class("error")
valid_provider = True
if (not token or not OTP.is_valid(token)) and not self.is_edit:
self.token_entry.get_style_context().add_class("error")
valid_token = False
else:
self.token_entry.get_style_context().remove_class("error")
valid_token = True
self.emit("changed", all([valid_name, valid_provider, valid_token]))
def scan_qr(self):
"""
Scans a QRCode and fills the entries with the correct data.
"""
from ...models import QRReader, GNOMEScreenshot
filename = GNOMEScreenshot.area()
if filename:
qr_reader = QRReader(filename)
secret = qr_reader.read()
if not qr_reader.is_valid():
self.__send_notification(_("Invalid QR code"))
else:
self.token_entry.set_text(secret)
if qr_reader.provider is not None:
self.provider_entry.set_text(qr_reader.provider)
if qr_reader.username is not None:
self.account_name_entry.set_text(qr_reader.username)
def __send_notification(self, message):
"""
Show a notification using Gd.Notification.
:param message: the notification message
:type message: str
"""
self.notification_label.set_text(message)
self.notification.set_reveal_child(True)
GLib.timeout_add_seconds(5,
lambda _: self.notification.set_reveal_child(False), None)

View file

@ -17,48 +17,33 @@
along with Authenticator. If not, see <http://www.gnu.org/licenses/>.
"""
from gettext import gettext as _
from gi.repository import Gtk, GObject
from gi import require_version
require_version("Gtk", "3.0")
from gi.repository import Gtk, Gdk, GObject
from .add import AccountConfig
from Authenticator.widgets.accounts.add import AccountConfig
@Gtk.Template(resource_path='/com/github/bilelmoussaoui/Authenticator/account_edit.ui')
class EditAccountWindow(Gtk.Window, GObject.GObject):
__gsignals__ = {
'updated': (GObject.SignalFlags.RUN_LAST, None, (str, str,)),
}
__gtype_name__ = 'EditAccountWindow'
headerbar = Gtk.Template.Child()
save_btn = Gtk.Template.Child()
def __init__(self, account):
Gtk.Window.__init__(self)
super(EditAccountWindow, self).__init__()
self.init_template('EditAccountWindow')
GObject.GObject.__init__(self)
self._account = account
self.set_position(Gtk.WindowPosition.CENTER_ON_PARENT)
self.set_size_request(400, 600)
self.resize(400, 600)
self.connect('key_press_event', self._on_key_press)
self._build_widgets()
def _build_widgets(self):
header_bar = Gtk.HeaderBar()
header_bar.set_show_close_button(False)
header_bar.set_title(_("Edit {} - {}".format(self._account.username,
self._account.provider)))
self.set_titlebar(header_bar)
# Save btn
self.save_btn = Gtk.Button()
self.save_btn.set_label(_("Save"))
self.save_btn.connect("clicked", self._on_save)
self.save_btn.get_style_context().add_class("suggested-action")
header_bar.pack_end(self.save_btn)
self.__init_widgets()
self.close_btn = Gtk.Button()
self.close_btn.set_label(_("Close"))
self.close_btn.connect("clicked", self._on_quit)
header_bar.pack_start(self.close_btn)
def __init_widgets(self):
self.headerbar.set_title(_("Edit {} - {}".format(self._account.username,
self._account.provider)))
self.account_config = AccountConfig(edit=True, account=self._account)
self.account_config.connect("changed", self._on_account_config_changed)
@ -75,6 +60,7 @@ class EditAccountWindow(Gtk.Window, GObject.GObject):
"""
self.save_btn.set_sensitive(state)
@Gtk.Template.Callback('save_btn_clicked')
def _on_save(self, *_):
"""
Save Button clicked signal handler.
@ -92,16 +78,9 @@ class EditAccountWindow(Gtk.Window, GObject.GObject):
ac_widget.update_provider(self._account, provider)
self._on_quit()
@Gtk.Template.Callback('close_btn_clicked')
def _on_quit(self, *_):
"""
Close the window.
"""
self.destroy()
def _on_key_press(self, _, event):
"""
KeyPress event handler.
"""
_, key_val = event.get_keyval()
if key_val == Gdk.KEY_Escape:
self._on_quit()

View file

@ -17,25 +17,21 @@
along with Authenticator. If not, see <http://www.gnu.org/licenses/>.
"""
from gettext import gettext as _
from gi.repository import Gtk, GObject, Handy
from gi import require_version
require_version("Gtk", "3.0")
require_version("Handy", "0.0")
from gi.repository import Gtk, GObject, Gio, Handy
from .row import AccountRow
from ...models import Database, Account, AccountsManager
from ...utils import load_pixbuf_from_provider
from Authenticator.widgets.accounts.row import AccountRow
from Authenticator.models import Account, AccountsManager
from Authenticator.utils import load_pixbuf_from_provider
class AccountsWidget(Gtk.Box, GObject.GObject):
__gsignals__ = {
'changed': (GObject.SignalFlags.RUN_LAST, None, ()),
'selected-rows-changed': (GObject.SignalFlags.RUN_LAST, None, (int,)),
}
instance = None
__gsignals__ = {
'account-removed': (GObject.SignalFlags.RUN_LAST, None, ()),
'account-added': (GObject.SignalFlags.RUN_LAST, None, ()),
}
def __init__(self):
Gtk.Box.__init__(self, orientation=Gtk.Orientation.VERTICAL)
GObject.GObject.__init__(self)
@ -50,8 +46,8 @@ class AccountsWidget(Gtk.Box, GObject.GObject):
self.otp_progress_bar = Gtk.ProgressBar()
self.otp_progress_bar.get_style_context().add_class("progress-bar")
self.add(self.otp_progress_bar)
AccountsManager.get_default().connect(
"counter_updated", self._on_counter_updated)
AccountsManager.get_default().connect("counter_updated",
self._on_counter_updated)
self.accounts_container = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
@ -74,15 +70,13 @@ class AccountsWidget(Gtk.Box, GObject.GObject):
accounts_list = self._providers.get(account.provider)
if not accounts_list:
accounts_list = AccountsList()
accounts_list.connect("selected-count-rows-changed",
self._on_selected_count_changed)
accounts_list.connect("account-deleted", self._on_account_deleted)
self._providers[account.provider] = accounts_list
provider_widget = ProviderWidget(accounts_list, account.provider)
self.accounts_container.pack_start(provider_widget, False, False, 0)
accounts_list.add_row(account)
self._reorder()
self.emit("changed")
self.emit("account-added")
@property
def accounts_lists(self):
@ -92,17 +86,6 @@ class AccountsWidget(Gtk.Box, GObject.GObject):
for account_list in self._providers.values():
self.accounts_container.remove(account_list.get_parent())
self._providers = {}
self.emit("changed")
def set_state(self, state):
for account_list in self._providers.values():
account_list.set_state(state)
def delete_selected(self, *_):
for account_list in self._providers.values():
account_list.delete_selected()
self._clean_unneeded_providers_widgets()
self.emit("changed")
def update_provider(self, account, new_provider):
current_account_list = None
@ -129,16 +112,13 @@ class AccountsWidget(Gtk.Box, GObject.GObject):
for account in accounts:
self.append(account)
def _on_selected_count_changed(self, *_):
total_selected_rows = 0
for account_list in self._providers.values():
total_selected_rows += account_list.selected_rows_count
self.emit("selected-rows-changed", total_selected_rows)
def _on_account_deleted(self, account_list):
if len(account_list.get_children()) == 0:
self._to_delete.append(account_list)
self._reorder()
self._clean_unneeded_providers_widgets()
self.emit("account-removed")
def _clean_unneeded_providers_widgets(self):
for account_list in self._to_delete:
provider_widget = account_list.get_parent()
@ -150,11 +130,11 @@ class AccountsWidget(Gtk.Box, GObject.GObject):
"""
Re-order the ProviderWidget on AccountsWidget.
"""
childes = self.accounts_container.get_children()
ordered_childes = sorted(
childes, key=lambda children: children.provider.lower())
for i in range(len(ordered_childes)):
self.accounts_container.reorder_child(ordered_childes[i], i)
childs = self.accounts_container.get_children()
ordered_childs = sorted(
childs, key=lambda children: children.provider.lower())
for i in range(len(ordered_childs)):
self.accounts_container.reorder_child(ordered_childs[i], i)
self.show_all()
def _on_counter_updated(self, accounts_manager, counter):
@ -177,7 +157,7 @@ class ProviderWidget(Gtk.Box):
provider_lbl = Gtk.Label()
provider_lbl.set_text(provider)
provider_lbl.set_halign(Gtk.Align.START)
provider_lbl.get_style_context().add_class("provider-lbl")
provider_lbl.get_style_context().add_class("provider-label")
provider_img = Gtk.Image()
pixbuf = load_pixbuf_from_provider(provider)
@ -190,16 +170,10 @@ class ProviderWidget(Gtk.Box):
self.pack_start(accounts_list, False, False, 3)
class AccountsListState:
NORMAL = 0
SELECT = 1
class AccountsList(Gtk.ListBox, GObject.GObject):
"""Accounts List."""
__gsignals__ = {
'selected-count-rows-changed': (GObject.SignalFlags.RUN_LAST, None, (int,)),
'account-deleted': (GObject.SignalFlags.RUN_LAST, None, ()),
}
# Default instance of accounts list
@ -210,8 +184,6 @@ class AccountsList(Gtk.ListBox, GObject.GObject):
Gtk.ListBox.__init__(self)
self.set_selection_mode(Gtk.SelectionMode.NONE)
self.get_style_context().add_class("accounts-list")
self.state = AccountsListState.NORMAL
self.selected_rows_count = 0
def append_new(self, name, provider, token):
account = Account.create(name, provider, token)
@ -221,69 +193,13 @@ class AccountsList(Gtk.ListBox, GObject.GObject):
account = Account(_id, name, provider, secret_id)
self.add_row(account)
def delete(self, _):
# Remove an account from the list
self.emit("changed", False)
def set_state(self, state):
show_check_btn = (state == AccountsListState.SELECT)
for child in self.get_children():
child.check_btn.set_visible(show_check_btn)
child.check_btn.set_no_show_all(not show_check_btn)
def delete_selected(self, *_):
for child in self.get_children():
check_btn = child.check_btn
if check_btn.props.active:
child.account.remove()
self.remove(child)
self.emit("account-deleted")
self.set_state(AccountsListState.NORMAL)
def add_row(self, account):
row = AccountRow(account)
row.connect("on_selected", self._on_row_checked)
row.delete_btn.connect("clicked", self.__on_delete_child, row)
self.add(row)
def _on_row_checked(self, _):
self.selected_rows_count = 0
for _row in self.get_children():
if _row.check_btn.props.active:
self.selected_rows_count += 1
self.emit("selected-count-rows-changed", self.selected_rows_count)
def __on_delete_child(self, model_btn, account_row):
self.remove(account_row)
account_row.account.remove()
self.emit("account-deleted")
class EmptyAccountsList(Gtk.Box):
"""
Empty accounts list widget.
"""
# Default instance
instance = None
def __init__(self):
Gtk.Box.__init__(self, orientation=Gtk.Orientation.VERTICAL)
self._build_widgets()
@staticmethod
def get_default():
if not EmptyAccountsList.instance:
EmptyAccountsList.instance = EmptyAccountsList()
return EmptyAccountsList.instance
def _build_widgets(self):
"""
Build EmptyAccountList widget.
"""
self.set_border_width(36)
self.set_valign(Gtk.Align.CENTER)
self.set_halign(Gtk.Align.CENTER)
# Image
g_icon = Gio.ThemedIcon(name="dialog-information-symbolic.symbolic")
img = Gtk.Image.new_from_gicon(g_icon, Gtk.IconSize.DIALOG)
# Label
label = Gtk.Label(label=_("There are no accounts yet…"))
self.pack_start(img, False, False, 6)
self.pack_start(label, False, False, 6)

View file

@ -0,0 +1,122 @@
"""
Copyright © 2017 Bilal Elmoussaoui <bil.elmoussaoui@gmail.com>
This file is part of Authenticator.
Authenticator 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.
Authenticator 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 Authenticator. If not, see <http://www.gnu.org/licenses/>.
"""
from gettext import gettext as _
from gi.repository import Gtk, GObject
from Authenticator.widgets.accounts.edit import EditAccountWindow
@Gtk.Template(resource_path='/com/github/bilelmoussaoui/Authenticator/account_row.ui')
class AccountRow(Gtk.ListBoxRow, GObject.GObject):
"""
AccountRow Widget.
It's a subclass of Gtk.ListBoxRow
Added as a child to a AccountsList
@signals: None
@properties: account
"""
__gtype_name__ = 'AccountRow'
account_name_label = Gtk.Template.Child()
pin_label = Gtk.Template.Child()
more_actions_btn = Gtk.Template.Child()
delete_btn = Gtk.Template.Child()
def __init__(self, account):
"""
:param account: Account
"""
super(AccountRow, self).__init__()
self.init_template('AccountRow')
self._account = account
self._account.connect("otp_updated", self._on_pin_updated)
self.__init_widgets()
@property
def account(self):
"""
The Account model assigned to this AccountRow
:return: Account Object
"""
return self._account
def __init_widgets(self):
# Set up account name text label
self.account_name_label.set_text(self.account.username)
self.account_name_label.set_tooltip_text(self.account.username)
# Set up account pin text label
pin = self.account.otp.pin
if pin:
self.pin_label.set_text(pin)
else:
self.pin_label.set_text("??????")
self.pin_label.set_tooltip_text(_("Couldn't generate the secret code"))
@Gtk.Template.Callback('copy_btn_clicked')
def _on_copy(self, *_):
"""
Copy button clicked signal handler.
Copies the OTP pin to the clipboard
"""
print(self._account.otp.pin)
self._account.copy_pin()
@Gtk.Template.Callback('edit_btn_clicked')
def _on_edit(self, *_):
"""
Edit Button clicked signal handler.
Opens a new Window to edit the current account.
"""
from ..window import Window
edit_window = EditAccountWindow(self._account)
edit_window.set_transient_for(Window.get_default())
edit_window.connect("updated", self._on_update)
edit_window.show_all()
edit_window.present()
def _on_update(self, _, account_name, provider):
"""
On account update signal handler.
Updates the account name and provider
:param account_name: the new account's name
:type account_name: str
:param provider: the new account's provider
:type provider: str
"""
self.account_name_label.set_text(account_name)
self.account.update(account_name, provider)
def _on_pin_updated(self, _, pin):
"""
Updates the pin label each time a new OTP is generated.
otp_updated signal handler.
:param pin: the new OTP
:type pin: str
"""
if pin:
self.pin_label.set_text(pin)

View file

@ -0,0 +1,142 @@
"""
Copyright © 2017 Bilal Elmoussaoui <bil.elmoussaoui@gmail.com>
This file is part of Authenticator.
Authenticator 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.
Authenticator 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 Authenticator. If not, see <http://www.gnu.org/licenses/>.
"""
from gettext import gettext as _
from gi.repository import Gio, GLib, Gtk, GObject
from .window import Window
from ..models import Settings, Keyring
class SettingsView:
MAIN = 0
PASSWORD = 1
@Gtk.Template(resource_path='/com/github/bilelmoussaoui/Authenticator/settings.ui')
class SettingsWindow(Gtk.Window):
__gtype_name__ = 'SettingsWindow'
lock_switch = Gtk.Template.Child()
dark_theme_switch = Gtk.Template.Child()
headerbar = Gtk.Template.Child()
headerbar_stack = Gtk.Template.Child()
main_stack = Gtk.Template.Child()
save_btn = Gtk.Template.Child()
password_entry = Gtk.Template.Child()
repeat_password_entry = Gtk.Template.Child()
notification = Gtk.Template.Child()
notification_label = Gtk.Template.Child()
view = GObject.Property(type=int)
def __init__(self):
super(SettingsWindow, self).__init__()
self.init_template('SettingsWindow')
self.connect("notify::view", self.__update_view)
self.__init_widgets()
def __init_widgets(self):
settings = Settings.get_default()
settings.bind("night-mode", self.dark_theme_switch, "state", Gio.SettingsBindFlags.DEFAULT)
self.lock_switch.set_active(Keyring.get_default().has_password())
@Gtk.Template.Callback('lock_switch_state_changed')
def __on_app_set_password(self, __, state):
if state and not Keyring.get_default().has_password():
self.props.view = SettingsView.PASSWORD
elif Keyring.get_default().has_password():
Keyring.get_default().clear_password()
self.__send_notification(_("Authentication password was unset. Please restart the application"))
@Gtk.Template.Callback('save_btn_clicked')
def __save_password(self, *__):
if self.save_btn.get_sensitive():
password = self.password_entry.get_text()
Keyring.set_password(password)
self.props.view = SettingsView.MAIN
self.__send_notification(_("Authentication password is now enabled. Please restart the application."))
@Gtk.Template.Callback('back_btn_clicked')
def __back_btn_clicked(self, *_):
self.props.view = SettingsView.MAIN
if not Keyring.get_default().has_password():
self.lock_switch.set_active(False)
@Gtk.Template.Callback('dark_theme_switch_state_changed')
@staticmethod
def __on_dark_theme_changed(_, state):
gtk_settings = Gtk.Settings.get_default()
gtk_settings.set_property("gtk-application-prefer-dark-theme",
state)
@Gtk.Template.Callback('password_entry_changed')
def __validate_password(self, *_):
password = self.password_entry.get_text()
repeat_password = self.repeat_password_entry.get_text()
if not password:
self.password_entry.get_style_context().add_class("error")
valid_password = False
else:
self.password_entry.get_style_context().remove_class("error")
valid_password = True
if not repeat_password or password != repeat_password:
self.repeat_password_entry.get_style_context().add_class("error")
valid_repeat_password = False
else:
self.repeat_password_entry.get_style_context().remove_class("error")
valid_repeat_password = True
to_validate = [valid_password, valid_repeat_password]
self.save_btn.set_sensitive(all(to_validate))
def __update_view(self, *_):
if self.props.view == SettingsView.PASSWORD:
self.main_stack.set_visible_child_name("password_view")
self.headerbar_stack.set_visible_child_name("headerbar_password")
self.headerbar.set_show_close_button(False)
self.notification.set_reveal_child(False)
self.notification_label.set_text("")
else:
self.main_stack.set_visible_child_name("settings_view")
self.headerbar_stack.set_visible_child_name("headerbar_settings")
self.headerbar.set_show_close_button(True)
# Reset Password View
# To avoid user saving a password he doesn't remember
self.password_entry.set_text("")
self.repeat_password_entry.set_text("")
self.password_entry.get_style_context().remove_class("error")
self.repeat_password_entry.get_style_context().remove_class("error")
self.save_btn.set_sensitive(False)
def __send_notification(self, message):
self.notification_label.set_text(message)
self.notification.set_reveal_child(True)
GLib.timeout_add_seconds(5,
lambda _: self.notification.set_reveal_child(False), None)

View file

@ -1,8 +1,22 @@
"""
Copyright © 2017 Bilal Elmoussaoui <bil.elmoussaoui@gmail.com>
This file is part of Authenticator.
Authenticator 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.
Authenticator 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 Authenticator. If not, see <http://www.gnu.org/licenses/>.
"""
from gettext import gettext as _
from gi import require_version
require_version("Gtk", "3.0")
from gi.repository import Gtk

View file

@ -0,0 +1,228 @@
"""
Copyright © 2017 Bilal Elmoussaoui <bil.elmoussaoui@gmail.com>
This file is part of Authenticator.
Authenticator 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.
Authenticator 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 Authenticator. If not, see <http://www.gnu.org/licenses/>.
"""
from gi.repository import Gtk, GObject, Gio, GLib
from Authenticator.models import Database, Logger, Settings, AccountsManager
from Authenticator.widgets.accounts import AccountsWidget, AddAccountWindow
class WindowState:
NORMAL = 0
LOCKED = 1
EMPTY = 2
@Gtk.Template(resource_path='/com/github/bilelmoussaoui/Authenticator/window.ui')
class Window(Gtk.ApplicationWindow, GObject.GObject):
"""Main Window object."""
__gsignals__ = {
'changed': (GObject.SignalFlags.RUN_LAST, None, (bool,))
}
__gtype_name__ = 'Window'
# Default Window instance
instance = None
state = GObject.Property(type=int, default=0)
headerbar = Gtk.Template.Child()
add_btn = Gtk.Template.Child()
search_btn = Gtk.Template.Child()
primary_menu_btn = Gtk.Template.Child()
main_stack = Gtk.Template.Child()
search_bar = Gtk.Template.Child()
notification = Gtk.Template.Child()
notification_label = Gtk.Template.Child()
accounts_viewport = Gtk.Template.Child()
unlock_btn = Gtk.Template.Child()
password_entry = Gtk.Template.Child()
def __init__(self):
super(Window, self).__init__()
self.init_template('Window')
self.connect("notify::state", self.__state_changed)
self.key_press_signal = None
self.restore_state()
# Start the Account Manager
AccountsManager.get_default()
self.__init_widgets()
@staticmethod
def get_default():
"""Return the default instance of Window."""
if Window.instance is None:
Window.instance = Window()
return Window.instance
def close(self):
self.save_state()
AccountsManager.get_default().kill()
self.destroy()
def add_account(self, *_):
if not self.get_application().is_locked:
add_window = AddAccountWindow()
add_window.set_transient_for(self)
add_window.show_all()
add_window.present()
def set_menu(self, menu):
popover = Gtk.Popover.new_from_model(self.primary_menu_btn, menu)
def primary_menu_btn_handler(_, popover):
popover.set_visible(not popover.get_visible())
self.primary_menu_btn.connect('clicked', primary_menu_btn_handler, popover)
def toggle_search(self, *_):
"""
Switch the state of the search mode
Switches the state of the search mode if:
- The application is not locked
- There are at least one account in the database
return: None
"""
if self.props.state == WindowState.NORMAL:
toggled = not self.search_btn.props.active
self.search_btn.set_property("active", toggled)
def save_state(self):
"""
Save window position and maximized state.
"""
settings = Settings.get_default()
settings.window_position = self.get_position()
settings.window_maximized = self.is_maximized()
def restore_state(self):
"""
Restore the window's state.
"""
settings = Settings.get_default()
# Restore the window position
position_x, position_y = settings.window_position
if position_x != 0 and position_y != 0:
self.move(position_x, position_y)
Logger.debug("[Window] Restore position x: {}, y: {}".format(position_x,
position_y))
else:
# Fallback to the center
self.set_position(Gtk.WindowPosition.CENTER)
if settings.window_maximized:
self.maximize()
def __init_widgets(self):
"""Build main window widgets."""
# Register Actions
self.__add_action("add-account", self.add_account)
self.__add_action("toggle-searchbar", self.toggle_search)
# Set up accounts Widget
accounts_widget = AccountsWidget.get_default()
accounts_widget.connect("account-removed", self.__on_accounts_changed)
accounts_widget.connect("account-added", self.__on_accounts_changed)
self.accounts_viewport.add(accounts_widget)
self.search_bar.bind_property("search-mode-enabled", self.search_btn,
"active", GObject.BindingFlags.BIDIRECTIONAL)
def __on_accounts_changed(self, *_):
if Database.get_default().count == 0:
self.props.state = WindowState.EMPTY
else:
self.props.state = WindowState.NORMAL
@Gtk.Template.Callback('unlock_btn_clicked')
def __unlock_btn_clicked(self, *_):
from Authenticator.models import Keyring
typed_password = self.password_entry.get_text()
if typed_password == Keyring.get_password():
self.get_application().set_property("is-locked", False)
# Reset password entry
self.password_entry.get_style_context().remove_class("error")
self.password_entry.set_text("")
else:
self.password_entry.get_style_context().add_class("error")
def __add_action(self, key, callback, prop_bind=None, bind_flag=GObject.BindingFlags.INVERT_BOOLEAN):
action = Gio.SimpleAction.new(key, None)
action.connect("activate", callback)
if prop_bind:
self.bind_property(prop_bind, action, "enabled", bind_flag)
self.add_action(action)
def __state_changed(self, *_):
if self.props.state == WindowState.LOCKED:
visible_child = "locked_state"
self.add_btn.set_visible(False)
self.add_btn.set_no_show_all(True)
self.search_btn.set_visible(False)
self.search_btn.set_no_show_all(True)
if self.key_press_signal:
self.disconnect(self.key_press_signal)
else:
# Connect on type search bar
self.key_press_signal = self.connect("key-press-event", lambda x,
y: self.search_bar.handle_event(y))
if self.props.state == WindowState.EMPTY:
visible_child = "empty_state"
self.search_btn.set_visible(False)
self.search_btn.set_no_show_all(True)
else:
visible_child = "normal_state"
self.search_btn.set_visible(True)
self.search_btn.set_no_show_all(False)
self.add_btn.set_visible(True)
self.add_btn.set_no_show_all(False)
self.main_stack.set_visible_child_name(visible_child)
@Gtk.Template.Callback('search_changed')
def __search_changed(self, entry):
"""
Handles search-changed signal.
"""
def filter_func(row, data, *_):
"""
Filter function
"""
data = data.lower()
if len(data) > 0:
return (
data in row.account.username.lower()
or
data in row.account.provider.lower()
)
else:
return True
data = entry.get_text().strip()
search_lists = AccountsWidget.get_default().accounts_lists
for search_list in search_lists:
search_list.set_filter_func(filter_func,
data, False)

View file

@ -23,16 +23,7 @@ import sy
sys.path.insert(1, '@PYTHON_EXEC_DIR@')
sys.path.insert(1, '@PYTHON_DIR@')
from os import path
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('GIRepository', '2.0')
from gi.repository import Gio, GIRepository, GLib
GIRepository.Repository.prepend_search_path(
path.join('@LIB_DIR@', 'girepository-1.0'))
GIRepository.Repository.prepend_library_path('@LIB_DIR@')
from gi.repository import Gio, GLib
from Authenticator.models.database import Database
from Authenticator.models.account import Account

View file

@ -26,28 +26,23 @@ import sys
from os import path
from gettext import gettext as _
from gi import require_version
require_version('GIRepository', '2.0')
from gi.repository import Gio, GIRepository
require_version('Gtk', '3.0')
require_version("Handy", "0.0")
require_version('Secret', '1')
from gi.repository import Gio
sys.path.insert(1, '@PYTHON_EXEC_DIR@')
sys.path.insert(1, '@PYTHON_DIR@')
def prepare_locale():
locale.bindtextdomain('Authenticator', '@LOCALE_DIR@')
locale.textdomain('Authenticator')
gettext.bindtextdomain('Authenticator', '@LOCALE_DIR@')
gettext.textdomain('Authenticator')
locale.bindtextdomain('@GETTEXT_PACKAGE@', '@LOCALE_DIR@')
locale.textdomain('@GETTEXT_PACKAGE@')
gettext.bindtextdomain('@GETTEXT_PACKAGE@', '@LOCALE_DIR@')
gettext.textdomain('@GETTEXT_PACKAGE@')
def prepare_gir():
gir_repository_path = path.join('@LIB_DIR@', 'girepository-1.0')
GIRepository.Repository.prepend_search_path(gir_repository_path)
GIRepository.Repository.prepend_library_path('@LIB_DIR@')
if __name__ == "__main__":
prepare_locale()
prepare_gir()
parser = argparse.ArgumentParser(prog="Authenticator")
parser.add_argument("--debug", "-d", action="store_true",
@ -56,7 +51,7 @@ if __name__ == "__main__":
help=_("Authenticator version number"))
args = parser.parse_args()
resource = Gio.resource_load(path.join('@DATA_DIR@', '@APP_ID@.gresource'))
resource = Gio.resource_load(path.join('@PKGDATA_DIR@', '@APP_ID@.gresource'))
Gio.Resource._register(resource)

51
src/meson.build Normal file
View file

@ -0,0 +1,51 @@
configure_file(
input: 'authenticator.py.in',
output: 'authenticator',
configuration: conf,
install_dir: get_option('bindir')
)
configure_file(
input: 'authenticator-search-provider.py.in',
output: 'authenticator-search-provider',
configuration: conf,
install_dir: get_option('libexecdir')
)
configure_file(
input: 'Authenticator/models/settings.py.in',
output: 'settings.py',
configuration: conf,
install_dir: join_paths(python.sysconfig_path('purelib'),
'Authenticator/models')
)
configure_file(
input: 'Authenticator/utils.py.in',
output: 'utils.py',
configuration: conf,
install_dir: join_paths(python.sysconfig_path('purelib'),
'Authenticator')
)
configure_file(
input: 'Authenticator/application.py.in',
output: 'application.py',
configuration: conf,
install_dir: join_paths(python.sysconfig_path('purelib'),
'Authenticator')
)
install_subdir(
'Authenticator',
install_dir: python.sysconfig_path('purelib'),
exclude_files: [
'models/settings.py.in',
'widgets/window.py.in',
'utils.py.in',
'application.py.in'
]
)

@ -1 +0,0 @@
Subproject commit 7ae254bfc5f641c60566614e08245176f7bc5aa8