Changeset 2336
- Timestamp:
- 06/25/07 17:18:17 (2 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
tracspanishtranslation/0.10/es-terms.txt
r2322 r2336 12 12 Trac Engine 13 13 ----------- 14 upload/download: 14 upload/download: cargar/descargar 15 15 http://forum.wordreference.com/showthread.php?t=23471 16 16 owner = responsable … … 20 20 egg plugin = plugin-egg 21 21 encoding = codificación 22 timeline = histórico (TracTermsEs)23 cu rtom field = campo personalizado22 timeline = cronologÃa (~~TracTermsEs~~) 23 custom field = campo personalizado 24 24 Repository checkins = cambios en el repositorio 25 25 bindings = librerÃas … … 41 41 standalone = 42 42 priority value = 43 due = vencimiento43 due = estimado/vencimiento 44 44 time = fecha (respecto a version) 45 45 hot backup copy = copia de seguridad 'caliente' … … 58 58 modified = sin traducción (reportes) 59 59 description = sin traducción (reportes) 60 _description = descripción60 _description = _descripción tracspanishtranslation/0.10/patchs/trac-spanish-python_utf-8.svndiff
r2322 r2336 1 1 Index: trac/env.py 2 2 =================================================================== 3 --- trac/env.py (revision 57 02)3 --- trac/env.py (revision 5756) 4 4 +++ trac/env.py (working copy) 5 @@ -70,17 +70,17 @@ 6 setups, usually involving running Trac behind a HTTP proxy, you may 7 need to use this option to force Trac to use the correct URL.""") 8 9 - project_name = Option('project', 'name', 'My Project', 10 + project_name = Option('project', 'name', 'Mi Proyecto', 11 """Name of the project.""") 12 13 - project_description = Option('project', 'descr', 'My example project', 14 + project_description = Option('project', 'descr', 'Mi proyecto ejemplo', 15 """Short description of the project.""") 16 17 - project_url = Option('project', 'url', 'http://example.org/', 18 + project_url = Option('project', 'url', 'http://ejemplo.org/', 19 """URL of the main project web site.""") 20 21 project_footer = Option('project', 'footer', 22 - 'Visit the Trac open source project at<br />' 23 + 'Visite el proyecto open source Trac en<br />' 24 '<a href="http://trac.edgewall.org/">' 25 'http://trac.edgewall.org/</a>', 26 """Page footer text (right-aligned).""") 5 27 @@ -330,7 +330,7 @@ 6 28 … … 79 101 Index: trac/core.py 80 102 =================================================================== 81 --- trac/core.py (revision 57 02)103 --- trac/core.py (revision 5756) 82 104 +++ trac/core.py (working copy) 83 105 @@ -45,7 +45,7 @@ … … 115 137 Index: trac/attachment.py 116 138 =================================================================== 117 --- trac/attachment.py (revision 57 02)139 --- trac/attachment.py (revision 5756) 118 140 +++ trac/attachment.py (working copy) 119 141 @@ -100,8 +100,8 @@ … … 310 332 Index: trac/db_default.py 311 333 =================================================================== 312 --- trac/db_default.py (revision 57 02)334 --- trac/db_default.py (revision 5756) 313 335 +++ trac/db_default.py (working copy) 314 336 @@ -166,106 +166,106 @@ … … 577 599 Index: trac/mimeview/rst.py 578 600 =================================================================== 579 --- trac/mimeview/rst.py (revision 57 02)601 --- trac/mimeview/rst.py (revision 5756) 580 602 +++ trac/mimeview/rst.py (working copy) 581 603 @@ -52,9 +52,9 @@ … … 611 633 Index: trac/mimeview/api.py 612 634 =================================================================== 613 --- trac/mimeview/api.py (revision 57 02)635 --- trac/mimeview/api.py (revision 5756) 614 636 +++ trac/mimeview/api.py (working copy) 615 637 @@ -376,7 +376,7 @@ … … 675 697 Index: trac/mimeview/tests/php.py 676 698 =================================================================== 677 --- trac/mimeview/tests/php.py (revision 57 02)699 --- trac/mimeview/tests/php.py (revision 5756) 678 700 +++ trac/mimeview/tests/php.py (working copy) 679 701 @@ -66,7 +66,7 @@ … … 688 710 Index: trac/mimeview/silvercity.py 689 711 =================================================================== 690 --- trac/mimeview/silvercity.py (revision 57 02)712 --- trac/mimeview/silvercity.py (revision 5756) 691 713 +++ trac/mimeview/silvercity.py (working copy) 692 714 @@ -109,7 +109,7 @@ … … 701 723 Index: trac/mimeview/patch.py 702 724 =================================================================== 703 --- trac/mimeview/patch.py (revision 57 02)725 --- trac/mimeview/patch.py (revision 5756) 704 726 +++ trac/mimeview/patch.py (working copy) 705 727 @@ -69,7 +69,7 @@ … … 714 736 Index: trac/mimeview/enscript.py 715 737 =================================================================== 716 --- trac/mimeview/enscript.py (revision 57 02)738 --- trac/mimeview/enscript.py (revision 5756) 717 739 +++ trac/mimeview/enscript.py (working copy) 718 740 @@ -133,11 +133,11 @@ … … 732 754 Index: trac/mimeview/php.py 733 755 =================================================================== 734 --- trac/mimeview/php.py (revision 57 02)756 --- trac/mimeview/php.py (revision 5756) 735 757 +++ trac/mimeview/php.py (working copy) 736 758 @@ -77,13 +77,13 @@ … … 765 787 Index: trac/ticket/api.py 766 788 =================================================================== 767 --- trac/ticket/api.py (revision 57 02)789 --- trac/ticket/api.py (revision 5756) 768 790 +++ trac/ticket/api.py (working copy) 769 791 @@ -142,12 +142,12 @@ … … 794 816 Index: trac/ticket/web_ui.py 795 817 =================================================================== 796 --- trac/ticket/web_ui.py (revision 57 02)818 --- trac/ticket/web_ui.py (revision 5756) 797 819 +++ trac/ticket/web_ui.py (working copy) 798 820 @@ -57,10 +57,10 @@ … … 1006 1028 Index: trac/ticket/report.py 1007 1029 =================================================================== 1008 --- trac/ticket/report.py (revision 57 02)1030 --- trac/ticket/report.py (revision 5756) 1009 1031 +++ trac/ticket/report.py (working copy) 1010 1032 @@ -46,7 +46,7 @@ … … 1146 1168 Index: trac/ticket/model.py 1147 1169 =================================================================== 1148 --- trac/ticket/model.py (revision 57 02)1170 --- trac/ticket/model.py (revision 5756) 1149 1171 +++ trac/ticket/model.py (working copy) 1150 1172 @@ -67,8 +67,8 @@ … … 1463 1485 Index: trac/ticket/roadmap.py 1464 1486 =================================================================== 1465 --- trac/ticket/roadmap.py (revision 57 02)1487 --- trac/ticket/roadmap.py (revision 5756) 1466 1488 +++ trac/ticket/roadmap.py (working copy) 1467 1489 @@ -129,7 +129,7 @@ … … 1605 1627 Index: trac/ticket/query.py 1606 1628 =================================================================== 1607 --- trac/ticket/query.py (revision 57 02)1629 --- trac/ticket/query.py (revision 5756) 1608 1630 +++ trac/ticket/query.py (working copy) 1609 1631 @@ -67,11 +67,11 @@ … … 1697 1719 Index: trac/db/sqlite_backend.py 1698 1720 =================================================================== 1699 --- trac/db/sqlite_backend.py (revision 57 02)1721 --- trac/db/sqlite_backend.py (revision 5756) 1700 1722 +++ trac/db/sqlite_backend.py (working copy) 1701 1723 @@ -116,7 +116,7 @@ … … 1730 1752 Index: trac/db/api.py 1731 1753 =================================================================== 1732 --- trac/db/api.py (revision 57 02)1754 --- trac/db/api.py (revision 5756) 1733 1755 +++ trac/db/api.py (working copy) 1734 1756 @@ -94,7 +94,7 @@ … … 1754 1776 Index: trac/db/pool.py 1755 1777 =================================================================== 1756 --- trac/db/pool.py (revision 57 02)1778 --- trac/db/pool.py (revision 5756) 1757 1779 +++ trac/db/pool.py (working copy) 1758 1780 @@ -104,8 +104,8 @@ … … 1769 1791 Index: trac/db/mysql_backend.py 1770 1792 =================================================================== 1771 --- trac/db/mysql_backend.py (revision 57 02)1793 --- trac/db/mysql_backend.py (revision 5756) 1772 1794 +++ trac/db/mysql_backend.py (working copy) 1773 @@ -1,9 +1,7 @@ 1774 -# -*- coding: iso8859-1 -*- 1775 +# -*- coding: utf-8 -*- 1776 # 1777 -# Copyright (C) 2005-2006 Edgewall Software 1778 -# Copyright (C) 2005-2006 Christopher Lenz <cmlenz@gmx.de> 1779 -# Copyright (C) 2005 Jeff Weiss <trac@jeffweiss.org> 1780 -# Copyright (C) 2006 Andres Salomon <dilinger@athenacr.com> 1781 +# Copyright (C) 2005 Edgewall Software 1782 +# Copyright (C) 2005 Christopher Lenz <cmlenz@gmx.de> 1783 # All rights reserved. 1784 # 1785 # This software is licensed as described in the file COPYING, which 1786 @@ -13,170 +11,163 @@ 1787 # This software consists of voluntary contributions made by many 1788 # individuals. For the exact contribution history, see the revision 1789 # history and logs, available at http://trac.edgewall.org/log/. 1790 +# 1791 +# Author: Christopher Lenz <cmlenz@gmx.de> 1792 1793 -import re 1794 +import os 1795 +import urllib 1796 1797 +from trac.config import Option, IntOption 1798 from trac.core import * 1799 -from trac.db.api import IDatabaseConnector 1800 -from trac.db.util import ConnectionWrapper 1801 +from trac.db.pool import ConnectionPool 1802 +from trac.util.text import unicode_passwd 1803 1804 -_like_escape_re = re.compile(r'([/_%])') 1805 1806 +def get_column_names(cursor): 1807 + return cursor.description and \ 1808 + [(isinstance(d[0], str) and [unicode(d[0], 'utf-8')] or [d[0]])[0] 1809 + for d in cursor.description] or [] 1810 1811 -class MySQLConnector(Component): 1812 - """MySQL database support for version 4.1 and greater. 1813 - 1814 - Database urls should be of the form: 1815 - mysql://user[:password]@host[:port]/database 1816 - """ 1817 1818 - implements(IDatabaseConnector) 1819 +class IDatabaseConnector(Interface): 1820 + """Extension point interface for components that support the connection to 1821 + relational databases.""" 1822 1823 - def get_supported_schemes(self): 1824 - return [('mysql', 1)] 1825 + def get_supported_schemes(): 1826 + """Return the connection URL schemes supported by the connector, and 1827 + their relative priorities as an iterable of `(scheme, priority)` tuples. 1828 + """ 1829 1830 - def get_connection(self, path, user=None, password=None, host=None, 1831 - port=None, params={}): 1832 - return MySQLConnection(path, user, password, host, port, params) 1833 - 1834 - def init_db(self, path, user=None, password=None, host=None, port=None, 1835 - params={}): 1836 - cnx = self.get_connection(path, user, password, host, port, params) 1837 - cursor = cnx.cursor() 1838 - from trac.db_default import schema 1839 - for table in schema: 1840 - for stmt in self.to_sql(table): 1841 - self.env.log.debug(stmt) 1842 - cursor.execute(stmt) 1843 - cnx.commit() 1844 - 1845 - def _collist(self, table, columns): 1846 - """Take a list of columns and impose limits on each so that indexing 1847 - works properly. 1848 + def get_connection(**kwargs): 1849 + """Create a new connection to the database.""" 1850 1851 - Some Versions of MySQL limit each index prefix to 500 bytes total, with 1852 - a max of 255 bytes per column. 1853 - """ 1854 - cols = [] 1855 - limit = 333 / len(columns) 1856 - if limit > 255: 1857 - limit = 255 1858 - for c in columns: 1859 - name = '`%s`' % c 1860 - table_col = filter((lambda x: x.name == c), table.columns) 1861 - if len(table_col) == 1 and table_col[0].type.lower() == 'text': 1862 - if name == '`rev`': 1863 - name += '(20)' 1864 - elif name == '`path`': 1865 - name += '(255)' 1866 - elif name == '`change_type`': 1867 - name += '(2)' 1868 - else: 1869 - name += '(%s)' % limit 1870 - # For non-text columns, we simply throw away the extra bytes. 1871 - # That could certainly be optimized better, but for now let's KISS. 1872 - cols.append(name) 1873 - return ','.join(cols) 1874 + def init_db(**kwargs): 1875 + """Initialize the database.""" 1876 1877 - def to_sql(self, table): 1878 - sql = ['CREATE TABLE %s (' % table.name] 1879 - coldefs = [] 1880 - for column in table.columns: 1881 - ctype = column.type 1882 - if column.auto_increment: 1883 - ctype = 'INT UNSIGNED NOT NULL AUTO_INCREMENT' 1884 - # Override the column type, as a text field cannot 1885 - # use auto_increment. 1886 - column.type = 'int' 1887 - coldefs.append(' `%s` %s' % (column.name, ctype)) 1888 - if len(table.key) > 0: 1889 - coldefs.append(' PRIMARY KEY (%s)' % 1890 - self._collist(table, table.key)) 1891 - sql.append(',\n'.join(coldefs) + '\n)') 1892 - yield '\n'.join(sql) 1893 + def to_sql(table): 1894 + """Return the DDL statements necessary to create the specified table, 1895 + including indices.""" 1896 1897 - for index in table.indices: 1898 - yield 'CREATE INDEX %s_%s_idx ON %s (%s);' % (table.name, 1899 - '_'.join(index.columns), table.name, 1900 - self._collist(table, index.columns)) 1901 1902 +class DatabaseManager(Component): 1903 1904 -class MySQLConnection(ConnectionWrapper): 1905 - """Connection wrapper for MySQL.""" 1906 + connectors = ExtensionPoint(IDatabaseConnector) 1907 1908 - poolable = True 1909 + connection_uri = Option('trac', 'database', 'sqlite:db/trac.db', 1910 + """Database connection 1911 + [wiki:TracEnvironment#DatabaseConnectionStrings string] for this 1912 + project""") 1913 1914 - def _mysqldb_gt_or_eq(self, v): 1915 - """This function checks whether the version of python-mysqldb 1916 - is greater than or equal to the version that's passed to it. 1917 - Note that the tuple only checks the major, minor, and sub versions; 1918 - the sub-sub version is weird, so we only check for 'final' versions. 1919 - """ 1920 - from MySQLdb import version_info as ver 1921 - if ver[0] < v[0] or ver[1] < v[1] or ver[2] < v[2]: 1922 - return False 1923 - if ver[3] != 'final': 1924 - return False 1925 - return True 1926 + timeout = IntOption('trac', 'timeout', '20', 1927 + """Timeout value for database connection, in seconds. 1928 + Use '0' to specify ''no timeout''. ''(Since 0.11)''""") 1929 1930 - def _set_character_set(self, cnx, charset): 1931 - vers = tuple([ int(n) for n in cnx.get_server_info().split('.')[:2] ]) 1932 - if vers < (4, 1): 1795 @@ -122,7 +122,7 @@ 1796 def _set_character_set(self, cnx, charset): 1797 vers = tuple([ int(n) for n in cnx.get_server_info().split('.')[:2] ]) 1798 if vers < (4, 1): 1933 1799 - raise TracError, 'MySQL servers older than 4.1 are not supported!' 1934 - cnx.query('SET NAMES %s' % charset) 1935 - cnx.store_result() 1936 - cnx.charset = charset 1937 + def __init__(self): 1938 + self._cnx_pool = None 1939 1940 - def __init__(self, path, user=None, password=None, host=None, 1941 - port=None, params={}): 1942 - import MySQLdb 1943 + def init_db(self): 1944 + connector, args = self._get_connector() 1945 + connector.init_db(**args) 1946 1947 - if path.startswith('/'): 1948 - path = path[1:] 1949 - if password == None: 1950 - password = '' 1951 - if port == None: 1952 - port = 3306 1953 + def get_connection(self): 1954 + if not self._cnx_pool: 1955 + connector, args = self._get_connector() 1956 + self._cnx_pool = ConnectionPool(5, connector, **args) 1957 + return self._cnx_pool.get_cnx(self.timeout or None) 1958 1959 - # python-mysqldb 1.2.1 added a 'charset' arg that is required for 1960 - # unicode stuff. We hack around that here for older versions; at 1961 - # some point, this hack should be removed, and a strict requirement 1962 - # on 1.2.1 made. -dilinger 1963 - if (self._mysqldb_gt_or_eq((1, 2, 1))): 1964 - cnx = MySQLdb.connect(db=path, user=user, passwd=password, 1965 - host=host, port=port, charset='utf8') 1966 - else: 1967 - cnx = MySQLdb.connect(db=path, user=user, passwd=password, 1968 - host=host, port=port, use_unicode=True) 1969 - self._set_character_set(cnx, 'utf8') 1970 - ConnectionWrapper.__init__(self, cnx) 1971 - self._is_closed = False 1972 + def shutdown(self, tid=None): 1973 + if self._cnx_pool: 1974 + self._cnx_pool.shutdown(tid) 1975 + if not tid: 1976 + self._cnx_pool = None 1977 1978 - def cast(self, column, type): 1979 - if type == 'int': 1980 - type = 'signed' 1981 - return 'CAST(%s AS %s)' % (column, type) 1982 + def _get_connector(self): ### FIXME: Make it public? 1983 + scheme, args = _parse_db_str(self.connection_uri) 1984 + candidates = {} 1985 + connector = None 1986 + for connector in self.connectors: 1987 + for scheme_, priority in connector.get_supported_schemes(): 1988 + if scheme_ != scheme: 1989 + continue 1990 + highest = candidates.get(scheme_, (None, 0))[1] 1991 + if priority > highest: 1992 + candidates[scheme] = (connector, priority) 1993 + connector = candidates.get(scheme, [None])[0] 1994 + if not connector: 1995 + raise TracError('Tipo de base de datos no soportado "%s"' % scheme) 1996 1997 - def concat(self, *args): 1998 - return 'concat(%s)' % ', '.join(args) 1999 + if scheme == 'sqlite': 2000 + # Special case for SQLite to support a path relative to the 2001 + # environment directory 2002 + if args['path'] != ':memory:' and \ 2003 + not args['path'].startswith('/'): 2004 + args['path'] = os.path.join(self.env.path, 2005 + args['path'].lstrip('/')) 2006 2007 - def like(self): 2008 - return "LIKE %s ESCAPE '/'" 2009 + return connector, args 2010 2011 - def like_escape(self, text): 2012 - return _like_escape_re.sub(r'/\1', text) 2013 2014 - def get_last_id(self, cursor, table, column='id'): 2015 - return self.cnx.insert_id() 2016 +def _parse_db_str(db_str): 2017 + scheme, rest = db_str.split(':', 1) 2018 2019 - def rollback(self): 2020 - if self.cnx.ping(): 2021 - self._set_character_set(self.cnx, 'utf8') 2022 - self.cnx.rollback() 2023 + if not rest.startswith('/'): 2024 + if scheme == 'sqlite': 2025 + # Support for relative and in-memory SQLite connection strings 2026 + host = None 2027 + path = rest 2028 else: 2029 - self._is_closed = True 2030 + raise TracError('La cadena de conexión a la base de datos debe comenzar con ' 2031 + 'esquema:/') 2032 + else: 2033 + if rest.startswith('/') and not rest.startswith('//'): 2034 + host = None 2035 + rest = rest[1:] 2036 + elif rest.startswith('///'): 2037 + host = None 2038 + rest = rest[3:] 2039 + else: 2040 + rest = rest[2:] 2041 + if rest.find('/') == -1: 2042 + host = rest 2043 + rest = '' 2044 + else: 2045 + host, rest = rest.split('/', 1) 2046 + path = None 2047 2048 - def close(self): 2049 - if not self._is_closed: 2050 - self.cnx.close() 2051 - self._is_closed = True 2052 + if host and host.find('@') != -1: 2053 + user, host = host.split('@', 1) 2054 + if user.find(':') != -1: 2055 + user, password = user.split(':', 1) 2056 + else: 2057 + password = None 2058 + if user: 2059 + user = urllib.unquote(user) 2060 + if password: 2061 + password = unicode_passwd(urllib.unquote(password)) 2062 + else: 2063 + user = password = None 2064 + if host and host.find(':') != -1: 2065 + host, port = host.split(':') 2066 + port = int(port) 2067 + else: 2068 + port = None 2069 + 2070 + if not path: 2071 + path = '/' + rest 2072 + if os.name == 'nt': 2073 + # Support local paths containing drive letters on Win32 2074 + if len(rest) > 1 and rest[1] == '|': 2075 + path = "%s:%s" % (rest[0], rest[2:]) 2076 + 2077 + params = {} 2078 + if path.find('?') != -1: 2079 + path, qs = path.split('?', 1) 2080 + qs = qs.split('&') 2081 + for param in qs: 2082 + name, value = param.split('=', 1) 2083 + value = urllib.unquote(value) 2084 + params[name] = value 2085 + 2086 + args = zip(('user', 'password', 'host', 'port', 'path', 'params'), 2087 + (user, password, host, port, path, params)) 2088 + return scheme, dict([(key, value) for key, value in args if value]) 1800 + raise TracError, 'Los servidores MySQL anteriores a 4.1 no son soportados!' 1801 cnx.query('SET NAMES %s' % charset) 1802 cnx.store_result() 1803 cnx.charset = charset 2089 1804 Index: trac/versioncontrol/api.py 2090 1805 =================================================================== 2091 --- trac/versioncontrol/api.py (revision 57 02)1806 --- trac/versioncontrol/api.py (revision 5756) 2092 1807 +++ trac/versioncontrol/api.py (working copy) 2093 1808 @@ -88,9 +88,9 @@ … … 2144 1859 Index: trac/versioncontrol/svn_fs.py 2145 1860 =================================================================== 2146 --- trac/versioncontrol/svn_fs.py (revision 57 02)1861 --- trac/versioncontrol/svn_fs.py (revision 5756) 2147 1862 +++ trac/versioncontrol/svn_fs.py (working copy) 2148 1863 @@ -254,7 +254,7 @@ … … 2185 1900 Index: trac/versioncontrol/svn_authz.py 2186 1901 =================================================================== 2187 --- trac/versioncontrol/svn_authz.py (revision 57 02)1902 --- trac/versioncontrol/svn_authz.py (revision 5756) 2188 1903 +++ trac/versioncontrol/svn_authz.py (working copy) 2189 1904 @@ -41,7 +41,7 @@ … … 2198 1913 Index: trac/versioncontrol/web_ui/util.py 2199 1914 =================================================================== 2200 --- trac/versioncontrol/web_ui/util.py (revision 57 02)1915 --- trac/versioncontrol/web_ui/util.py (revision 5756) 2201 1916 +++ trac/versioncontrol/web_ui/util.py (working copy) 1917 @@ -72,7 +72,7 @@ 1918 return changes 1919 1920 def get_path_links(href, fullpath, rev): 1921 - links = [{'name': 'root', 'href': href.browser(rev=rev)}] 1922 + links = [{'name': 'raÃz', 'href': href.browser(rev=rev)}] 1923 path = '' 1924 for part in [p for p in fullpath.split('/') if p]: 1925 path += part + '/' 2202 1926 @@ -97,9 +97,9 @@ 2203 1927 try: … … 2215 1939 Index: trac/versioncontrol/web_ui/changeset.py 2216 1940 =================================================================== 2217 --- trac/versioncontrol/web_ui/changeset.py (revision 57 02)1941 --- trac/versioncontrol/web_ui/changeset.py (revision 5756) 2218 1942 +++ trac/versioncontrol/web_ui/changeset.py (working copy) 2219 1943 @@ -259,9 +259,9 @@ … … 2297 2021 Index: trac/versioncontrol/web_ui/log.py 2298 2022 =================================================================== 2299 --- trac/versioncontrol/web_ui/log.py (revision 57 02)2023 --- trac/versioncontrol/web_ui/log.py (revision 5756) 2300 2024 +++ trac/versioncontrol/web_ui/log.py (working copy) 2301 2025 @@ -94,7 +94,7 @@ … … 2346 2070 Index: trac/versioncontrol/web_ui/browser.py 2347 2071 =================================================================== 2348 --- trac/versioncontrol/web_ui/browser.py (revision 57 02)2072 --- trac/versioncontrol/web_ui/browser.py (revision 5756) 2349 2073 +++ trac/versioncontrol/web_ui/browser.py (working copy) 2350 2074 @@ -78,7 +78,7 @@ … … 2353 2077 yield ('mainnav', 'browser', 2354 2078 - html.A('Browse Source', href=req.href.browser())) 2355 + html.A(' Ver código fuente', href=req.href.browser()))2079 + html.A('Explorar repositorio', href=req.href.browser())) 2356 2080 2357 2081 # IPermissionRequestor methods … … 2395 2119 Index: trac/versioncontrol/cache.py 2396 2120 =================================================================== 2397 --- trac/versioncontrol/cache.py (revision 57 02)2121 --- trac/versioncontrol/cache.py (revision 5756) 2398 2122 +++ trac/versioncontrol/cache.py (working copy) 2399 2123 @@ -79,16 +79,16 @@ … … 2476 2200 Index: trac/Settings.py 2477 2201 =================================================================== 2478 --- trac/Settings.py (revision 57 02)2202 --- trac/Settings.py (revision 5756) 2479 2203 +++ trac/Settings.py (working copy) 2480 2204 @@ -33,7 +33,7 @@ … … 2498 2222 Index: trac/scripts/admin.py 2499 2223 =================================================================== 2500 --- trac/scripts/admin.py (revision 57 02)2224 --- trac/scripts/admin.py (revision 5756) 2501 2225 +++ trac/scripts/admin.py (working copy) 2502 2226 @@ -67,8 +67,8 @@ … … 3192 2916 Index: trac/scripts/tests/admin.py 3193 2917 =================================================================== 3194 --- trac/scripts/tests/admin.py (revision 57 02)2918 --- trac/scripts/tests/admin.py (revision 5756) 3195 2919 +++ trac/scripts/tests/admin.py (working copy) 3196 2920 @@ -185,7 +185,7 @@ … … 3241 2965 Index: trac/perm.py 3242 2966 =================================================================== 3243 --- trac/perm.py (revision 57 02)2967 --- trac/perm.py (revision 5756) 3244 2968 +++ trac/perm.py (working copy) 3245 2969 @@ -32,7 +32,7 @@ … … 3263 2987 Index: trac/Search.py 3264 2988 =================================================================== 3265 --- trac/Search.py (revision 57 02)2989 --- trac/Search.py (revision 5756) 3266 2990 +++ trac/Search.py (working copy) 3267 2991 @@ -74,7 +74,7 @@ … … 3340 3064 Index: trac/config.py 3341 3065 =================================================================== 3342 --- trac/config.py (revision 57 02)3066 --- trac/config.py (revision 5756) 3343 3067 +++ trac/config.py (working copy) 3344 3068 @@ -220,7 +220,7 @@ … … 3375 3099 Index: trac/loader.py 3376 3100 =================================================================== 3377 --- trac/loader.py (revision 57 02)3101 --- trac/loader.py (revision 5756) 3378 3102 +++ trac/loader.py (working copy) 3379 3103 @@ -47,7 +47,7 @@ … … 3450 3174 Index: trac/Timeline.py 3451 3175 =================================================================== 3452 --- trac/Timeline.py (revision 57 02)3176 --- trac/Timeline.py (revision 5756) 3453 3177 +++ trac/Timeline.py (working copy) 3454 3178 @@ -77,7 +77,7 @@ … … 3457 3181 yield ('mainnav', 'timeline', 3458 3182 - html.A('Timeline', href=req.href.timeline(), accesskey=2)) 3459 + html.A(' Histórico', href=req.href.timeline(), accesskey=2))3183 + html.A('CronologÃa', href=req.href.timeline(), accesskey=2)) 3460 3184 3461 3185 # IPermissionRequestor methods … … 3466 3190 3467 3191 - req.hdf['title'] = 'Timeline' 3468 + req.hdf['title'] = ' Histórico'3192 + req.hdf['title'] = 'CronologÃa' 3469 3193 3470 3194 # Get the email addresses of all known users … … 3480 3204 - '<a href="%s">Timeline</a></p>', 3481 3205 + '<p>Tal vez quiera ver los otros tipos de eventos del ' 3482 + '<a href="%s"> Histórico</a></p>',3206 + '<a href="%s">CronologÃa</a></p>', 3483 3207 ", ".join(guilty_kinds), ep_name, exc_name, to_unicode(exc), href)) 3484 3208 Index: trac/About.py 3485 3209 =================================================================== 3486 --- trac/About.py (revision 57 02)3210 --- trac/About.py (revision 5756) 3487 3211 +++ trac/About.py (working copy) 3488 3212 @@ -38,7 +38,7 @@ … … 3506 3230 Index: trac/wiki/api.py 3507 3231 =================================================================== 3508 --- trac/wiki/api.py (revision 57 02)3232 --- trac/wiki/api.py (revision 5756) 3509 3233 +++ trac/wiki/api.py (working copy) 3510 3234 @@ -143,7 +143,7 @@ … … 3537 3261 Index: trac/wiki/web_ui.py 3538 3262 =================================================================== 3539 --- trac/wiki/web_ui.py (revision 57 02)3263 --- trac/wiki/web_ui.py (revision 5756) 3540 3264 +++ trac/wiki/web_ui.py (working copy) 3265 @@ -51,7 +51,7 @@ 3266 3267 # IContentConverter methods 3268 def get_supported_conversions(self): 3269 - yield ('txt', 'Plain Text', 'txt', 'text/x-trac-wiki', 'text/plain', 9) 3270 + yield ('txt', 'Texto Plano', 'txt', 'text/x-trac-wiki', 'text/plain', 9) 3271 3272 def convert_content(self, req, mimetype, content, key): 3273 return (content, 'text/plain;charset=utf-8') 3541 3274 @@ -67,7 +67,7 @@ 3542 3275 yield ('mainnav', 'wiki', … … 3624 3357 Index: trac/wiki/intertrac.py 3625 3358 =================================================================== 3626 --- trac/wiki/intertrac.py (revision 57 02)3359 --- trac/wiki/intertrac.py (revision 5756) 3627 3360 +++ trac/wiki/intertrac.py (working copy) 3628 3361 @@ -41,13 +41,13 @@ … … 3669 3402 Index: trac/wiki/model.py 3670 3403 =================================================================== 3671 --- trac/wiki/model.py (revision 57 02)3404 --- trac/wiki/model.py (revision 5756) 3672 3405 +++ trac/wiki/model.py (working copy) 3673 3406 @@ -68,7 +68,7 @@ … … 3706 3439 Index: trac/wiki/formatter.py 3707 3440 =================================================================== 3708 --- trac/wiki/formatter.py (revision 57 02)3441 --- trac/wiki/formatter.py (revision 5756) 3709 3442 +++ trac/wiki/formatter.py (working copy) 3710 3443 @@ -72,7 +72,7 @@ … … 3758 3491 Index: trac/wiki/macros.py 3759 3492 =================================================================== 3760 --- trac/wiki/macros.py (revision 57 02)3493 --- trac/wiki/macros.py (revision 5756) 3761 3494 +++ trac/wiki/macros.py (working copy) 3762 3495 @@ -252,7 +252,7 @@ … … 3825 3558 Index: trac/wiki/interwiki.py 3826 3559 =================================================================== 3827 --- trac/wiki/interwiki.py (revision 57 02)3560 --- trac/wiki/interwiki.py (revision 5756) 3828 3561 +++ trac/wiki/interwiki.py (working copy) 3829 3562 @@ -131,7 +131,7 @@ … … 3847 3580 Index: trac/upgrades/db10.py 3848 3581 =================================================================== 3849 --- trac/upgrades/db10.py (revision 57 02)3582 --- trac/upgrades/db10.py (revision 5756) 3850 3583 +++ trac/upgrades/db10.py (working copy) 3851 3584 @@ -22,4 +22,4 @@ … … 3857 3590 Index: trac/web/standalone.py 3858 3591 =================================================================== 3859 --- trac/web/standalone.py (revision 57 02)3592 --- trac/web/standalone.py (revision 5756) 3860 3593 +++ trac/web/standalone.py (working copy) 3861 3594 @@ -106,26 +106,26 @@ … … 3945 3678 Index: trac/web/auth.py 3946 3679 =================================================================== 3947 --- trac/web/auth.py (revision 57 02)3680 --- trac/web/auth.py (revision 5756) 3948 3681 +++ trac/web/auth.py (working copy) 3949 @@ -83, 7 +83,7@@3682 @@ -83,12 +83,12 @@ 3950 3683 3951 3684 def get_navigation_items(self, req): … … 3954 3687 + yield ('metanav', 'login', 'sesión iniciada como %s' % req.authname) 3955 3688 yield ('metanav', 'logout', 3956 html.A('Logout', href=req.href.logout())) 3689 - html.A('Logout', href=req.href.logout())) 3690 + html.A('Cerrar Sesión', href=req.href.logout())) 3957 3691 else: 3692 yield ('metanav', 'login', 3693 - html.A('Login', href=req.href.login())) 3694 + html.A('Iniciar Sesión', href=req.href.login())) 3695 3696 # IRequestHandler methods 3697 3958 3698 @@ -119,10 +119,10 @@ 3959 3699 case sensitive regarding user names and domain names … … 4020 3760 Index: trac/web/api.py 4021 3761 =================================================================== 4022 --- trac/web/api.py (revision 57 02)3762 --- trac/web/api.py (revision 5756) 4023 3763 +++ trac/web/api.py (working copy) 4024 3764 @@ -408,7 +408,7 @@ … … 4033 3773 Index: trac/web/clearsilver.py 4034 3774 =================================================================== 4035 --- trac/web/clearsilver.py (revision 57 02)3775 --- trac/web/clearsilver.py (revision 5756) 4036 3776 +++ trac/web/clearsilver.py (working copy) 4037 3777 @@ -132,7 +132,7 @@ … … 4046 3786 Index: trac/web/chrome.py 4047 3787 =================================================================== 4048 --- trac/web/chrome.py (revision 57 02)3788 --- trac/web/chrome.py (revision 5756) 4049 3789 +++ trac/web/chrome.py (working copy) 4050 3790 @@ -230,7 +230,7 @@ … … 4059 3799 Index: trac/web/session.py 4060 3800 =================================================================== 4061 --- trac/web/session.py (revision 57 02)3801 --- trac/web/session.py (revision 5756) 4062 3802 +++ trac/web/session.py (working copy) 4063 3803 @@ -99,10 +99,10 @@ … … 4078 3818 Index: trac/util/tests/text.py 4079 3819 =================================================================== 4080 --- trac/util/tests/text.py (revision 57 02)3820 --- trac/util/tests/text.py (revision 5756) 4081 3821 +++ trac/util/tests/text.py (working copy) 4082 3822 @@ -25,9 +25,9 @@ … … 4094 3834 Index: trac/util/datefmt.py 4095 3835 =================================================================== 4096 --- trac/util/datefmt.py (revision 57 02)3836 --- trac/util/datefmt.py (revision 5756) 4097 3837 +++ trac/util/datefmt.py (working copy) 4098 3838 @@ -30,17 +30,17 @@ … … 4130 3870 Index: trac/notification.py 4131 3871 =================================================================== 4132 --- trac/notification.py (revision 57 02)3872 --- trac/notification.py (revision 5756) 4133 3873 +++ trac/notification.py (working copy) 4134 3874 @@ -190,7 +190,7 @@ tracspanishtranslation/0.10/patchs/trac-spanish-templates_utf-8.svndiff
r2322 r2336 1 1 Index: templates/report.cs 2 2 =================================================================== 3 --- templates/report.cs (revision 57 02)3 --- templates/report.cs (revision 5756) 4 4 +++ templates/report.cs (working copy) 5 5 @@ -5,11 +5,11 @@ … … 145 145 - creating reports. 146 146 + <strong>Nota:</strong> Véa <a href="<?cs 147 + var:trac.href.wiki ?>/TracReports">TracReports</a> para ayuda acerca deutilizar147 + var:trac.href.wiki ?>/TracReports">TracReports</a> para ayuda sobre cómo utilizar 148 148 + y crear reportes. 149 149 </div> … … 152 152 Index: templates/anydiff.cs 153 153 =================================================================== 154 --- templates/anydiff.cs (revision 57 02)154 --- templates/anydiff.cs (revision 5756) 155 155 +++ templates/anydiff.cs (working copy) 156 156 @@ -4,41 +4,41 @@ … … 200 200 - ?>/TracChangeset#ExaminingDifferencesBetweenBranches">TracChangeset</a> for help on using the arbitrary diff feature. 201 201 + <strong>Nota:</strong> Véa <a href="<?cs var:trac.href.wiki 202 + ?>/TracChangeset#ExaminingDifferencesBetweenBranches">TracChangeset</a> para ayuda acerca deutilizar la caracterÃstica 'diff arbitrario'.202 + ?>/TracChangeset#ExaminingDifferencesBetweenBranches">TracChangeset</a> para ayuda sobre cómo utilizar la caracterÃstica 'diff arbitrario'. 203 203 </div> 204 204 </div> … … 206 206 Index: templates/log.cs 207 207 =================================================================== 208 --- templates/log.cs (revision 57 02)208 --- templates/log.cs (revision 5756) 209 209 +++ templates/log.cs (working copy) 210 210 @@ -4,18 +4,18 @@ … … 382 382 - ?>/TracRevisionLog">TracRevisionLog</a> for help on using the revision log. 383 383 + <strong>Nota:</strong> Véa <a href="<?cs var:trac.href.wiki 384 + ?>/TracRevisionLog">TracRevisionLog</a> para ayuda acerca deutilizar la bitácora de revisiones.384 + ?>/TracRevisionLog">TracRevisionLog</a> para ayuda sobre cómo utilizar la bitácora de revisiones. 385 385 </div> 386 386 … … 388 388 Index: templates/ticket_notify_email.cs 389 389 =================================================================== 390 --- templates/ticket_notify_email.cs (revision 57 02)390 --- templates/ticket_notify_email.cs (revision 5756) 391 391 +++ templates/ticket_notify_email.cs (working copy) 392 392 @@ -4,20 +4,20 @@ … … 418 418 Index: templates/browser.cs 419 419 =================================================================== 420 --- templates/browser.cs (revision 57 02)420 --- templates/browser.cs (revision 5756) 421 421 +++ templates/browser.cs (working copy) 422 422 @@ -4,9 +4,9 @@ … … 461 461 - call:sortable_th(browser.order, browser.desc, 'date', 'Age', browser.order_href) ?> 462 462 - <th class="change">Last Change</th> 463 + call:sortable_th(browser.order, browser.desc, 'date', ' Edad', browser.order_href) ?>463 + call:sortable_th(browser.order, browser.desc, 'date', 'AntigÃŒedad', browser.order_href) ?> 464 464 + <th class="change">Ãltima modificación</th> 465 465 </tr> … … 500 500 - (checked in by <?cs var:file.author ?>, <?cs var:file.age ?> ago) 501 501 + Revisión <a href="<?cs var:file.changeset_href ?>"><?cs var:file.rev ?></a>, <?cs var:file.size ?> 502 + (creada por <?cs var:file.author ?>, edad <?cs var:file.age ?>)502 + (creada por <?cs var:file.author ?>, antigÃŒedad <?cs var:file.age ?>) 503 503 </th></tr><tr> 504 504 <td class="message"><?cs var:file.message ?></td> … … 534 534 - ?>/TracBrowser">TracBrowser</a> for help on using the browser. 535 535 + <strong>Nota:</strong> Véa <a href="<?cs var:trac.href.wiki 536 + ?>/TracBrowser">TracBrowser</a> para ayuda acerca de explorar el repositorio.536 + ?>/TracBrowser">TracBrowser</a> para ayuda sobre explorar el repositorio. 537 537 </div> 538 538 … … 549 549 Index: templates/roadmap.cs 550 550 =================================================================== 551 --- templates/roadmap.cs (revision 57 02)551 --- templates/roadmap.cs (revision 5756) 552 552 +++ templates/roadmap.cs (working copy) 553 553 @@ -4,35 +4,35 @@ … … 639 639 - var:trac.href.wiki ?>/TracRoadmap">TracRoadmap</a> for help on using the roadmap. 640 640 + <strong>Note:</strong> Véa <a href="<?cs 641 + var:trac.href.wiki ?>/TracRoadmap">TracRoadmap</a> para ayuda acerca deutilizar hitos.641 + var:trac.href.wiki ?>/TracRoadmap">TracRoadmap</a> para ayuda sobre cómo utilizar hitos. 642 642 </div> 643 643 … … 645 645 Index: templates/ticket.cs 646 646 =================================================================== 647 --- templates/ticket.cs (revision 57 02)647 --- templates/ticket.cs (revision 5756) 648 648 +++ templates/ticket.cs (working copy) 649 649 @@ -8,20 +8,20 @@ … … 889 889 Index: templates/macros.cs 890 890 =================================================================== 891 --- templates/macros.cs (revision 57 02)891 --- templates/macros.cs (revision 5756) 892 892 +++ templates/macros.cs (working copy) 893 893 @@ -21,9 +21,9 @@ … … 931 931 Index: templates/header.cs 932 932 ======
