translation support added

This commit is contained in:
guinux 2013-03-31 19:31:33 +02:00
parent 3a3e9b14a5
commit 84865bcd9f
19 changed files with 846 additions and 201 deletions

3
create_pot_file.sh Executable file
View File

@ -0,0 +1,3 @@
#! /bin/sh
xgettext --from-code=UTF-8 --files-from=./files_to_translate --keyword=translatable --keyword=_ --output=pamac.pot

View File

@ -4,10 +4,11 @@
"http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd"> "http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">
<policyconfig> <policyconfig>
<vendor>Manjaro</vendor> <vendor>Manjaro</vendor>
<icon_name>pamac</icon_name> <vendor_url>http://manjaro.org/</vendor_url>
<icon_name>package-x-generic</icon_name>
<action id="org.manjaro.pamac.commit"> <action id="org.manjaro.pamac.commit">
<message>Authentication is required to change alpm database</message> <message>Authentication is required</message>
<message xml:lang="fr">L'authentification est nécessaire pour changer la base de données alpm</message> <message xml:lang="fr">Authentification nécessaire</message>
<defaults> <defaults>
<allow_any>no</allow_any> <allow_any>no</allow_any>
<allow_inactive>no</allow_inactive> <allow_inactive>no</allow_inactive>

6
files_to_translate Normal file
View File

@ -0,0 +1,6 @@
./pamac-daemon.py
./pamac-tray.py
./pamac/main.py
./pamac/common.py
./gui/manager.glade
./gui/updater.glade

View File

@ -677,7 +677,7 @@
<object class="GtkTreeViewColumn" id="installed_column"> <object class="GtkTreeViewColumn" id="installed_column">
<property name="resizable">True</property> <property name="resizable">True</property>
<property name="sizing">autosize</property> <property name="sizing">autosize</property>
<property name="title" translatable="yes">Installed</property> <property name="title" translatable="yes">State</property>
<property name="clickable">True</property> <property name="clickable">True</property>
<property name="sort_indicator">True</property> <property name="sort_indicator">True</property>
<property name="sort_column_id">1</property> <property name="sort_column_id">1</property>

View File

@ -1,5 +1,5 @@
#! /usr/bin/python #! /usr/bin/python
# -*-coding:utf-8-*- # -*- coding:utf-8 -*-
import dbus import dbus
import dbus.service import dbus.service
@ -11,6 +11,12 @@ import pyalpm
from multiprocessing import Process from multiprocessing import Process
from pamac import config, common from pamac import config, common
# i18n
import gettext
gettext.bindtextdomain('pamac', '/usr/share/locale')
gettext.textdomain('pamac')
_ = gettext.gettext
class PamacDBusService(dbus.service.Object): class PamacDBusService(dbus.service.Object):
def __init__(self): def __init__(self):
bus=dbus.SystemBus() bus=dbus.SystemBus()
@ -21,7 +27,7 @@ class PamacDBusService(dbus.service.Object):
self.error = '' self.error = ''
self.warning = '' self.warning = ''
self.previous_action = '' self.previous_action = ''
self.action = 'Preparing...' self.action = _('Preparing')+'...'
self.previous_icon = '' self.previous_icon = ''
self.icon = '/usr/share/pamac/icons/24x24/status/setup.png' self.icon = '/usr/share/pamac/icons/24x24/status/setup.png'
self.previous_target = '' self.previous_target = ''
@ -60,48 +66,48 @@ class PamacDBusService(dbus.service.Object):
def cb_event(self, ID, event, tupel): def cb_event(self, ID, event, tupel):
if ID is 1: if ID is 1:
self.action = 'Checking dependencies...' self.action = _('Checking dependencies')+'...'
self.icon = '/usr/share/pamac/icons/24x24/status/package-search.png' self.icon = '/usr/share/pamac/icons/24x24/status/package-search.png'
elif ID is 3: elif ID is 3:
self.action = 'Checking file conflicts...' self.action = _('Checking file conflicts')+'...'
self.icon = '/usr/share/pamac/icons/24x24/status/package-search.png' self.icon = '/usr/share/pamac/icons/24x24/status/package-search.png'
elif ID is 5: elif ID is 5:
self.action = 'Resolving dependencies...' self.action = _('Resolving dependencies')+'...'
self.icon = '/usr/share/pamac/icons/24x24/status/setup.png' self.icon = '/usr/share/pamac/icons/24x24/status/setup.png'
elif ID is 7: elif ID is 7:
self.action = 'Checking inter conflicts...' self.action = _('Checking inter conflicts')+'...'
self.icon = '/usr/share/pamac/icons/24x24/status/package-search.png' self.icon = '/usr/share/pamac/icons/24x24/status/package-search.png'
elif ID is 9: elif ID is 9:
self.action = 'Installing...' self.action = _('Installing')+'...'
self.icon = '/usr/share/pamac/icons/24x24/status/package-add.png' self.icon = '/usr/share/pamac/icons/24x24/status/package-add.png'
elif ID is 10: elif ID is 10:
formatted_event = 'Installed {} ({})'.format(tupel[0].name, tupel[0].version) formatted_event = 'Installed {pkgname} ({pkgversion})'.format(pkgname = tupel[0].name, pkgversion = tupel[0].version)
common.write_log_file(formatted_event) common.write_log_file(formatted_event)
print(formatted_event) print(formatted_event)
elif ID is 11: elif ID is 11:
self.action = 'Removing...' self.action = _('Removing')+'...'
self.icon = '/usr/share/pamac/icons/24x24/status/package-delete.png' self.icon = '/usr/share/pamac/icons/24x24/status/package-delete.png'
elif ID is 12: elif ID is 12:
formatted_event = 'Removed {} ({})'.format(tupel[0].name, tupel[0].version) formatted_event = 'Removed {pkgname} ({pkgversion})'.format(pkgname = tupel[0].name, pkgversion = tupel[0].version)
common.write_log_file(formatted_event) common.write_log_file(formatted_event)
print(formatted_event) print(formatted_event)
elif ID is 13: elif ID is 13:
self.action = 'Upgrading...' self.action = _('Upgrading')+'...'
self.icon = '/usr/share/pamac/icons/24x24/status/package-update.png' self.icon = '/usr/share/pamac/icons/24x24/status/package-update.png'
elif ID is 14: elif ID is 14:
formatted_event = 'Upgraded {} ({} -> {})'.format(tupel[1].name, tupel[1].version, tupel[0].version) formatted_event = 'Upgraded {pkgname} ({oldversion} -> {newversion})'.format(pkgname = tupel[1].name, oldversion = tupel[1].version, newversion = tupel[0].version)
common.write_log_file(formatted_event) common.write_log_file(formatted_event)
print(formatted_event) print(formatted_event)
elif ID is 15: elif ID is 15:
self.action = 'Checking integrity...' self.action = _('Checking integrity')+'...'
self.icon = '/usr/share/pamac/icons/24x24/status/package-search.png' self.icon = '/usr/share/pamac/icons/24x24/status/package-search.png'
self.already_transferred = 0 self.already_transferred = 0
elif ID is 17: elif ID is 17:
self.action = 'Loading packages files...' self.action = _('Loading packages files')+'...'
self.icon = '/usr/share/pamac/icons/24x24/status/package-search.png' self.icon = '/usr/share/pamac/icons/24x24/status/package-search.png'
print('Loading packages files') print('Loading packages files')
elif ID is 26: elif ID is 26:
self.action = 'Configuring...' self.action = _('Configuring')+'...'
self.icon = '/usr/share/pamac/icons/24x24/status/setup.png' self.icon = '/usr/share/pamac/icons/24x24/status/setup.png'
self.EmitPercent(str(2)) self.EmitPercent(str(2))
print('Configuring a package') print('Configuring a package')
@ -153,12 +159,12 @@ class PamacDBusService(dbus.service.Object):
size = pkg.size size = pkg.size
if _transferred == size: if _transferred == size:
self.already_transferred += size self.already_transferred += size
self.action = 'Downloading '+common.format_size(self.total_size) self.action = _('Downloading {size}'.format(size = common.format_size(self.total_size)))
self.target = _target self.target = _target
self.percent = round(fraction, 2) self.percent = round(fraction, 2)
self.icon = '/usr/share/pamac/icons/24x24/status/package-download.png' self.icon = '/usr/share/pamac/icons/24x24/status/package-download.png'
else: else:
self.action = 'Refreshing...' self.action = _('Refreshing')+'...'
self.target = _target self.target = _target
self.percent = 2 self.percent = 2
self.icon = '/usr/share/pamac/icons/24x24/status/refresh-cache.png' self.icon = '/usr/share/pamac/icons/24x24/status/refresh-cache.png'
@ -261,7 +267,7 @@ class PamacDBusService(dbus.service.Object):
finally: finally:
return self.error return self.error
else : else :
return 'You are not authorized' return _('Authentication failed')
@dbus.service.method('org.manjaro.pamac', '', 's') @dbus.service.method('org.manjaro.pamac', '', 's')
def Sysupgrade(self): def Sysupgrade(self):
@ -365,11 +371,11 @@ class PamacDBusService(dbus.service.Object):
if self.error: if self.error:
self.EmitTransactionError(self.error) self.EmitTransactionError(self.error)
else: else:
self.EmitTransactionDone('Transaction successfully finished') self.EmitTransactionDone(_('Transaction successfully finished'))
try: try:
authorized = self.policykit_test(sender,connexion,'org.manjaro.pamac.commit') authorized = self.policykit_test(sender,connexion,'org.manjaro.pamac.commit')
except dbus.exceptions.DBusException as e: except dbus.exceptions.DBusException as e:
self.EmitTransactionError('You are not authorized') self.EmitTransactionError(_('Authentication failed'))
success('') success('')
else: else:
if authorized: if authorized:
@ -377,7 +383,7 @@ class PamacDBusService(dbus.service.Object):
self.task.start() self.task.start()
else : else :
self.t.release() self.t.release()
self.EmitTransactionError('You are not authorized') self.EmitTransactionError(_('Authentication failed'))
success('') success('')
@dbus.service.signal('org.manjaro.pamac') @dbus.service.signal('org.manjaro.pamac')
@ -399,7 +405,7 @@ class PamacDBusService(dbus.service.Object):
finally: finally:
return self.error return self.error
else : else :
return 'You are not authorized' return _('Authentication failed')
@dbus.service.method('org.manjaro.pamac') @dbus.service.method('org.manjaro.pamac')
def StopDaemon(self): def StopDaemon(self):

View File

@ -1,5 +1,5 @@
#! /usr/bin/python #! /usr/bin/python
# -*-coding:utf-8 -*- # -*- coding:utf-8 -*-
from gi.repository import GObject from gi.repository import GObject
from sys import argv from sys import argv

View File

@ -1,5 +1,5 @@
#! /usr/bin/python #! /usr/bin/python
# -*-coding:utf-8 -*- # -*- coding:utf-8 -*-
from pamac import main from pamac import main

View File

@ -1,5 +1,5 @@
#! /usr/bin/python #! /usr/bin/python
# -*-coding:utf-8-*- # -*- coding:utf-8 -*-
from gi.repository import GObject from gi.repository import GObject
from pamac import common, transaction from pamac import common, transaction

View File

@ -1,21 +1,28 @@
#! /usr/bin/python #! /usr/bin/python
# -*-coding:utf-8-*- # -*- coding:utf-8 -*-
from gi.repository import Gtk, GObject from gi.repository import Gtk, GObject
from subprocess import Popen from subprocess import Popen
from pamac import transaction from pamac import transaction, common
import dbus import dbus
import threading import threading
# i18n
import gettext
gettext.bindtextdomain('pamac', '/usr/share/locale')
gettext.textdomain('pamac')
_ = gettext.gettext
GObject.threads_init() GObject.threads_init()
bus = dbus.SystemBus() bus = dbus.SystemBus()
icon = '' icon = ''
info = '' info = ''
update_icon = '/usr/share/pamac/icons/scalable/status/update-normal.svg' update_icon = '/usr/share/pamac/icons/scalable/status/update-normal.svg'
update_info = '{} available updates' update_info = _('{number} available updates')
one_update_info = _('1 available update')
noupdate_icon = '/usr/share/pamac/icons/scalable/status/update-enhancement.svg' noupdate_icon = '/usr/share/pamac/icons/scalable/status/update-enhancement.svg'
noupdate_info = ' No available update' noupdate_info = _('Your system is up-to-date')
class Tray: class Tray:
def __init__(self): def __init__(self):
@ -23,13 +30,13 @@ class Tray:
self.statusIcon.set_visible(True) self.statusIcon.set_visible(True)
self.menu = Gtk.Menu() self.menu = Gtk.Menu()
self.menuItem = Gtk.ImageMenuItem('Install/Check for updates') self.menuItem = Gtk.ImageMenuItem(_('Install/Check for updates'))
self.menuItem.connect('activate', self.execute_update, self.statusIcon) self.menuItem.connect('activate', self.execute_update, self.statusIcon)
self.menu.append(self.menuItem) self.menu.append(self.menuItem)
self.menuItem = Gtk.ImageMenuItem('Run pamac-manager') self.menuItem = Gtk.ImageMenuItem(_('Run pamac-manager'))
self.menuItem.connect('activate', self.execute_manager, self.statusIcon) self.menuItem.connect('activate', self.execute_manager, self.statusIcon)
self.menu.append(self.menuItem) self.menu.append(self.menuItem)
self.menuItem = Gtk.ImageMenuItem('Quit') self.menuItem = Gtk.ImageMenuItem(_('Quit'))
self.menuItem.connect('activate', self.quit_tray, self.statusIcon) self.menuItem.connect('activate', self.quit_tray, self.statusIcon)
self.menu.append(self.menuItem) self.menu.append(self.menuItem)
@ -90,7 +97,10 @@ def set_icon(updates):
global info global info
if updates: if updates:
icon = update_icon icon = update_icon
info = update_info.format(updates) if int(updates) == 1:
info = one_update_info
else:
info = update_info.format(number = updates)
Popen(['notify-send', '-i', icon, '-u', 'normal', 'Pamac', info]) Popen(['notify-send', '-i', icon, '-u', 'normal', 'Pamac', info])
else: else:
icon = noupdate_icon icon = noupdate_icon

View File

@ -1,5 +1,5 @@
#! /usr/bin/python #! /usr/bin/python
# -*-coding:utf-8 -*- # -*- coding:utf-8 -*-
from pamac import main from pamac import main

339
pamac.pot Normal file
View File

@ -0,0 +1,339 @@
## Translation of Pamac.
# Copyright (C) 2007-2012 Free Software Foundation, Inc.
# This file is distributed under the same license as the Pamac package.
# Guillaume Benoit <guillaume@manjaro.org>, 2013.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: pamac\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-03-31 18:55+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: pamac-daemon.py:30 pamac/main.py:594
msgid "Preparing"
msgstr ""
#: pamac-daemon.py:69
msgid "Checking dependencies"
msgstr ""
#: pamac-daemon.py:72
msgid "Checking file conflicts"
msgstr ""
#: pamac-daemon.py:75
msgid "Resolving dependencies"
msgstr ""
#: pamac-daemon.py:78
msgid "Checking inter conflicts"
msgstr ""
#: pamac-daemon.py:81 pamac/main.py:73
msgid "Installing"
msgstr ""
#: pamac-daemon.py:88 pamac/main.py:73
msgid "Removing"
msgstr ""
#: pamac-daemon.py:95 pamac/main.py:73
msgid "Upgrading"
msgstr ""
#: pamac-daemon.py:102
msgid "Checking integrity"
msgstr ""
#: pamac-daemon.py:106
msgid "Loading packages files"
msgstr ""
#: pamac-daemon.py:110 pamac/main.py:73
msgid "Configuring"
msgstr ""
#: pamac-daemon.py:162
msgid "Downloading {size}"
msgstr ""
#: pamac-daemon.py:167 pamac/main.py:504
msgid "Refreshing"
msgstr ""
#: pamac-daemon.py:270 pamac-daemon.py:378 pamac-daemon.py:386
#: pamac-daemon.py:408
msgid "Authentication failed"
msgstr ""
#: pamac-daemon.py:374
msgid "Transaction successfully finished"
msgstr ""
#: pamac-tray.py:22
msgid "{number} available updates"
msgstr ""
#: pamac-tray.py:23
msgid "1 available update"
msgstr ""
#: pamac-tray.py:25
msgid "Your system is up-to-date"
msgstr ""
#: pamac-tray.py:33
msgid "Install/Check for updates"
msgstr ""
#: pamac-tray.py:36
msgid "Run pamac-manager"
msgstr ""
#: pamac-tray.py:39
msgid "Quit"
msgstr ""
#: pamac/main.py:110 pamac/main.py:923
msgid "Installed"
msgstr ""
#: pamac/main.py:110 pamac/main.py:925
msgid "Uninstalled"
msgstr ""
#: pamac/main.py:110 pamac/main.py:927
msgid "Orphans"
msgstr ""
#: pamac/main.py:110 pamac/main.py:428 pamac/main.py:929
msgid "To install"
msgstr ""
#: pamac/main.py:110 pamac/main.py:408 pamac/main.py:931
msgid "To remove"
msgstr ""
#: pamac/main.py:129 pamac/main.py:939
msgid "local"
msgstr ""
#: pamac/main.py:295
msgid "No package found"
msgstr ""
#: pamac/main.py:346
msgid "Licenses"
msgstr ""
#: pamac/main.py:351
msgid "Depends On"
msgstr ""
#: pamac/main.py:353
msgid "Optional Deps"
msgstr ""
#: pamac/main.py:356
msgid "Required By"
msgstr ""
#: pamac/main.py:358
msgid "Provides"
msgstr ""
#: pamac/main.py:360
msgid "Replaces"
msgstr ""
#: pamac/main.py:362
msgid "Conflicts With"
msgstr ""
#: pamac/main.py:367
msgid "Repository"
msgstr ""
#: pamac/main.py:369 gui/manager.glade:539
msgid "Groups"
msgstr ""
#: pamac/main.py:371
msgid "Compressed Size"
msgstr ""
#: pamac/main.py:372
msgid "Download Size"
msgstr ""
#: pamac/main.py:374
msgid "Installed Size"
msgstr ""
#: pamac/main.py:375
msgid "Packager"
msgstr ""
#: pamac/main.py:379
msgid "Install Date"
msgstr ""
#: pamac/main.py:381
msgid "Explicitly installed"
msgstr ""
#: pamac/main.py:383
msgid "Installed as a dependency for another package"
msgstr ""
#: pamac/main.py:385
msgid "Unknown"
msgstr ""
#: pamac/main.py:386
msgid "Install Reason"
msgstr ""
#: pamac/main.py:391
msgid "Signatures"
msgstr ""
#: pamac/main.py:395
msgid "Backup files"
msgstr ""
#: pamac/main.py:405
msgid "<big><b>Transaction Summary</b></big>"
msgstr ""
#: pamac/main.py:419 pamac/main.py:528
msgid "<b>Total download size: </b>"
msgstr ""
#: pamac/main.py:435
msgid "To update"
msgstr ""
#: pamac/main.py:520 pamac/main.py:1048
msgid "<big><b>Your system is up-to-date</b></big>"
msgstr ""
#: pamac/main.py:530
msgid "<big><b>1 available update</b></big>"
msgstr ""
#: pamac/main.py:532
msgid "<big><b>{number} available updates</b></big>"
msgstr ""
#: pamac/main.py:691 pamac/main.py:761
msgid "{pkgname1} will be replaced by {pkgname2}"
msgstr ""
#: pamac/main.py:708 pamac/main.py:742
msgid ""
"{pkgname1} conflicts with {pkgname2} but cannot be removed because it is "
"needed by {pkgname3}"
msgstr ""
#: pamac/main.py:713 pamac/main.py:747
msgid "{pkgname1} conflicts with {pkgname2}"
msgstr ""
#: pamac/main.py:723
msgid ""
"{pkgname1} conflicts with {pkgname2}\n"
"None of them will be installed"
msgstr ""
#: pamac/main.py:782
msgid ""
"<b>{pkgname} is provided by {number} packages.\n"
"Please choose the one(s) you want to install:</b>"
msgstr ""
#: pamac/main.py:808
msgid "No package is selected"
msgstr ""
#: pamac/main.py:849
msgid "Nothing to do"
msgstr ""
#: pamac/main.py:1032
msgid "Pamac is already running"
msgstr ""
#: pamac/common.py:13
#, python-format
msgid "%.1f KiB"
msgstr ""
#: pamac/common.py:16
#, python-format
msgid "%.2f MiB"
msgstr ""
#: gui/manager.glade:7
msgid "Choose"
msgstr ""
#: gui/manager.glade:112
msgid "Summary"
msgstr ""
#: gui/manager.glade:256
msgid "Progress"
msgstr ""
#: gui/manager.glade:402
msgid "Package Manager"
msgstr ""
#: gui/manager.glade:492
msgid "Search"
msgstr ""
#: gui/manager.glade:587 gui/manager.glade:680
msgid "State"
msgstr ""
#: gui/manager.glade:635
msgid "Repos"
msgstr ""
#: gui/manager.glade:710
msgid "Name"
msgstr ""
#: gui/manager.glade:728
msgid "Size"
msgstr ""
#: gui/manager.glade:829
msgid "Infos"
msgstr ""
#: gui/manager.glade:889
msgid "Deps"
msgstr ""
#: gui/manager.glade:954
msgid "Details"
msgstr ""
#: gui/manager.glade:1002
msgid "Files"
msgstr ""
#: gui/updater.glade:6
msgid "Update Manager"
msgstr ""

View File

@ -1,13 +1,19 @@
#! /usr/bin/python #! /usr/bin/python
# -*-coding:utf-8-*- # -*- coding:utf-8 -*-
# i18n
import gettext
gettext.bindtextdomain('pamac', '/usr/share/locale')
gettext.textdomain('pamac')
_ = gettext.gettext
def format_size(size): def format_size(size):
KiB_size = size / 1024 KiB_size = size / 1024
if KiB_size < 1000: if KiB_size < 1000:
size_string = '%.1f KiB' % (KiB_size) size_string = _('%.1f KiB') % (KiB_size)
return size_string return size_string
else: else:
size_string = '%.2f MiB' % (KiB_size / 1024) size_string = _('%.2f MiB') % (KiB_size / 1024)
return size_string return size_string
def format_pkg_name(name): def format_pkg_name(name):

View File

@ -1,5 +1,5 @@
#! /usr/bin/python #! /usr/bin/python
# -*-coding:utf-8 -*- # -*- coding:utf-8 -*-
import io import io
import os import os

View File

@ -1,5 +1,5 @@
#! /usr/bin/python #! /usr/bin/python
# -*-coding:utf-8 -*- # -*- coding:utf-8 -*-
from gi.repository import Gtk from gi.repository import Gtk
from gi.repository.GdkPixbuf import Pixbuf from gi.repository.GdkPixbuf import Pixbuf
@ -10,7 +10,16 @@ from time import strftime, localtime
from pamac import config, common, transaction from pamac import config, common, transaction
# i18n
import gettext
import locale
locale.bindtextdomain('pamac', '/usr/share/locale')
gettext.bindtextdomain('pamac', '/usr/share/locale')
gettext.textdomain('pamac')
_ = gettext.gettext
interface = Gtk.Builder() interface = Gtk.Builder()
interface.set_translation_domain('pamac')
#interface.add_from_file('/usr/share/pamac/gui/dialogs.glade') #interface.add_from_file('/usr/share/pamac/gui/dialogs.glade')
#ErrorDialog = interface.get_object('ErrorDialog') #ErrorDialog = interface.get_object('ErrorDialog')
@ -63,7 +72,7 @@ update_bottom_label = interface.get_object('update_bottom_label')
def action_signal_handler(action): def action_signal_handler(action):
if action: if action:
progress_label.set_text(action) progress_label.set_text(action)
if ('Installing' in action) or ('Removing' in action) or ('Upgrading' in action) or ('Configuring' in action): if (_('Installing') in action) or (_('Removing') in action) or (_('Upgrading') in action) or (_('Configuring') in action):
ProgressCancelButton.set_visible(False) ProgressCancelButton.set_visible(False)
else: else:
ProgressCancelButton.set_visible(True) ProgressCancelButton.set_visible(True)
@ -100,7 +109,7 @@ current_filter = (None, None)
transaction_type = None transaction_type = None
transaction_dict = {} transaction_dict = {}
mode = None mode = None
states = ['Installed', 'Uninstalled', 'Orphans', 'To install', 'To remove'] states = [_('Installed'), _('Uninstalled'), _('Orphans'), _('To install'), _('To remove')]
for state in states: for state in states:
state_list.append([state]) state_list.append([state])
@ -119,7 +128,7 @@ def get_repos():
repos_list.clear() repos_list.clear()
for repo in transaction.handle.get_syncdbs(): for repo in transaction.handle.get_syncdbs():
repos_list.append([repo.name]) repos_list.append([repo.name])
repos_list.append(['local']) repos_list.append([_('local')])
def set_list_dict_search(*patterns): def set_list_dict_search(*patterns):
global pkg_name_list global pkg_name_list
@ -285,7 +294,7 @@ def set_list_dict_repos(repo):
def refresh_packages_list(): def refresh_packages_list():
packages_list.clear() packages_list.clear()
if not pkg_name_list: if not pkg_name_list:
packages_list.append(["No package found", False, False, False, search_icon, '', 0]) packages_list.append([_('No package found'), False, False, False, search_icon, '', 0])
else: else:
for name in pkg_name_list: for name in pkg_name_list:
if name in config.holdpkg: if name in config.holdpkg:
@ -336,56 +345,56 @@ def set_infos_list(pkg):
# fix & in url # fix & in url
url = pkg.url.replace('&', '&amp;') url = pkg.url.replace('&', '&amp;')
link_label.set_markup('<a href=\"{_url}\">{_url}</a>'.format(_url = url)) link_label.set_markup('<a href=\"{_url}\">{_url}</a>'.format(_url = url))
licenses_label.set_markup('Licenses: {}'.format(' '.join(pkg.licenses))) licenses_label.set_markup(_('Licenses') + ': {}'.format(' '.join(pkg.licenses)))
def set_deps_list(pkg, style): def set_deps_list(pkg, style):
deps_list.clear() deps_list.clear()
if pkg.depends: if pkg.depends:
deps_list.append(['Depends On:', '\n'.join(pkg.depends)]) deps_list.append([_('Depends On') + ':', '\n'.join(pkg.depends)])
if pkg.optdepends: if pkg.optdepends:
deps_list.append(['Optional Deps:', '\n'.join(pkg.optdepends)]) deps_list.append([_('Optional Deps') + ':', '\n'.join(pkg.optdepends)])
if style == 'local': if style == 'local':
if pkg.compute_requiredby(): if pkg.compute_requiredby():
deps_list.append(['Required By:', '\n'.join(pkg.compute_requiredby())]) deps_list.append([_('Required By')+':', '\n'.join(pkg.compute_requiredby())])
if pkg.provides: if pkg.provides:
details_list.append(['Provides:', ' '.join(pkg.provides)]) details_list.append([_('Provides')+':', ' '.join(pkg.provides)])
if pkg.replaces: if pkg.replaces:
details_list.append(['Replaces:', ' '.join(pkg.replaces)]) details_list.append([_('Replaces')+':', ' '.join(pkg.replaces)])
if pkg.conflicts: if pkg.conflicts:
details_list.append(['Conflicts With:', ' '.join(pkg.conflicts)]) details_list.append([_('Conflicts With')+':', ' '.join(pkg.conflicts)])
def set_details_list(pkg, style): def set_details_list(pkg, style):
details_list.clear() details_list.clear()
if style == 'sync': if style == 'sync':
details_list.append(['Repository:', pkg.db.name]) details_list.append([_('Repository')+':', pkg.db.name])
if pkg.groups: if pkg.groups:
details_list.append(['Groups:', ' '.join(pkg.groups)]) details_list.append([_('Groups')+':', ' '.join(pkg.groups)])
if style == 'sync': if style == 'sync':
details_list.append(['Compressed Size:', common.format_size(pkg.size)]) details_list.append([_('Compressed Size')+':', common.format_size(pkg.size)])
details_list.append(['Download Size:', common.format_size(pkg.download_size)]) details_list.append([_('Download Size')+':', common.format_size(pkg.download_size)])
if style == 'local': if style == 'local':
details_list.append(['Installed Size:', common.format_size(pkg.isize)]) details_list.append([_('Installed Size')+':', common.format_size(pkg.isize)])
details_list.append(['Packager:', pkg.packager]) details_list.append([_('Packager')+':', pkg.packager])
details_list.append(['Architecture:', pkg.arch]) details_list.append([('Architecture')+':', pkg.arch])
#details_list.append(['Build Date:', strftime("%a %d %b %Y %X %Z", localtime(pkg.builddate))]) #details_list.append([_('Build Date')+':', strftime("%a %d %b %Y %X %Z", localtime(pkg.builddate))])
if style == 'local': if style == 'local':
details_list.append(['Install Date:', strftime("%a %d %b %Y %X %Z", localtime(pkg.installdate))]) details_list.append([_('Install Date')+':', strftime("%a %d %b %Y %X %Z", localtime(pkg.installdate))])
if pkg.reason == pyalpm.PKG_REASON_EXPLICIT: if pkg.reason == pyalpm.PKG_REASON_EXPLICIT:
reason = 'Explicitly installed' reason = _('Explicitly installed')
elif pkg.reason == pyalpm.PKG_REASON_DEPEND: elif pkg.reason == pyalpm.PKG_REASON_DEPEND:
reason = 'Installed as a dependency for another package' reason = _('Installed as a dependency for another package')
else: else:
reason = 'N/A' reason = _('Unknown')
details_list.append(['Install Reason:', reason]) details_list.append([_('Install Reason')+':', reason])
if style == 'sync': if style == 'sync':
#details_list.append(['Install Script:', 'Yes' if pkg.has_scriptlet else 'No']) #details_list.append([_('Install Script')':', 'Yes' if pkg.has_scriptlet else 'No'])
#details_list.append(['MD5 Sum:', pkg.md5sum]) #details_list.append(['MD5 Sum:', pkg.md5sum])
#details_list.append(['SHA256 Sum:', pkg.sha256sum]) #details_list.append(['SHA256 Sum:', pkg.sha256sum])
details_list.append(['Signatures:', 'Yes' if pkg.base64_sig else 'No']) details_list.append([_('Signatures')+':', 'Yes' if pkg.base64_sig else 'No'])
if style == 'local': if style == 'local':
if len(pkg.backup) != 0: if len(pkg.backup) != 0:
#details_list.append(['Backup files:', '\n'.join(["%s %s" % (md5, file) for (file, md5) in pkg.backup])]) #details_list.append(['_(Backup files)+':', '\n'.join(["%s %s" % (md5, file) for (file, md5) in pkg.backup])])
details_list.append(['Backup files:', '\n'.join(["%s" % (file) for (file, md5) in pkg.backup])]) details_list.append([_('Backup files')+':', '\n'.join(["%s" % (file) for (file, md5) in pkg.backup])])
def set_files_list(pkg): def set_files_list(pkg):
files_list.clear() files_list.clear()
@ -395,10 +404,10 @@ def set_files_list(pkg):
def set_transaction_sum(): def set_transaction_sum():
transaction_sum.clear() transaction_sum.clear()
sum_top_label.set_markup('<big><b>Transaction Summary</b></big>') sum_top_label.set_markup(_('<big><b>Transaction Summary</b></big>'))
if transaction.to_remove: if transaction.to_remove:
transaction.to_remove = sorted(transaction.to_remove) transaction.to_remove = sorted(transaction.to_remove)
transaction_sum.append(['To remove:', transaction.to_remove[0]]) transaction_sum.append([_('To remove')+':', transaction.to_remove[0]])
i = 1 i = 1
while i < len(transaction.to_remove): while i < len(transaction.to_remove):
transaction_sum.append([' ', transaction.to_remove[i]]) transaction_sum.append([' ', transaction.to_remove[i]])
@ -409,7 +418,7 @@ def set_transaction_sum():
dsize = 0 dsize = 0
for name in transaction.to_add: for name in transaction.to_add:
dsize += transaction.syncpkgs[name].download_size dsize += transaction.syncpkgs[name].download_size
sum_bottom_label.set_markup('<b>Total download size: </b>'+common.format_size(dsize)) sum_bottom_label.set_markup(_('<b>Total download size: </b>')+common.format_size(dsize))
installed = [] installed = []
for pkg_object in config.pacman_conf.initialize_alpm().get_localdb().pkgcache: for pkg_object in config.pacman_conf.initialize_alpm().get_localdb().pkgcache:
installed.append(pkg_object.name) installed.append(pkg_object.name)
@ -418,14 +427,14 @@ def set_transaction_sum():
for name in to_remove_from_add: for name in to_remove_from_add:
transaction.to_add.remove(name) transaction.to_add.remove(name)
if transaction.to_add: if transaction.to_add:
transaction_sum.append(['To install:', transaction.to_add[0]]) transaction_sum.append([_('To install')+':', transaction.to_add[0]])
i = 1 i = 1
while i < len(transaction.to_add): while i < len(transaction.to_add):
transaction_sum.append([' ', transaction.to_add[i]]) transaction_sum.append([' ', transaction.to_add[i]])
i += 1 i += 1
if mode == 'manager': if mode == 'manager':
if transaction.to_update: if transaction.to_update:
transaction_sum.append(['To update:', transaction.to_update[0]]) transaction_sum.append([_('To update')+':', transaction.to_update[0]])
i = 1 i = 1
while i < len(transaction.to_update): while i < len(transaction.to_update):
transaction_sum.append([' ', transaction.to_update[i]]) transaction_sum.append([' ', transaction.to_update[i]])
@ -494,7 +503,7 @@ def do_refresh():
"""Sync databases like pacman -Sy""" """Sync databases like pacman -Sy"""
if transaction.t_lock is False: if transaction.t_lock is False:
transaction.t_lock = True transaction.t_lock = True
progress_label.set_text('Refreshing...') progress_label.set_text(_('Refreshing')+'...')
action_icon.set_from_file('/usr/share/pamac/icons/24x24/status/refresh-cache.png') action_icon.set_from_file('/usr/share/pamac/icons/24x24/status/refresh-cache.png')
progress_bar.set_text('') progress_bar.set_text('')
progress_bar.set_fraction(0) progress_bar.set_fraction(0)
@ -510,7 +519,7 @@ def have_updates():
if not updates: if not updates:
update_listore.append(['', '']) update_listore.append(['', ''])
update_bottom_label.set_markup('') update_bottom_label.set_markup('')
update_top_label.set_markup('<big><b>No available update </b></big>') update_top_label.set_markup(_('<big><b>Your system is up-to-date</b></big>'))
return False return False
else: else:
dsize = 0 dsize = 0
@ -518,8 +527,11 @@ def have_updates():
pkgname = pkg.name+" "+pkg.version pkgname = pkg.name+" "+pkg.version
update_listore.append([pkgname, common.format_size(pkg.size)]) update_listore.append([pkgname, common.format_size(pkg.size)])
dsize += pkg.download_size dsize += pkg.download_size
update_bottom_label.set_markup('<b>Total download size: </b>'+common.format_size(dsize)) update_bottom_label.set_markup(_('<b>Total download size: </b>')+common.format_size(dsize))
update_top_label.set_markup('<big><b>{} available updates</b></big>'.format(len(updates))) if len(updates) == 1:
update_top_label.set_markup(_('<big><b>1 available update</b></big>'))
else:
update_top_label.set_markup(_('<big><b>{number} available updates</b></big>').format(number = len(updates)))
return True return True
def do_sysupgrade(): def do_sysupgrade():
@ -581,7 +593,7 @@ def do_sysupgrade():
ConfDialog.show_all() ConfDialog.show_all()
def finalize(): def finalize():
progress_label.set_text('Preparing...') progress_label.set_text(_('Preparing')+'...')
action_icon.set_from_file('/usr/share/pamac/icons/24x24/status/setup.png') action_icon.set_from_file('/usr/share/pamac/icons/24x24/status/setup.png')
progress_bar.set_text('') progress_bar.set_text('')
progress_bar.set_fraction(0) progress_bar.set_fraction(0)
@ -678,7 +690,7 @@ def check_conflicts(mode, pkg_list):
transaction.to_remove.append(provide.name) transaction.to_remove.append(provide.name)
if warning: if warning:
warning += '\n' warning += '\n'
warning += provide.name+' will be replaced by '+pkg.name warning += _('{pkgname1} will be replaced by {pkgname2}').format(pkgname1 = provide.name, pkgname2 = pkg.name)
for conflict in pkg.conflicts: for conflict in pkg.conflicts:
provide = pyalpm.find_satisfier(transaction.localpkgs.values(), conflict) provide = pyalpm.find_satisfier(transaction.localpkgs.values(), conflict)
if provide: if provide:
@ -695,12 +707,12 @@ def check_conflicts(mode, pkg_list):
str_required += item str_required += item
if error: if error:
error += '\n' error += '\n'
error += '{} conflicts with {} but cannot be removed because it is needed by {}'.format(provide.name, pkg.name, str_required) error += _('{pkgname1} conflicts with {pkgname2} but cannot be removed because it is needed by {pkgname3}').format(pkgname1 = provide.name, pkgname2 = pkg.name, pkgname3 = str_required)
elif not provide.name in transaction.to_remove: elif not provide.name in transaction.to_remove:
transaction.to_remove.append(provide.name) transaction.to_remove.append(provide.name)
if warning: if warning:
warning += '\n' warning += '\n'
warning += pkg.name+' conflicts with '+provide.name warning += _('{pkgname1} conflicts with {pkgname2}').format(pkgname1 = pkg.name, pkgname2 = provide.name)
provide = pyalpm.find_satisfier(depends[0], conflict) provide = pyalpm.find_satisfier(depends[0], conflict)
if provide: if provide:
if not common.format_pkg_name(conflict) == pkg.name: if not common.format_pkg_name(conflict) == pkg.name:
@ -710,7 +722,7 @@ def check_conflicts(mode, pkg_list):
transaction.to_add.remove(pkg.name) transaction.to_add.remove(pkg.name)
if warning: if warning:
warning += '\n' warning += '\n'
warning += pkg.name+' conflicts with '+common.format_pkg_name(conflict)+'\nNone of them will be installed' warning += _('{pkgname1} conflicts with {pkgname2}\nNone of them will be installed').format(pkgname1 = pkg.name, pkgname2 = common.format_pkg_name(conflict))
i += 1 i += 1
for pkg in transaction.localpkgs.values(): for pkg in transaction.localpkgs.values():
for conflict in pkg.conflicts: for conflict in pkg.conflicts:
@ -729,12 +741,12 @@ def check_conflicts(mode, pkg_list):
str_required += item str_required += item
if error: if error:
error += '\n' error += '\n'
error += '{} conflicts with {} but cannot be removed because it is needed by {}'.format(provide.name, pkg.name, str_required) error += _('{pkgname1} conflicts with {pkgname2} but cannot be removed because it is needed by {pkgname3}').format(pkgname1 = provide.name, pkgname2 = pkg.name, pkgname3 = str_required)
elif not provide.name in transaction.to_remove: elif not provide.name in transaction.to_remove:
transaction.to_remove.append(pkg.name) transaction.to_remove.append(pkg.name)
if warning: if warning:
warning += '\n' warning += '\n'
warning += provide.name+' conflicts with '+pkg.name warning += _('{pkgname1} conflicts with {pkgname2}').format(pkgname1= provide.name, pkgname2 = pkg.name)
if mode == 'updating': if mode == 'updating':
for pkg in transaction.syncpkgs.values(): for pkg in transaction.syncpkgs.values():
for replace in pkg.replaces: for replace in pkg.replaces:
@ -748,7 +760,7 @@ def check_conflicts(mode, pkg_list):
transaction.to_remove.append(provide.name) transaction.to_remove.append(provide.name)
if warning: if warning:
warning += '\n' warning += '\n'
warning += provide.name+' will be replaced by '+pkg.name warning += _('{pkgname1} will be replaced by {pkgname2}').format(pkgname1 = provide.name, pkgname2 = pkg.name)
if not pkg.name in transaction.to_add: if not pkg.name in transaction.to_add:
transaction.to_add.append(pkg.name) transaction.to_add.append(pkg.name)
print('check result:', 'to add:', transaction.to_add, 'to remove:', transaction.to_remove) print('check result:', 'to add:', transaction.to_add, 'to remove:', transaction.to_remove)
@ -769,7 +781,7 @@ def choose_provides(name):
if not pkg.name in provides.keys(): if not pkg.name in provides.keys():
provides[pkg.name] = pkg provides[pkg.name] = pkg
if provides: if provides:
choose_label.set_markup('<b>{} is provided by {} packages.\nPlease choose the one(s) you want to install:</b>'.format(name,str(len(provides.keys())))) choose_label.set_markup(_('<b>{pkgname} is provided by {number} packages.\nPlease choose the one(s) you want to install:</b>').format(pkgname = name, number = str(len(provides.keys()))))
choose_list.clear() choose_list.clear()
for name in provides.keys(): for name in provides.keys():
if transaction.handle.get_localdb().get_pkg(name): if transaction.handle.get_localdb().get_pkg(name):
@ -795,7 +807,7 @@ class Handler:
def on_Manager_ValidButton_clicked(self, *arg): def on_Manager_ValidButton_clicked(self, *arg):
if not transaction_dict: if not transaction_dict:
transaction.ErrorDialog.format_secondary_text("No package is selected") transaction.ErrorDialog.format_secondary_text(_('No package is selected'))
response = transaction.ErrorDialog.run() response = transaction.ErrorDialog.run()
if response: if response:
transaction.ErrorDialog.hide() transaction.ErrorDialog.hide()
@ -836,7 +848,7 @@ class Handler:
set_transaction_sum() set_transaction_sum()
ConfDialog.show_all() ConfDialog.show_all()
else: else:
transaction.WarningDialog.format_secondary_text('Nothing to do') transaction.WarningDialog.format_secondary_text(_('Nothing to do'))
response = transaction.WarningDialog.run() response = transaction.WarningDialog.run()
if response: if response:
transaction.WarningDialog.hide() transaction.WarningDialog.hide()
@ -910,15 +922,15 @@ class Handler:
global current_filter global current_filter
liste, line = state_selection.get_selected() liste, line = state_selection.get_selected()
if line is not None: if line is not None:
if state_list[line][0] == 'Installed': if state_list[line][0] == _('Installed'):
current_filter = ('installed', None) current_filter = ('installed', None)
if state_list[line][0] == 'Uninstalled': if state_list[line][0] == _('Uninstalled'):
current_filter = ('uninstalled', None) current_filter = ('uninstalled', None)
if state_list[line][0] == 'Orphans': if state_list[line][0] == _('Orphans'):
current_filter = ('orphans', None) current_filter = ('orphans', None)
if state_list[line][0] == 'To install': if state_list[line][0] == _('To install'):
current_filter = ('to_install', None) current_filter = ('to_install', None)
if state_list[line][0] == 'To remove': if state_list[line][0] == _('To remove'):
current_filter = ('to_remove', None) current_filter = ('to_remove', None)
set_packages_list() set_packages_list()
@ -926,7 +938,7 @@ class Handler:
global current_filter global current_filter
liste, line = repos_selection.get_selected() liste, line = repos_selection.get_selected()
if line is not None: if line is not None:
if repos_list[line][0] == 'local': if repos_list[line][0] == _('local'):
current_filter = ('local', None) current_filter = ('local', None)
else: else:
current_filter = ('repo', repos_list[line][0]) current_filter = ('repo', repos_list[line][0])
@ -1019,7 +1031,7 @@ class Handler:
def main(_mode): def main(_mode):
if common.pid_file_exists(): if common.pid_file_exists():
transaction.ErrorDialog.format_secondary_text('Another instance of Pamac is running') transaction.ErrorDialog.format_secondary_text(_('Pamac is already running'))
response = transaction.ErrorDialog.run() response = transaction.ErrorDialog.run()
if response: if response:
transaction.ErrorDialog.hide() transaction.ErrorDialog.hide()
@ -1035,7 +1047,7 @@ def main(_mode):
if mode == 'manager': if mode == 'manager':
ManagerWindow.show_all() ManagerWindow.show_all()
if mode == 'updater': if mode == 'updater':
update_top_label.set_markup('<big><b>Available updates</b></big>') update_top_label.set_markup(_('<big><b>Your system is up-to-date</b></big>'))
update_bottom_label.set_markup('') update_bottom_label.set_markup('')
UpdaterWindow.show_all() UpdaterWindow.show_all()
while Gtk.events_pending(): while Gtk.events_pending():

View File

@ -1,5 +1,5 @@
#! /usr/bin/python #! /usr/bin/python
# -*-coding:utf-8-*- # -*- coding:utf-8 -*-
from gi.repository import Gtk from gi.repository import Gtk
@ -63,7 +63,6 @@ Release = proxy.get_dbus_method('Release','org.manjaro.pamac')
StopDaemon = proxy.get_dbus_method('StopDaemon','org.manjaro.pamac') StopDaemon = proxy.get_dbus_method('StopDaemon','org.manjaro.pamac')
def init_transaction(**options): def init_transaction(**options):
"Transaction initialization"
global t_lock global t_lock
error = Init(dbus.Dictionary(options, signature='sb')) error = Init(dbus.Dictionary(options, signature='sb'))
if not error: if not error:

345
po/fr.po Normal file
View File

@ -0,0 +1,345 @@
# Translation of Pamac.
# Copyright (C) 2007-2012 Free Software Foundation, Inc.
# This file is distributed under the same license as the Pamac package.
# Guillaume Benoit <guillaume@manjaro.org>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: pamac\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-03-31 18:55+0200\n"
"PO-Revision-Date: 2013-03-30 15:18+0100\n"
"Last-Translator: <guillaume@manjaro.org>\n"
"Language-Team: French\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: pamac-daemon.py:30 pamac/main.py:594
msgid "Preparing"
msgstr "Préparation"
#: pamac-daemon.py:69
msgid "Checking dependencies"
msgstr "Vérification des dépendances"
#: pamac-daemon.py:72
msgid "Checking file conflicts"
msgstr "Analyse des conflits entre fichiers"
#: pamac-daemon.py:75
msgid "Resolving dependencies"
msgstr "Résolution des dépendances"
#: pamac-daemon.py:78
msgid "Checking inter conflicts"
msgstr "Recherche des conflits entre paquets"
#: pamac-daemon.py:81 pamac/main.py:73
msgid "Installing"
msgstr "Installation"
#: pamac-daemon.py:88 pamac/main.py:73
msgid "Removing"
msgstr "Désinstallation"
#: pamac-daemon.py:95 pamac/main.py:73
msgid "Upgrading"
msgstr "Mise à jour"
#: pamac-daemon.py:102
msgid "Checking integrity"
msgstr "Vérification de l'intégrité des paquets"
#: pamac-daemon.py:106
msgid "Loading packages files"
msgstr "Chargement des fichiers des paquets"
#: pamac-daemon.py:110 pamac/main.py:73
msgid "Configuring"
msgstr "Configuration"
#: pamac-daemon.py:162
msgid "Downloading {size}"
msgstr "Télécharge {size}"
#: pamac-daemon.py:167 pamac/main.py:504
msgid "Refreshing"
msgstr "Actualisation"
#: pamac-daemon.py:270 pamac-daemon.py:378 pamac-daemon.py:386
#: pamac-daemon.py:408
msgid "Authentication failed"
msgstr "Authentification échoué"
#: pamac-daemon.py:374
msgid "Transaction successfully finished"
msgstr "Transaction terminé avec succès"
#: pamac-tray.py:22
msgid "{number} available updates"
msgstr "{number} mises à jour disponibles"
#: pamac-tray.py:23
msgid "1 available update"
msgstr "1 mise à jour disponible"
#: pamac-tray.py:25
msgid "Your system is up-to-date"
msgstr "Votre système est à jour"
#: pamac-tray.py:33
msgid "Install/Check for updates"
msgstr "Installer/Vérifier les mises à jour"
#: pamac-tray.py:36
msgid "Run pamac-manager"
msgstr "Exécuter pamac-manager"
#: pamac-tray.py:39
msgid "Quit"
msgstr "Quitter"
#: pamac/main.py:110 pamac/main.py:923
msgid "Installed"
msgstr "Installé"
#: pamac/main.py:110 pamac/main.py:925
msgid "Uninstalled"
msgstr "Non installé"
#: pamac/main.py:110 pamac/main.py:927
msgid "Orphans"
msgstr "Orphelins"
#: pamac/main.py:110 pamac/main.py:428 pamac/main.py:929
msgid "To install"
msgstr "A installer"
#: pamac/main.py:110 pamac/main.py:408 pamac/main.py:931
msgid "To remove"
msgstr "A désinstaller"
#: pamac/main.py:129 pamac/main.py:939
msgid "local"
msgstr "locaux"
#: pamac/main.py:295
msgid "No package found"
msgstr "Aucun paquet trouvé"
#: pamac/main.py:346
msgid "Licenses"
msgstr "Licenses"
#: pamac/main.py:351
msgid "Depends On"
msgstr "Dépend de"
#: pamac/main.py:353
msgid "Optional Deps"
msgstr "Dépendances opt."
#: pamac/main.py:356
msgid "Required By"
msgstr "Requis par"
#: pamac/main.py:358
msgid "Provides"
msgstr "Fourni"
#: pamac/main.py:360
msgid "Replaces"
msgstr "Remplace"
#: pamac/main.py:362
msgid "Conflicts With"
msgstr "Est conflit avec"
#: pamac/main.py:367
msgid "Repository"
msgstr "Dépôt"
#: pamac/main.py:369 gui/manager.glade:539
msgid "Groups"
msgstr "Groupes"
#: pamac/main.py:371
msgid "Compressed Size"
msgstr "Taille compressée"
#: pamac/main.py:372
msgid "Download Size"
msgstr "Taille du Téléchargement"
#: pamac/main.py:374
msgid "Installed Size"
msgstr "Taille installé"
#: pamac/main.py:375
msgid "Packager"
msgstr "Paqueteur"
#: pamac/main.py:379
msgid "Install Date"
msgstr "Installé le"
#: pamac/main.py:381
msgid "Explicitly installed"
msgstr "Explicitement installé"
#: pamac/main.py:383
msgid "Installed as a dependency for another package"
msgstr "Installé comme dépendance d'un autre paquet"
#: pamac/main.py:385
msgid "Unknown"
msgstr "Inconnu"
#: pamac/main.py:386
msgid "Install Reason"
msgstr "Motif d'installation"
#: pamac/main.py:391
msgid "Signatures"
msgstr "Signatures"
#: pamac/main.py:395
msgid "Backup files"
msgstr "Fichiers sauvegardés"
#: pamac/main.py:405
msgid "<big><b>Transaction Summary</b></big>"
msgstr "<big><b>Résumé de la transaction</b></big>"
#: pamac/main.py:419 pamac/main.py:528
msgid "<b>Total download size: </b>"
msgstr "<b>Taille totale du téléchargement: </b>"
#: pamac/main.py:435
msgid "To update"
msgstr "A mettre à jour"
#: pamac/main.py:520 pamac/main.py:1048
msgid "<big><b>Your system is up-to-date</b></big>"
msgstr "<big><b>Votre système est à jour</b></big>"
#: pamac/main.py:530
msgid "<big><b>1 available update</b></big>"
msgstr "<big><b>1 mise à jour disponible</b></big>"
#: pamac/main.py:532
msgid "<big><b>{number} available updates</b></big>"
msgstr "<big><b>{number} mises à jour disponibles</b></big>"
#: pamac/main.py:691 pamac/main.py:761
msgid "{pkgname1} will be replaced by {pkgname2}"
msgstr "{pkgname1} sera remplacé par {pkgname2}"
#: pamac/main.py:708 pamac/main.py:742
msgid ""
"{pkgname1} conflicts with {pkgname2} but cannot be removed because it is "
"needed by {pkgname3}"
msgstr ""
"{pkgname1} est en conflit avec {pkgname2} mais ne peut pas être désinstaller "
"car il est requis par {pkgname3}"
#: pamac/main.py:713 pamac/main.py:747
msgid "{pkgname1} conflicts with {pkgname2}"
msgstr "{pkgname1} est en conflit avec {pkgname2}"
#: pamac/main.py:723
msgid ""
"{pkgname1} conflicts with {pkgname2}\n"
"None of them will be installed"
msgstr ""
"{pkgname1} est en conflit avec {pkgname2}}\n"
"Aucun d'entre eux ne sera installé"
#: pamac/main.py:782
msgid ""
"<b>{pkgname} is provided by {number} packages.\n"
"Please choose the one(s) you want to install:</b>"
msgstr ""
"<b>{pkgname} est fourni par {number} paquets.\n"
"Choisir choose the one(s) you want to install:</b>"
#: pamac/main.py:808
msgid "No package is selected"
msgstr "Aucun paquet n'est sélectionné"
#: pamac/main.py:849
msgid "Nothing to do"
msgstr "Rien à faire"
#: pamac/main.py:1032
msgid "Pamac is already running"
msgstr "Pamac est déjà en cours d'éxécution"
#: pamac/common.py:13
#, python-format
msgid "%.1f KiB"
msgstr "%.1f Ko"
#: pamac/common.py:16
#, python-format
msgid "%.2f MiB"
msgstr "%.2f Mo"
#: gui/manager.glade:7
msgid "Choose"
msgstr "Choisir"
#: gui/manager.glade:112
msgid "Summary"
msgstr "Résumé"
#: gui/manager.glade:256
msgid "Progress"
msgstr "Progression"
#: gui/manager.glade:402
msgid "Package Manager"
msgstr "Gestionnaire de paquets"
#: gui/manager.glade:492
msgid "Search"
msgstr "Rechercher"
#: gui/manager.glade:587 gui/manager.glade:680
msgid "State"
msgstr "Etat"
#: gui/manager.glade:635
msgid "Repos"
msgstr "Dépôts"
#: gui/manager.glade:710
msgid "Name"
msgstr "Nom"
#: gui/manager.glade:728
msgid "Size"
msgstr "Taille"
#: gui/manager.glade:829
msgid "Infos"
msgstr "Infos"
#: gui/manager.glade:889
msgid "Deps"
msgstr "Dépendances"
#: gui/manager.glade:954
msgid "Details"
msgstr "Détails"
#: gui/manager.glade:1002
msgid "Files"
msgstr "Fichiers"
#: gui/updater.glade:6
msgid "Update Manager"
msgstr "Gestionnaire de mise à jour"

View File

@ -1,78 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-03-29 16:23+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: gui/manager.glade:7
msgid "Choose"
msgstr ""
#: gui/manager.glade:889
msgid "Deps"
msgstr ""
#: gui/manager.glade:954
msgid "Details"
msgstr ""
#: gui/manager.glade:1002
msgid "Files"
msgstr ""
#: gui/manager.glade:539
msgid "Groups"
msgstr ""
#: gui/manager.glade:829
msgid "Infos"
msgstr ""
#: gui/manager.glade:680
msgid "Installed"
msgstr ""
#: gui/manager.glade:710
msgid "Name"
msgstr ""
#: gui/manager.glade:402
msgid "Package Manager"
msgstr ""
#: gui/manager.glade:256
msgid "Progress"
msgstr ""
#: gui/manager.glade:635
msgid "Repos"
msgstr ""
#: gui/manager.glade:492
msgid "Search"
msgstr ""
#: gui/manager.glade:728
msgid "Size"
msgstr ""
#: gui/manager.glade:587
msgid "State"
msgstr ""
#: gui/manager.glade:112
msgid "Summary"
msgstr ""

View File

@ -1,22 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-03-30 05:46+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: gui/updater.glade:6
msgid "Update Manager"
msgstr ""

18
pot_head Normal file
View File

@ -0,0 +1,18 @@
# Translation of Pamac.
# Copyright (C) 2007-2012 Free Software Foundation, Inc.
# This file is distributed under the same license as the Pamac package.
# Guillaume Benoit <guillaume@manjaro.org>, 2013.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: pamac\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-03-30 15:09+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"