6926: display genitive/nominative months as needed

First proof of concept, fixing the original bug for Russian.
Added gramps/gen/datehandler/_datestrings.py, to hold
all the localized strings, with genitive/nominative
context as appropriate.

Remaining TODO:
1) other languages
2) expand the localized string into RE-style
concat via |, so that displayer uses the 1st instance,
and the parser uses the whole RE. Write the corresponding _().
3) same with short names as with long names
4) harmonize with _grampslocale code reading the names from
elsewhere for Julian/Gregorian months
5) expand to other calendars (non-Julian/non-Gregorian)
6) obsolete the public attributes in dd and replace with accessors

svn: r23173
This commit is contained in:
Vassilii Khachaturov 2013-09-20 12:33:00 +00:00
parent 45f9ea5e6d
commit 6eebd80dfc
13 changed files with 608 additions and 133 deletions

View File

@ -36,6 +36,7 @@ _ = glocale.translation.sgettext
# import prerequisites for localized handlers
from ._datehandler import (LANG, LANG_SHORT, LANG_TO_PARSER, LANG_TO_DISPLAY,
register_datehandler)
from . import _datestrings
# Import all the localized handlers
from . import _date_bg

View File

@ -238,10 +238,6 @@ class DateDisplayRU(DateDisplay):
"""
Russian language date display class.
"""
long_months = ( "", "января", "февраля", "марта", "апреля", "мая",
"июня", "июля", "августа", "сентября", "октября",
"ноября", "декабря" )
short_months = ( "", "янв", "фев", "мар", "апр", "мая", "июн",
"июл", "авг", "сен", "окт", "ноя", "дек" )

View File

@ -41,6 +41,7 @@ log = logging.getLogger(".DateDisplay")
#-------------------------------------------------------------------------
from ..lib.date import Date
from . import _grampslocale
from ._datestrings import DateStrings
#-------------------------------------------------------------------------
#
@ -51,9 +52,18 @@ class DateDisplay(object):
"""
Base date display class.
"""
long_months = ( "", "January", "February", "March", "April", "May",
"June", "July", "August", "September", "October",
"November", "December" )
# compatibility definition, to be removed when
# long_months no longer is used directly...
long_months = DateStrings.long_months_genitive
# TODO do we need multiple languages active at the same time?
# if so, we'd need to have an instance of localized date strings
# per date displayer, instead of the following global retrieval
def get_long_month_nom(self, month):
return DateStrings.long_months_nominative[month]
def get_long_month_gen(self, month):
return DateStrings.long_months_genitive[month]
short_months = ( "", "Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec" )

View File

@ -0,0 +1,90 @@
# -*- coding: utf-8 -*-
#
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2004-2006 Donald N. Allingham
# Copyright (C) 2013 Vassilii Khachaturov
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# $Id$
"""
U.S. English date strings for display and parsing.
"""
from __future__ import print_function, unicode_literals
#-------------------------------------------------------------------------
#
# set up logging
#
#-------------------------------------------------------------------------
import logging
log = logging.getLogger(".DateStrings")
#-------------------------------------------------------------------------
#
# GRAMPS modules
#
#-------------------------------------------------------------------------
if __name__ == '__main__':
_ = lambda x: x
else:
from gramps.gen.const import GRAMPS_LOCALE as glocale
_ = lambda x: glocale.translation.sgettext(x)
#-------------------------------------------------------------------------
#
# DateStrings
#
#-------------------------------------------------------------------------
class DateStrings(object):
"""
Base date display class.
"""
long_months_genitive = ( "",
_("genitive||January"),
_("genitive||February"),
_("genitive||March"),
_("genitive||April"),
_("genitive||May"),
_("genitive||June"),
_("genitive||July"),
_("genitive||August"),
_("genitive||September"),
_("genitive||October"),
_("genitive||November"),
_("genitive||December") )
long_months_nominative = ( "",
_("nominative||January"),
_("nominative||February"),
_("nominative||March"),
_("nominative||April"),
_("nominative||May"),
_("nominative||June"),
_("nominative||July"),
_("nominative||August"),
_("nominative||September"),
_("nominative||October"),
_("nominative||November"),
_("nominative||December") )
# TODO the above is just a proof of concept,
# needs to be expanded with all the relevant strings...
if __name__ == '__main__':
for i in range(1, 12):
print (DateStrings.long_months_nominative[i], "\t", DateStrings.long_months_genitive[i])

View File

@ -44,6 +44,13 @@ else:
to_uni = lambda x, y: x
codeset = glocale.encoding
# NOTE: depending on the system and versions, the names
# can be either in genitive or in nominative here.
# %B and %b, for example, are inconsistent in inflection
# on some linux systems.
# Should probably use _datestrings.py instead!
# See bug# 6926 for more.
try:
month_to_int = {

View File

@ -193,7 +193,7 @@ class Calendar(Report):
self.doc.draw_box("CAL-Title", "", 0, 0, width, header, mark)
self.doc.draw_line("CAL-Border", 0, header, width, header)
year = self.year
title = "%s %d" % (_dd.long_months[month].capitalize(), year)
title = "%s %d" % (_dd.get_long_month_nom(month).capitalize(), year)
mark = IndexMark(title, INDEX_TYPE_TOC, 2)
font_height = pt2cm(ptitle.get_font().get_size())
self.doc.center_text("CAL-Title", title,

View File

@ -418,7 +418,7 @@ class Extract(object):
if date:
month = date.get_month()
if month:
return [self._locale.date_displayer.long_months[month]]
return [self._locale.date_displayer.get_long_month_nom(month)]
return [_T_("Date(s) missing")]
def get_place(self, event):

View File

@ -256,7 +256,7 @@ class DateFormat(GenericFormat):
elif count == 3: # found 'mmm'
return displayer.short_months[int(month)]
else: # found 'mmmm'
return displayer.long_months[int(month)]
return displayer.get_long_month_gen(int(month))
def month_up():
return month("M").upper()

View File

@ -227,7 +227,7 @@ class BirthdayReport(Report):
year = self.year
dd = self._locale.date_displayer
self.doc.start_paragraph('BIR-Monthstyle')
self.doc.write_text(dd.long_months[month].capitalize())
self.doc.write_text(dd.get_long_month_nom(month).capitalize())
self.doc.end_paragraph()
current_date = datetime.date(year, month, 1)
current_ord = current_date.toordinal()

View File

@ -499,7 +499,7 @@ class WebCalReport(Report):
# each year will link to current month.
# this will always need an extension added
full_month_name = _dd.long_months[self.today.get_month() ]
full_month_name = _dd.get_long_month_nom(self.today.get_month() )
# Note. We use '/' here because it is a URL, not a OS dependent
# pathname.
@ -536,7 +536,7 @@ class WebCalReport(Report):
if self.home_link:
navs.append((self.home_link, _('Home'), add_home))
navs.extend(
(_dd.long_months[month], _dd.short_months[month], True) for month in range(1, 13) )
(_dd.get_long_month_nom(month), _dd.short_months[month], True) for month in range(1, 13) )
# Add a link for year_glance() if requested
navs.append(('fullyearlinked', _('Year Glance'), self.fullyear))
@ -602,7 +602,7 @@ class WebCalReport(Report):
"""
# define names for long and short month names
full_month_name = _dd.long_months[month]
full_month_name = _dd.get_long_month_nom(month)
abbr_month_name = _dd.short_months[month]
# dow (day-of-week) uses Gramps numbering, sunday => 1, etc
@ -842,7 +842,7 @@ class WebCalReport(Report):
_('Formatting months ...'), 12) as step:
for month in range(1, 13):
cal_fname = _dd.long_months[month]
cal_fname = _dd.get_long_month_nom(month)
of = self.create_file(cal_fname, str(year))
# Add xml, doctype, meta and stylesheets
@ -855,7 +855,7 @@ class WebCalReport(Report):
# Create Month Navigation Menu
# identify currentsection for proper highlighting
currentsection = _dd.long_months[month]
currentsection = _dd.get_long_month_nom(month)
body += self.month_navigation(nr_up, year, currentsection, True)
# build the calendar
@ -982,7 +982,7 @@ class WebCalReport(Report):
# Create Month Navigation Menu
# identify currentsection for proper highlighting
currentsection = _dd.long_months[month]
currentsection = _dd.get_long_month_nom(month)
body += self.month_navigation(nr_up, year, currentsection, True)
# set date display as in user prevferences

View File

@ -9,6 +9,7 @@ gramps/cli/user.py
gramps/gen/config.py
gramps/gen/const.py
gramps/gen/datehandler/__init__.py
gramps/gen/datehandler/_datestrings.py
gramps/gen/db/base.py
gramps/gen/db/exceptions.py
gramps/gen/db/undoredo.py

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-08-28 19:37+0300\n"
"POT-Creation-Date: 2013-08-26 17:21+0300\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"
@ -18,14 +18,14 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
#: ../gramps/cli/arghandler.py:225
#: ../gramps/cli/arghandler.py:221
#, python-format
msgid ""
"Error: Family Tree '%s' already exists.\n"
"The '-C' option cannot be used."
msgstr ""
#: ../gramps/cli/arghandler.py:234
#: ../gramps/cli/arghandler.py:230
#, python-format
msgid ""
"Error: Input Family Tree \"%s\" does not exist.\n"
@ -33,17 +33,17 @@ msgid ""
"Tree instead."
msgstr ""
#: ../gramps/cli/arghandler.py:250
#: ../gramps/cli/arghandler.py:246
#, python-format
msgid "Error: Import file %s not found."
msgstr ""
#: ../gramps/cli/arghandler.py:268
#: ../gramps/cli/arghandler.py:264
#, python-format
msgid "Error: Unrecognized type: \"%(format)s\" for import file: %(filename)s"
msgstr ""
#: ../gramps/cli/arghandler.py:290
#: ../gramps/cli/arghandler.py:286
#, python-format
msgid ""
"WARNING: Output file already exists!\n"
@ -51,38 +51,34 @@ msgid ""
" %s"
msgstr ""
#: ../gramps/cli/arghandler.py:293
msgid "OK to overwrite?"
#: ../gramps/cli/arghandler.py:294
msgid "OK to overwrite? (yes/no) "
msgstr ""
#: ../gramps/cli/arghandler.py:294 ../gramps/cli/clidbman.py:215
msgid "yes"
#: ../gramps/cli/arghandler.py:298
msgid "YES"
msgstr ""
#: ../gramps/cli/arghandler.py:294 ../gramps/cli/clidbman.py:217
msgid "no"
msgstr ""
#: ../gramps/cli/arghandler.py:296
#: ../gramps/cli/arghandler.py:299
#, python-format
msgid "Will overwrite the existing file: %s"
msgstr ""
#: ../gramps/cli/arghandler.py:316
#: ../gramps/cli/arghandler.py:319
#, python-format
msgid "ERROR: Unrecognized format for export file %s"
msgstr ""
#: ../gramps/cli/arghandler.py:399
#: ../gramps/cli/arghandler.py:402
msgid "List of known Family Trees in your database path\n"
msgstr ""
#: ../gramps/cli/arghandler.py:404
#: ../gramps/cli/arghandler.py:407
#, python-format
msgid "%(full_DB_path)s with name \"%(f_t_name)s\""
msgstr ""
#: ../gramps/cli/arghandler.py:409 ../gramps/cli/arghandler.py:420
#: ../gramps/cli/arghandler.py:412 ../gramps/cli/arghandler.py:423
msgid "Gramps Family Trees:"
msgstr ""
@ -91,124 +87,125 @@ msgstr ""
#. constants
#.
#. -------------------------------------------------------------------------
#: ../gramps/cli/arghandler.py:412 ../gramps/cli/arghandler.py:413
#: ../gramps/cli/arghandler.py:422 ../gramps/cli/arghandler.py:429
#: ../gramps/cli/arghandler.py:430 ../gramps/cli/arghandler.py:432
#: ../gramps/cli/arghandler.py:415 ../gramps/cli/arghandler.py:416
#: ../gramps/cli/arghandler.py:425 ../gramps/cli/arghandler.py:432
#: ../gramps/cli/arghandler.py:433 ../gramps/cli/arghandler.py:435
#: ../gramps/cli/clidbman.py:74 ../gramps/cli/clidbman.py:221
#: ../gramps/cli/clidbman.py:223 ../gramps/gui/clipboard.py:936
#: ../gramps/gui/configure.py:1337
msgid "Family Tree"
msgstr ""
#: ../gramps/cli/arghandler.py:413
#: ../gramps/cli/arghandler.py:416
#, python-format
msgid "Family Tree \"%s\":"
msgstr ""
#: ../gramps/cli/arghandler.py:442
#: ../gramps/cli/arghandler.py:445
#, python-format
msgid "Performing action: %s."
msgstr ""
#: ../gramps/cli/arghandler.py:444
#: ../gramps/cli/arghandler.py:447
#, python-format
msgid "Using options string: %s"
msgstr ""
#: ../gramps/cli/arghandler.py:449
#: ../gramps/cli/arghandler.py:452
#, python-format
msgid "Exporting: file %(filename)s, format %(format)s."
msgstr ""
#: ../gramps/cli/arghandler.py:456
#: ../gramps/cli/arghandler.py:459
msgid "Exiting."
msgstr ""
#: ../gramps/cli/arghandler.py:460
#: ../gramps/cli/arghandler.py:463
msgid "Cleaning up."
msgstr ""
#: ../gramps/cli/arghandler.py:489
#: ../gramps/cli/arghandler.py:492
msgid "Created empty Family Tree successfully"
msgstr ""
#: ../gramps/cli/arghandler.py:492 ../gramps/cli/arghandler.py:517
#: ../gramps/cli/arghandler.py:495 ../gramps/cli/arghandler.py:520
msgid "Error opening the file."
msgstr ""
#: ../gramps/cli/arghandler.py:493 ../gramps/cli/arghandler.py:518
#: ../gramps/cli/arghandler.py:496 ../gramps/cli/arghandler.py:521
msgid "Exiting..."
msgstr ""
#: ../gramps/cli/arghandler.py:497
#: ../gramps/cli/arghandler.py:500
#, python-format
msgid "Importing: file %(filename)s, format %(format)s."
msgstr ""
#: ../gramps/cli/arghandler.py:515
#: ../gramps/cli/arghandler.py:518
msgid "Opened successfully!"
msgstr ""
#: ../gramps/cli/arghandler.py:529
#: ../gramps/cli/arghandler.py:532
msgid "Database is locked, cannot open it!"
msgstr ""
#: ../gramps/cli/arghandler.py:530
#: ../gramps/cli/arghandler.py:533
#, python-format
msgid " Info: %s"
msgstr ""
#: ../gramps/cli/arghandler.py:533
#: ../gramps/cli/arghandler.py:536
msgid "Database needs recovery, cannot open it!"
msgstr ""
#: ../gramps/cli/arghandler.py:590 ../gramps/cli/arghandler.py:638
#: ../gramps/cli/arghandler.py:679
#: ../gramps/cli/arghandler.py:593 ../gramps/cli/arghandler.py:641
#: ../gramps/cli/arghandler.py:682
msgid "Ignoring invalid options string."
msgstr ""
#. name exists, but is not in the list of valid report names
#: ../gramps/cli/arghandler.py:614
#: ../gramps/cli/arghandler.py:617
msgid "Unknown report name."
msgstr ""
#: ../gramps/cli/arghandler.py:616
#: ../gramps/cli/arghandler.py:619
#, python-format
msgid "Report name not given. Please use one of %(donottranslate)s=reportname"
msgstr ""
#: ../gramps/cli/arghandler.py:620 ../gramps/cli/arghandler.py:662
#: ../gramps/cli/arghandler.py:695
#: ../gramps/cli/arghandler.py:623 ../gramps/cli/arghandler.py:665
#: ../gramps/cli/arghandler.py:698
#, python-format
msgid ""
"%s\n"
" Available names are:"
msgstr ""
#: ../gramps/cli/arghandler.py:656
#: ../gramps/cli/arghandler.py:659
msgid "Unknown tool name."
msgstr ""
#: ../gramps/cli/arghandler.py:658
#: ../gramps/cli/arghandler.py:661
#, python-format
msgid "Tool name not given. Please use one of %(donottranslate)s=toolname."
msgstr ""
#: ../gramps/cli/arghandler.py:689
#: ../gramps/cli/arghandler.py:692
msgid "Unknown book name."
msgstr ""
#: ../gramps/cli/arghandler.py:691
#: ../gramps/cli/arghandler.py:694
#, python-format
msgid "Book name not given. Please use one of %(donottranslate)s=bookname."
msgstr ""
#: ../gramps/cli/arghandler.py:700
#: ../gramps/cli/arghandler.py:703
#, python-format
msgid "Unknown action: %s."
msgstr ""
#: ../gramps/cli/argparser.py:56
#. Note: Make sure to edit const.py.in POPT_TABLE too!
#: ../gramps/cli/argparser.py:57
msgid ""
"\n"
"Usage: gramps.py [OPTION...]\n"
@ -234,14 +231,10 @@ msgid ""
" -s, --show Show config settings\n"
" -c, --config=[config.setting[:value]] Set config setting(s) and start "
"Gramps\n"
" -y, --yes Don't ask to confirm dangerous "
"actions (non-GUI mode only)\n"
" -q, --quiet Suppress progress indication output "
"(non-GUI mode only)\n"
" -v, --version Show versions\n"
msgstr ""
#: ../gramps/cli/argparser.py:84
#: ../gramps/cli/argparser.py:83
msgid ""
"\n"
"Example of usage of Gramps command line interface\n"
@ -300,58 +293,58 @@ msgid ""
"Syntax may be different for other shells and for Windows.\n"
msgstr ""
#: ../gramps/cli/argparser.py:241 ../gramps/cli/argparser.py:376
#: ../gramps/cli/argparser.py:236 ../gramps/cli/argparser.py:367
msgid "Error parsing the arguments"
msgstr ""
#: ../gramps/cli/argparser.py:243
#: ../gramps/cli/argparser.py:238
#, python-format
msgid ""
"Error parsing the arguments: %s \n"
"Type gramps --help for an overview of commands, or read the manual pages."
msgstr ""
#: ../gramps/cli/argparser.py:252
#: ../gramps/cli/argparser.py:247
#, python-format
msgid "Trying to open: %s ..."
msgstr ""
#: ../gramps/cli/argparser.py:286
#: ../gramps/cli/argparser.py:281
#, python-format
msgid "Unknown action: %s. Ignoring."
msgstr ""
#: ../gramps/cli/argparser.py:295
#: ../gramps/cli/argparser.py:290
msgid "setup debugging"
msgstr ""
#: ../gramps/cli/argparser.py:306
#: ../gramps/cli/argparser.py:301
#, python-format
msgid "Gramps config settings from %s:"
msgstr ""
#: ../gramps/cli/argparser.py:324
#: ../gramps/cli/argparser.py:319
#, python-format
msgid "Current Gramps config setting: %s:%s"
msgstr ""
#. does a user want the default config value?
#: ../gramps/cli/argparser.py:329
#: ../gramps/cli/argparser.py:324
msgid "DEFAULT"
msgstr ""
#. translators: indent "New" to match "Current"
#: ../gramps/cli/argparser.py:336
#: ../gramps/cli/argparser.py:331
#, python-format
msgid " New Gramps config setting: %s:%s"
msgstr ""
#: ../gramps/cli/argparser.py:343
#: ../gramps/cli/argparser.py:338
#, python-format
msgid "Gramps: no such config setting: '%s'"
msgstr ""
#: ../gramps/cli/argparser.py:377
#: ../gramps/cli/argparser.py:368
#, python-format
msgid ""
"Error parsing the arguments: %s \n"
@ -373,6 +366,14 @@ msgstr ""
msgid "Locked?"
msgstr ""
#: ../gramps/cli/clidbman.py:215
msgid "yes"
msgstr ""
#: ../gramps/cli/clidbman.py:217
msgid "no"
msgstr ""
#: ../gramps/cli/clidbman.py:218
msgid "Bsddb version"
msgstr ""
@ -491,12 +492,12 @@ msgstr ""
msgid "ERROR: %s"
msgstr ""
#: ../gramps/cli/grampscli.py:103 ../gramps/cli/user.py:187
#: ../gramps/cli/grampscli.py:103 ../gramps/cli/user.py:174
#: ../gramps/gui/dialog.py:224
msgid "Low level database corruption detected"
msgstr ""
#: ../gramps/cli/grampscli.py:105 ../gramps/cli/user.py:188
#: ../gramps/cli/grampscli.py:105 ../gramps/cli/user.py:175
#: ../gramps/gui/dialog.py:225
msgid ""
"Gramps has detected a problem in the underlying Berkeley database. This can "
@ -731,16 +732,194 @@ msgstr ""
msgid "none"
msgstr ""
#: ../gramps/gen/datehandler/__init__.py:71
#: ../gramps/gen/datehandler/__init__.py:72
#, python-format
msgid "Date parser for '%s' not available, using default"
msgstr ""
#: ../gramps/gen/datehandler/__init__.py:87
#: ../gramps/gen/datehandler/__init__.py:88
#, python-format
msgid "Date displayer for '%s' not available, using default"
msgstr ""
#. TRANSLATORS: see
#. http://gramps-project.org/wiki/index.php?title=Translating_Gramps#Translating_dates
#. to learn how to select proper inflection for your language.
#: ../gramps/gen/datehandler/_datedisplay.py:251
#: ../gramps/gen/datehandler/_datedisplay.py:278
msgid "{long_month} {year}"
msgstr ""
#. TRANSLATORS: see
#. http://gramps-project.org/wiki/index.php?title=Translating_Gramps#Translating_dates
#. to learn how to select proper inflection for your language.
#: ../gramps/gen/datehandler/_datedisplay.py:258
msgid "{long_month} {day:d}, {year}"
msgstr ""
#. TRANSLATORS: see
#. http://gramps-project.org/wiki/index.php?title=Translating_Gramps#Translating_dates
#. to learn how to select proper inflection for your language.
#: ../gramps/gen/datehandler/_datedisplay.py:285
msgid "{day:d} {long_month} {year}"
msgstr ""
#. TRANSLATORS: see
#. http://gramps-project.org/wiki/index.php?title=Translating_Gramps#Translating_dates
#. to learn how to select proper inflection to be used in your localized
#. DateDisplayer code!
#: ../gramps/gen/datehandler/_datestrings.py:53
msgid "localized lexeme inflections||January"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:54
msgid "localized lexeme inflections||February"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:55
msgid "localized lexeme inflections||March"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:56
msgid "localized lexeme inflections||April"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:57
msgid "localized lexeme inflections||May"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:58
msgid "localized lexeme inflections||June"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:59
msgid "localized lexeme inflections||July"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:60
msgid "localized lexeme inflections||August"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:61
msgid "localized lexeme inflections||September"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:62
msgid "localized lexeme inflections||October"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:63
msgid "localized lexeme inflections||November"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:64
msgid "localized lexeme inflections||December"
msgstr ""
#. TRANSLATORS: see
#. http://gramps-project.org/wiki/index.php?title=Translating_Gramps#Translating_dates
#. to learn how to select proper inflection to be used in your localized
#. DateDisplayer code!
#: ../gramps/gen/datehandler/_datestrings.py:71
msgid "localized lexeme inflections - short month form||Jan"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:72
msgid "localized lexeme inflections - short month form||Feb"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:73
msgid "localized lexeme inflections - short month form||Mar"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:74
msgid "localized lexeme inflections - short month form||Apr"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:75
msgid "localized lexeme inflections - short month form||May"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:76
msgid "localized lexeme inflections - short month form||Jun"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:77
msgid "localized lexeme inflections - short month form||Jul"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:78
msgid "localized lexeme inflections - short month form||Aug"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:79
msgid "localized lexeme inflections - short month form||Sep"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:80
msgid "localized lexeme inflections - short month form||Oct"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:81
msgid "localized lexeme inflections - short month form||Nov"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:82
msgid "localized lexeme inflections - short month form||Dec"
msgstr ""
#. TRANSLATORS: see
#. http://gramps-project.org/wiki/index.php?title=Translating_Gramps#Translating_dates
#. to learn how to add proper alternatives to be recognized in your localized
#. DateParser code!
#: ../gramps/gen/datehandler/_datestrings.py:90
msgid "alternative month names for January||"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:91
msgid "alternative month names for February||"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:92
msgid "alternative month names for March||"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:93
msgid "alternative month names for April||"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:94
msgid "alternative month names for May||"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:95
msgid "alternative month names for June||"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:96
msgid "alternative month names for July||"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:97
msgid "alternative month names for August||"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:98
msgid "alternative month names for September||"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:99
msgid "alternative month names for October||"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:100
msgid "alternative month names for November||"
msgstr ""
#: ../gramps/gen/datehandler/_datestrings.py:101
msgid "alternative month names for December||"
msgstr ""
#: ../gramps/gen/db/base.py:1624
msgid "Add child to family"
msgstr ""
@ -5884,200 +6063,200 @@ msgid ""
"available."
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:64
#: ../gramps/gen/utils/grampslocale.py:65
msgid "Arabic"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:65
#: ../gramps/gen/utils/grampslocale.py:66
msgid "Bulgarian"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:66
#: ../gramps/gen/utils/grampslocale.py:67
msgid "Breton"
msgstr ""
#. Windows has no translation for Breton
#: ../gramps/gen/utils/grampslocale.py:67
#: ../gramps/gen/utils/grampslocale.py:68
msgid "Catalan"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:68
#: ../gramps/gen/utils/grampslocale.py:69
msgid "Czech"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:69
#: ../gramps/gen/utils/grampslocale.py:70
msgid "Danish"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:70
#: ../gramps/gen/utils/grampslocale.py:71
msgid "German"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:71
#: ../gramps/gen/utils/grampslocale.py:72
msgid "Greek"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:72
#: ../gramps/gen/utils/grampslocale.py:73
msgid "English (USA)"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:73
#: ../gramps/gen/utils/grampslocale.py:74
msgid "English"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:74
#: ../gramps/gen/utils/grampslocale.py:75
msgid "Esperanto"
msgstr ""
#. Windows has no translation for Esperanto
#: ../gramps/gen/utils/grampslocale.py:75
#: ../gramps/gen/utils/grampslocale.py:76
msgid "Spanish"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:76
#: ../gramps/gen/utils/grampslocale.py:77
msgid "Finnish"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:77
#: ../gramps/gen/utils/grampslocale.py:78
msgid "French"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:78
#: ../gramps/gen/utils/grampslocale.py:79
msgid "Gaelic"
msgstr ""
#. Windows has no translation for Gaelic
#: ../gramps/gen/utils/grampslocale.py:79
#: ../gramps/gen/utils/grampslocale.py:80
msgid "Hebrew"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:80
#: ../gramps/gen/utils/grampslocale.py:81
msgid "Croatian"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:81
#: ../gramps/gen/utils/grampslocale.py:82
msgid "Hungarian"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:82
#: ../gramps/gen/utils/grampslocale.py:83
msgid "Italian"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:83
#: ../gramps/gen/utils/grampslocale.py:84
msgid "Japanese"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:84
#: ../gramps/gen/utils/grampslocale.py:85
msgid "Lithuanian"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:85
#: ../gramps/gen/utils/grampslocale.py:86
msgid "Macedonian"
msgstr ""
#. Windows has no translation for Macedonian
#: ../gramps/gen/utils/grampslocale.py:86
#: ../gramps/gen/utils/grampslocale.py:87
msgid "Norwegian Bokmal"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:87
#: ../gramps/gen/utils/grampslocale.py:88
msgid "Dutch"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:88
#: ../gramps/gen/utils/grampslocale.py:89
msgid "Norwegian Nynorsk"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:89
#: ../gramps/gen/utils/grampslocale.py:90
msgid "Polish"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:90
#: ../gramps/gen/utils/grampslocale.py:91
msgid "Portuguese (Brazil)"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:91
#: ../gramps/gen/utils/grampslocale.py:92
msgid "Portuguese (Portugal)"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:92
#: ../gramps/gen/utils/grampslocale.py:93
msgid "Romanian"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:93
#: ../gramps/gen/utils/grampslocale.py:94
msgid "Russian"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:94
#: ../gramps/gen/utils/grampslocale.py:95
msgid "Slovak"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:95
#: ../gramps/gen/utils/grampslocale.py:96
msgid "Slovenian"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:96
#: ../gramps/gen/utils/grampslocale.py:97
msgid "Albanian"
msgstr ""
#. Gramps's Serbian translation is not yet ready
#: ../gramps/gen/utils/grampslocale.py:98
#: ../gramps/gen/utils/grampslocale.py:99
msgid "Swedish"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:99
#: ../gramps/gen/utils/grampslocale.py:100
msgid "Turkish"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:100
#: ../gramps/gen/utils/grampslocale.py:101
msgid "Ukrainian"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:101
#: ../gramps/gen/utils/grampslocale.py:102
msgid "Vietnamese"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:102
#: ../gramps/gen/utils/grampslocale.py:103
msgid "Chinese Simplified"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:804
#: ../gramps/gen/utils/grampslocale.py:806
msgid "the person"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:806
#: ../gramps/gen/utils/grampslocale.py:808
msgid "the family"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:808
#: ../gramps/gen/utils/grampslocale.py:810
msgid "the place"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:810
#: ../gramps/gen/utils/grampslocale.py:812
msgid "the event"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:812
#: ../gramps/gen/utils/grampslocale.py:814
msgid "the repository"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:814
#: ../gramps/gen/utils/grampslocale.py:816
msgid "the note"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:816
#: ../gramps/gen/utils/grampslocale.py:818
msgid "the media"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:818
#: ../gramps/gen/utils/grampslocale.py:820
msgid "the source"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:820
#: ../gramps/gen/utils/grampslocale.py:822
msgid "the filter"
msgstr ""
#: ../gramps/gen/utils/grampslocale.py:822
#: ../gramps/gen/utils/grampslocale.py:824
msgid "See details"
msgstr ""

191
po/ru.po
View File

@ -890,6 +890,197 @@ msgstr ""
msgid "Date displayer for '%s' not available, using default"
msgstr ""
#. TRANSLATORS: see
#. http://gramps-project.org/wiki/index.php?title=Translating_Gramps#Translating_dates
#. to learn how to select proper inflection for your language.
#: ../gramps/gen/datehandler/_datedisplay.py:251
#: ../gramps/gen/datehandler/_datedisplay.py:278
msgid "{long_month} {year}"
msgstr "{long_month} {year}"
#. TRANSLATORS: see
#. http://gramps-project.org/wiki/index.php?title=Translating_Gramps#Translating_dates
#. to learn how to select proper inflection for your language.
#: ../gramps/gen/datehandler/_datedisplay.py:258
msgid "{long_month} {day:d}, {year}"
msgstr "{long_month[Р]} {day:d}, {year}"
#. TRANSLATORS: see
#. http://gramps-project.org/wiki/index.php?title=Translating_Gramps#Translating_dates
#. to learn how to select proper inflection for your language.
#: ../gramps/gen/datehandler/_datedisplay.py:285
msgid "{day:d} {long_month} {year}"
msgstr "{day:d} {long_month[Р]} {year}"
#. TRANSLATORS: see
#. http://gramps-project.org/wiki/index.php?title=Translating_Gramps#Translating_dates
#. to learn how to select proper inflection to be used in your localized
#. DateDisplayer code!
#: ../gramps/gen/datehandler/_datestrings.py:53
msgid "localized lexeme inflections||January"
msgstr "И=январь|Р=января|Т=январём"
#: ../gramps/gen/datehandler/_datestrings.py:54
msgid "localized lexeme inflections||February"
msgstr "И=февраль|Р=февраля|Т=февралём"
#: ../gramps/gen/datehandler/_datestrings.py:55
msgid "localized lexeme inflections||March"
msgstr "И=март|Р=марта|Т=мартом"
#: ../gramps/gen/datehandler/_datestrings.py:56
msgid "localized lexeme inflections||April"
msgstr "И=апрель|Р=апреля|Т=апрелем"
#: ../gramps/gen/datehandler/_datestrings.py:57
msgid "localized lexeme inflections||May"
msgstr "И=май|Р=мая|Т=маем"
#: ../gramps/gen/datehandler/_datestrings.py:58
msgid "localized lexeme inflections||June"
msgstr "И=июнь|Р=июня|Т=июнем"
#: ../gramps/gen/datehandler/_datestrings.py:59
msgid "localized lexeme inflections||July"
msgstr "И=июль|Р=июля|Т=июлем"
#: ../gramps/gen/datehandler/_datestrings.py:60
msgid "localized lexeme inflections||August"
msgstr "И=август|Р=августа|Т=августом"
#: ../gramps/gen/datehandler/_datestrings.py:61
msgid "localized lexeme inflections||September"
msgstr "И=сентябрь|Р=сентября|Т=сентябрём"
#: ../gramps/gen/datehandler/_datestrings.py:62
msgid "localized lexeme inflections||October"
msgstr "И=октябрь|Р=октября|Т=октябрём"
#: ../gramps/gen/datehandler/_datestrings.py:63
msgid "localized lexeme inflections||November"
msgstr "И=ноябрь|Р=ноября|Т=ноябрём"
#: ../gramps/gen/datehandler/_datestrings.py:64
msgid "localized lexeme inflections||December"
msgstr "И=декабрь|Р=декабря|Т=декабрём"
#. TRANSLATORS: see
#. http://gramps-project.org/wiki/index.php?title=Translating_Gramps#Translating_dates
#. to learn how to select proper inflection to be used in your localized
#. DateDisplayer code!
#: ../gramps/gen/datehandler/_datestrings.py:71
msgid "localized lexeme inflections - short month form||Jan"
msgstr "И=янв|Р=янв|Т=янв"
#: ../gramps/gen/datehandler/_datestrings.py:72
msgid "localized lexeme inflections - short month form||Feb"
msgstr "И=фев|Р=фев|Т=фев"
#: ../gramps/gen/datehandler/_datestrings.py:73
msgid "localized lexeme inflections - short month form||Mar"
msgstr "И=мар|Р=мар|Т=мар"
#: ../gramps/gen/datehandler/_datestrings.py:74
msgid "localized lexeme inflections - short month form||Apr"
msgstr "И=апр|Р=апр|Т=апр"
#: ../gramps/gen/datehandler/_datestrings.py:75
msgid "localized lexeme inflections - short month form||May"
msgstr "И=май|Р=мая|Т=маем"
#: ../gramps/gen/datehandler/_datestrings.py:76
msgid "localized lexeme inflections - short month form||Jun"
msgstr "И=июн|Р=июн|Т=июн"
#: ../gramps/gen/datehandler/_datestrings.py:77
msgid "localized lexeme inflections - short month form||Jul"
msgstr "И=июл|Р=июл|Т=июл"
#: ../gramps/gen/datehandler/_datestrings.py:78
msgid "localized lexeme inflections - short month form||Aug"
msgstr "И=авг|Р=авг|Т=авг"
#: ../gramps/gen/datehandler/_datestrings.py:79
msgid "localized lexeme inflections - short month form||Sep"
msgstr "И=сен|Р=сен|Т=сен"
#: ../gramps/gen/datehandler/_datestrings.py:80
msgid "localized lexeme inflections - short month form||Oct"
msgstr "И=окт|Р=окт|Т=окт"
#: ../gramps/gen/datehandler/_datestrings.py:81
msgid "localized lexeme inflections - short month form||Nov"
msgstr "И=ноя|Р=ноя|Т=ноя"
#: ../gramps/gen/datehandler/_datestrings.py:82
msgid "localized lexeme inflections - short month form||Dec"
msgstr "И=дек|Р=дек|Т=дек"
#. TRANSLATORS: see
#. http://gramps-project.org/wiki/index.php?title=Translating_Gramps#Translating_dates
#. to learn how to add proper alternatives to be recognized in your localized
#. DateParser code!
#: ../gramps/gen/datehandler/_datestrings.py:90
#, fuzzy
msgid "alternative month names for January||"
msgstr "Альтернативные имена"
#: ../gramps/gen/datehandler/_datestrings.py:91
#, fuzzy
msgid "alternative month names for February||"
msgstr "Альтернативные имена"
#: ../gramps/gen/datehandler/_datestrings.py:92
#, fuzzy
msgid "alternative month names for March||"
msgstr "Альтернативные имена"
#: ../gramps/gen/datehandler/_datestrings.py:93
#, fuzzy
msgid "alternative month names for April||"
msgstr "Альтернативные имена"
#: ../gramps/gen/datehandler/_datestrings.py:94
#, fuzzy
msgid "alternative month names for May||"
msgstr "Альтернативные имена"
#: ../gramps/gen/datehandler/_datestrings.py:95
#, fuzzy
msgid "alternative month names for June||"
msgstr "Альтернативные имена"
#: ../gramps/gen/datehandler/_datestrings.py:96
#, fuzzy
msgid "alternative month names for July||"
msgstr "Альтернативные имена"
#: ../gramps/gen/datehandler/_datestrings.py:97
#, fuzzy
msgid "alternative month names for August||"
msgstr "Альтернативные имена"
#: ../gramps/gen/datehandler/_datestrings.py:98
#, fuzzy
msgid "alternative month names for September||"
msgstr "сентября"
#: ../gramps/gen/datehandler/_datestrings.py:99
#, fuzzy
msgid "alternative month names for October||"
msgstr "Альтернативные имена"
#: ../gramps/gen/datehandler/_datestrings.py:100
#, fuzzy
msgid "alternative month names for November||"
msgstr "Альтернативные имена"
#: ../gramps/gen/datehandler/_datestrings.py:101
#, fuzzy
msgid "alternative month names for December||"
msgstr "Альтернативные имена"
#: ../gramps/gen/db/base.py:1624
msgid "Add child to family"
msgstr "Добавить ребёнка в семью"