On 02/11/2014 10:14 AM, Aline Manera wrote:
On 02/11/2014 01:08 AM, Leonardo Augusto Guimarães Garcia wrote:
> On 02/09/2014 08:47 PM, Aline Manera wrote:
>> From: Aline Manera <alinefm(a)br.ibm.com>
>>
>> src/kimchi/i18n.py and plugins/sample/i18n.py contain all messages used
>> in backend to report error to the user
>>
>> Signed-off-by: Aline Manera <alinefm(a)br.ibm.com>
>> ---
>> plugins/sample/i18n.py | 15 +++++
>> src/kimchi/i18n.py | 144
>> ++++++++++++++++++++++++++++++++++++++++++++++++
>> 2 files changed, 159 insertions(+)
>>
>> diff --git a/plugins/sample/i18n.py b/plugins/sample/i18n.py
>> index 204460c..b4cd5cb 100644
>> --- a/plugins/sample/i18n.py
>> +++ b/plugins/sample/i18n.py
>> @@ -26,4 +26,19 @@ _ = gettext.gettext
>>
>>
>> messages = {
>> + "SPAPI0001E": _("Unkown parameter specified
%(value)s"),
>> + "SPAPI0002E": _("The specified value %(value)s is not a
>> positive number"),
>> +
>> + "SPCIRC0001E": _("Circle %(name)s already exists"),
>> + "SPCIRC0002E": _("Circle %(name)s does not exist"),
>> + "SPCIRC0003E": _("Specify name and radius to create a
Circle"),
>> + "SPCIRC0004E": _("Circle name must be a string"),
>> + "SPCIRC0005E": _("Circle radius must be a positive
number"),
>> +
>> + "SPRET0001E": _("Rectangle %(name)s already exists"),
>> + "SPRET0002E": _("Rectangle %(name)s does not exist"),
>> + "SPRET0003E": _("Specify name, length and width to create a
>> Rectangle"),
>> + "SPRET0004E": _("Rectangle name must be a string"),
>> + "SPRET0005E": _("Rectangle length must be a positive
number"),
>> + "SPRET0006E": _("Rectangle width must be a positive
number"),
> From where does these key values come? Are they just randomly chosen?
> Randomly or not, there should be a comment on how they were chosen in
> the commit message.
I have explained about them on RFC.
But of course, it needs to be in commit message. I will add it on V2.
> Also, IIRC, I heard that we were using the English version of the
> message as the key instead of these crypt keys. Has this changed?
There are 2 different things - the code and the key.
This file is built like:
<code>: _(<key>)
The key is an English text which represents the text to be translated
and recognized by gettext.
The code I am introducing now so we can identify the error message
independent of the language
used by the user.
For example, an user running Kimchi in Japanese can report a bug with
the errors messages he got
and we can identify the error by the code as we probably don't know
Japanese.
The error message will be shown to the user like:
<code>: <translated-message>
For example:
KCHASYNC0001E: Datastore is not initiated in the model object.
Ok, understood,
thanks. I think this needs to be in the commit message
as well.
Best regards,
Leonardo Garcia
> Best regards,
>
> Leonardo Garcia
>> }
>> diff --git a/src/kimchi/i18n.py b/src/kimchi/i18n.py
>> index 204460c..1a8fb5b 100644
>> --- a/src/kimchi/i18n.py
>> +++ b/src/kimchi/i18n.py
>> @@ -26,4 +26,148 @@ _ = gettext.gettext
>>
>>
>> messages = {
>> + "KCHAPI0001E": _("Unkown parameter specified
%(value)s"),
>> +
>> + "KCHASYNC0001E": _("Datastore is not initiated in the model
>> object."),
>> +
>> + "KCHAUTH0001E": _("Authentication failed for user
'%(userid)s'.
>> [Error code: %(code)s]"),
>> +
>> + "KCHDISKS0001E": _("Error while getting block devices.
Details:
>> %(err)s"),
>> + "KCHDISKS0002E": _("Error while getting block device
>> information for %(device)s."),
>> +
>> + "KCHDL0001E": _("Unable to find distro file:
%(filename)s"),
>> + "KCHDL0002E": _("Unable to parse distro file:
%(filename)s.Make
>> sure, it is a json file."),
>> +
>> + "KCHISCSI0001E": _("Unable to login to iSCSI host target
>> %(portal)s. Details: %(err)s"),
>> + "KCHISCSI0002E": _("Unable to login to iSCSI host %(host)s
>> target %(target)s"),
>> +
>> + "KCHISO0001E": _("Unable to find ISO file ISO
%(filename)s"),
>> + "KCHISO0002E": _("The ISO file %(filename)s is not
bootable"),
>> + "KCHISO0003E": _("The ISO file %(filename)s does not have a
>> valid El Torito boot record"),
>> + "KCHISO0004E": _("Invalid El Torito validation entry in ISO
>> %(filename)s"),
>> + "KCHISO0005E": _("Invalid El Torito boot indicator in ISO
>> %(filename)s"),
>> + "KCHISO0006E": _("Unexpected volume type for primary volume
in
>> ISO %(filename)s"),
>> + "KCHISO0007E": _("Bad format while reading volume descriptor
in
>> ISO %(filename)s"),
>> +
>> + "KCHVM0001E": _("Virtual machine $(name)s already
exists"),
>> + "KCHVM0002E": _("Virtual machine %(name)s does not
exist"),
>> + "KCHVM0003E": _("Unable to rename virtual machine %(name)s.
The
>> name %(new_name)s already exists or it is not powered off."),
>> + "KCHVM0004E": _("Unable to retrieve screenshot for stopped
>> virtual machine %(name)s"),
>> + "KCHVM0005E": _("Remote ISO image is not supported by this
>> server."),
>> + "KCHVM0006E": _("Screenshot not supported for virtual
machine
>> %(name)s"),
>> + "KCHVM0007E": _("Unable to create virtual machine %(name)s.
>> Details: %(err)s"),
>> + "KCHVM0008E": _("Unable to rename virtual machine %(name)s.
>> Details: %(err)s"),
>> + "KCHVM0009E": _("Unable to retrieve virtual machine
%(name)s.
>> Details: %(err)"),
>> + "KCHVM0010E": _("Unable to connect to powered off machine
>> %(name)s."),
>> + "KCHVM0011E": _("Virtual machine name must be a
string"),
>> + "KCHVM0012E": _("Invalid template URI: %(value)s specified
for
>> virtual machine"),
>> + "KCHVM0013E": _("Invalid storage pool URI: %(value)s
specified
>> for virtual machine"),
>> + "KCHVM0014E": _("Supported virtual machine graphics are
spice
>> or vnc"),
>> + "KCHVM0015E": _("Graphics address to listen on must be IPv4
or
>> IPv6"),
>> + "KCHVM0016E": _("Specify a template to create a Virtual
Machine
>> from"),
>> +
>> + "KCHVMIF0001E": _("Interface %(iface)s does not exist in
>> virtual machine %(name)s"),
>> + "KCHVMIF0002E": _("Network %(network)s specified for virtual
>> machine %(name)s does not exist"),
>> + "KCHVMIF0003E": _("Do not support guest interface hot plug
>> attachment"),
>> + "KCHVMIF0004E": _("Supported virtual machine interfaces type
is
>> only network"),
>> + "KCHVMIF0005E": _("Network name for virtual machine
interface
>> must be a string"),
>> + "KCHVMIF0006E": _("Invalid network model card specified for
>> virtual machine interface"),
>> + "KCHVMIF0007E": _("Specify type and network to add a new
>> virtual machine interface"),
>> +
>> + "KCHTMPL0001E": _("Template %(name)s already exists"),
>> + "KCHTMPL0002E": _("Template %(name)s does not exist"),
>> + "KCHTMPL0003E": _("Network '%(network)s' specified
for template
>> %(template)s does not exist"),
>> + "KCHTMPL0004E": _("Storage Pool %(pool)s specified for
template
>> %(template)s does not exist"),
>> + "KCHTMPL0005E": _("Storage Pool %(pool)s specified for
template
>> %(template)s is not active"),
>> + "KCHTMPL0006E": _("Invalid parameter '%(param)s'
specified for
>> cdrom."),
>> + "KCHTMPL0007E": _("Network %(network)s specified for
template
>> %(template)s is not active"),
>> + "KCHTMPL0008E": _("Template name must be a string"),
>> + "KCHTMPL0009E": _("Template icon must be a path to the
image"),
>> + "KCHTMPL0010E": _("Template distribution must be a
string"),
>> + "KCHTMPL0011E": _("Template distribution version must be a
>> string"),
>> + "KCHTMPL0012E": _("The number of CPUs must be a
integer"),
>> + "KCHTMPL0013E": _("Amount of memory (MB) must be an integer
>> greater than 512"),
>> + "KCHTMPL0014E": _("Template CDROM must be a local or remote
ISO
>> file"),
>> + "KCHTMPL0015E": _("Invalid storage pool URI %(value)s
specified
>> for Template"),
>> + "KCHTMPL0016E": _("Specify an ISO image as CDROM to create a
>> Template"),
>> + "KCHTMPL0017E": _("All networks for the Template must be
>> specified in a list."),
>> +
>> + "KCHPOOL0001E": _("Storage Pool %(name)s already
exists"),
>> + "KCHPOOL0002E": _("Storage Pool %(name)s does not
exist"),
>> + "KCHPOOL0003E": _("Autostart flag must be true or
false"),
>> + "KCHPOOL0004E": _("Specify %(item)s in order to create the
>> Storage Pool %(name)s"),
>> + "KCHPOOL0005E": _("Unable to delete active Storage Pool
>> %(name)s"),
>> + "KCHPOOL0006E": _("Unable to list Storage Pools. Details:
>> %(err)s"),
>> + "KCHPOOL0007E": _("Unable to create Storage Pool %(name)s.
>> Details: %(err)s"),
>> + "KCHPOOL0008E": _("Unable to get number of Storage Volumes
in
>> Storage Pool %(name)s. Details: %(err)s"),
>> + "KCHPOOL0009E": _("Unable to activate Storage Pool %(name)s.
>> Details: %(err)s"),
>> + "KCHPOOL0010E": _("Unable to deactivate Storage Pool
%(name)s.
>> Details: %(err)s"),
>> + "KCHPOOL0011E": _("Unable to delete Storage Pool %(name)s.
>> Details: %(err)s"),
>> + "KCHPOOL0012E": _("Unable to create NFS Pool as export path
>> %(path)s may block during mount"),
>> + "KCHPOOL0013E": _("Unable to create NFS Pool as export path
>> %(path)s mount failed"),
>> + "KCHPOOL0014E": _("Unsupported Storage Pool type:
%(type)s"),
>> + "KCHPOOL0015E": _("Error while getting xml for Storage Pool
>> %(pool)s"),
>> + "KCHPOOL0016E": _("Storage Pool name must be a
string"),
>> + "KCHPOOL0017E": _("Supported Storage Pool types are dir,
netfs,
>> logical and kimchi-iso"),
>> + "KCHPOOL0018E": _("Storage Pool path must be a
string"),
>> + "KCHPOOL0019E": _("Storage Pool host must be a IP or
hostname"),
>> + "KCHPOOL0020E": _("Storage Pool devices must be the full
path
>> to the block device"),
>> + "KCHPOOL0021E": _("Storage Pool devices parameter must be a
>> list"),
>> + "KCHPOOL0022E": _("Target IQN of an iSCSI pool must be a
string"),
>> + "KCHPOOL0023E": _("Port of a remote storage server must be
an
>> integer between 1 and 65535"),
>> + "KCHPOOL0024E": _("Login username of the iSCSI target must be
a
>> string"),
>> + "KCHPOOL0025E": _("Login password of the iSCSI target must be
a
>> string"),
>> + "KCHPOOL0026E": _("Specify name and type to create a Storage
>> Pool"),
>> +
>> + "KCHVOL0001E": _("Storage Volume %(name)s already
exists"),
>> + "KCHVOL0002E": _("Storage Volume %(name)s does not exist in
>> Storage Pool %(pool)s"),
>> + "KCHVOL0003E": _("Unable to create Storage Volume %(volume)s
>> becuase Storage Pool %(pool)s is not active"),
>> + "KCHVOL0004E": _("Specify %(item)s in order to create
Storage
>> Volume %(volume)s"),
>> + "KCHVOL0005E": _("Unable to retrieve Storage Volume
%(volume)s
>> because Storage Pool %(pool)s is not active"),
>> + "KCHVOL0006E": _("Unable to list Storage Volumes because
>> Storage Pool %(pool)s is not active"),
>> + "KCHVOL0007E": _("Unable to create Storage Volume %(name)s
in
>> Storage Pool %(pool)s. Details: %(err)s"),
>> + "KCHVOL0008E": _("Unable to list Storage Volumes in Storage
>> Pool %(pool)s. Details: %(err)s"),
>> + "KCHVOL0009E": _("Unable to wipe Storage Volumes %(name)s.
>> Details: %(err)s"),
>> + "KCHVOL0010E": _("Unable to delete Storage Volume %(name)s.
>> Details: %(err)s"),
>> + "KCHVOL0011E": _("Unable to resize Storage Volume %(name)s.
>> Details: %(err)s"),
>> +
>> + "KCHIFACE0001E": _("Interface %(name)s does not
exist"),
>> +
>> + "KCHNET0001E": _("Network %(name)s already exists"),
>> + "KCHNET0002E": _("Network %(name)s does not exist"),
>> + "KCHNET0003E": _("Subnet %(subnet)s specified for network
>> %(network)s is not valid."),
>> + "KCHNET0004E": _("Specify a network interface to create
bridged
>> network %(name)s"),
>> + "KCHNET0005E": _("Unable to delete active network
%(name)s"),
>> + "KCHNET0006E": _("Interface %(iface)s specified for network
>> %(network)s is already in use"),
>> + "KCHNET0007E": _("Interface should be bare nic, bonding or
>> bridge device."),
>> + "KCHNET0008E": _("Unable to create network %(name)s.
Details:
>> %(err)s"),
>> + "KCHNET0009E": _("Unable to find a free IP address for
network
>> '%(name)s'"),
>> + "KCHNET0010E": _("Unable to create VLAN tagged bridge using
>> interface %(iface)s. Details: %(err)"),
>> + "KCHNET0011E": _("Network name must be a string"),
>> + "KCHNET0012E": _("Supported network types are isolated, nat
and
>> bridge"),
>> + "KCHNET0013E": _("Network subnet must be a string with ip
>> address and prefix or netmask"),
>> + "KCHNET0014E": _("Network interface must be a string"),
>> + "KCHNET0015E": _("Network VLAN ID must be an integer between
1
>> and 4094"),
>> + "KCHNET0016E": _("Specify name and type to create a
Network"),
>> +
>> + "KCHDR0001E": _("Debug report %(name)s does not
exist"),
>> + "KCHDR0002E": _("Debug report tool not found in
system"),
>> + "KCHDR0003E": _("Unable to create debug report %(name)s.
>> Details: %(err)s."),
>> + "KCHDR0004E": _("Can not find generated debug report named
>> %(name)s"),
>> + "KCHDR0005E": _("Unable to generate debug report %(name)s.
>> Details: %(err)s"),
>> +
>> + "KCHSR0001E": _("Storage server %(server)s was not used by
>> Kimchi"),
>> +
>> + "KCHDISTRO0001E": _("Distro '%(name)s' does not
exist"),
>> +
>> + "KCHPART0001E": _("Partition %(name)s does not exist in the
>> host"),
>> +
>> + "KCHHOST0001E": _("Unable to shutdown host machine as there
are
>> running virtual machines"),
>> + "KCHHOST0002E": _("Unable to reboot host machine as there
are
>> running virtual machines"),
>> +
>> + "KCHOBJST0001E": _("Unable to find %(item)s in
datastore"),
>> +
>> + "KCHUTILS0001E": _("Invalid URI %(uri)s"),
>> + "KCHUTILS0002E": _("Timeout while running command
'%(cmd)s'
>> after %(seconds)s seconds"),
>> + "KCHUTILS0003E": _("Unable to choose a virutal machine
name"),
>> }