29 Commits

Author SHA1 Message Date
Jean-Philippe Fleury
6a44af34e1 Fix issue 773. 2011-12-02 01:20:14 +01:00
Jean-Philippe Fleury
7342566c6e Use positional arguments everywhere where we put more than one
string into a translatable sentence to ease the work on more
exotic translations.
2011-12-02 01:16:00 +01:00
Jean-Philippe Fleury
bfc568967b Fix issue 765. 2011-11-30 18:06:36 +01:00
Jean-Philippe Fleury
154597c09c Fix issue 763. 2011-11-30 17:44:03 +01:00
Jean-Philippe Fleury
8f886155b0 Improve the wording in some source strings where we refer to "here"
which might be hard to grasp when read out of context, e.g. for
screen readers.
2011-11-29 00:20:15 +01:00
Jean-Philippe Fleury
df1130b4c9 Multiple fixes to English language strings. 2011-11-29 00:13:28 +01:00
Thomas Keller
c9f2575469 Bump version to 1.2.1-dev 2011-11-07 00:35:15 +01:00
Thomas Keller
5101ae5f35 Set a release date for 1.2 and the version. 2011-11-07 00:06:48 +01:00
Thomas Keller
aa09862059 Turkish and Brazilian Portuguese translations started.
Russian translation included by default (>= 80% translated).
Remaining translations updated / merged.
2011-11-05 15:13:07 +01:00
Thomas Keller
884f50155c Fix issue 740. 2011-11-05 14:46:31 +01:00
Thomas Keller
cf684c1514 Pulled the French translation work from Delkia and jpfleury. 2011-11-02 09:54:32 +01:00
Thomas Keller
91b189b75f Relation verbs weren't properly translated as they should. 2011-11-01 01:15:23 +01:00
Thomas Keller
623c562054 Give the context area a little top padding which lets it look less attached to the upper window border when the page is scrolled and the element is fixed. 2011-11-01 00:58:13 +01:00
Thomas Keller
8a9f8c66e8 A first stab at updating the German translation for 1.2. 2011-11-01 00:22:00 +01:00
Thomas Keller
81f433085a Limit the available render width for help texts a little and don't put them right below the previous form element. 2011-11-01 00:11:55 +01:00
Thomas Keller
6e59a0a526 Add Gert to AUTHORS 2011-10-31 23:21:44 +01:00
Gert van Valkenhoef
8397d86313 No longer fail to remove a non-existing post-update hook on repository
creation (fixes issue 752)
2011-10-31 23:19:57 +01:00
Thomas Keller
b0ac05b608 Slightly reordered 2011-10-31 23:16:42 +01:00
Thomas Keller
48c3989ae3 Updated POT file with new strings. 2011-10-31 01:19:12 +01:00
Thomas Keller
b949b7e83a Properly quote paths. 2011-10-31 00:46:12 +01:00
Thomas Keller
ad7fad9fbe Updated russian translation from transifex and added new,
yet unknown author of it to AUTHORS.
2011-10-31 00:29:40 +01:00
Thomas Keller
d2db3b16d2 Fix issue 748. 2011-10-27 23:32:18 +02:00
Thomas Keller
ae11b1de4a split() is deprecated in php 5.3 2011-10-27 23:00:14 +02:00
Thomas Keller
6f620e3f54 Override the prettify css rules not only in the diff view, but in
the code views as well.
2011-10-20 17:29:16 +02:00
Thomas Keller
810b753edf Re-order the issue links so that "New Issue" goes to the very right
just before the search input field. Also rename "Open Issues" to
"All Issues" (since one can view both, open and closed issues under
this view, just like in every other issue list view we have) and
mark "All Issues" as active if we filter by label.
2011-10-10 22:32:08 +02:00
Thomas Keller
958fb1b9ad Merge branch 'develop' of projects.ceondo.com:indefero into develop 2011-10-10 20:56:03 +02:00
Thomas Keller
48992adefa Shuffle around a couple of NEWS entries, fix spelling and formatting
here and there.
2011-10-10 20:54:03 +02:00
Thomas Keller
d95e1e13e5 Merge branch 'feature.diff-whitespace' into develop 2011-10-10 15:44:20 +02:00
Thomas Keller
381dc5b8f7 Merge branch 'feature.diff-whitespace' into develop 2011-10-10 00:17:48 +02:00
56 changed files with 27809 additions and 17264 deletions

View File

@@ -17,18 +17,22 @@ Much appreciated contributors (in alphabetical order):
Denis Kot <denis.kot@gmail.com> - Russian translation
Dmitry Dulepov <dmitryd>
Fernando Sayago Gil <mikados.mikados@gmail.com> - Spanish translation
Gert van Valkenhoef <gertvv>
Jakub Viták <mainiak@gmail.com> - Czech translation
Janez Troha <http://www.dz0ny.info> - Slovenian translation
Jean-Philippe Fleury <jpfleury>
Jerry <lxb429@gmail.com> - Chinese translation
Julien Issler <julien@issler.net>
Litew <litew9@gmail.com> - Russian translation
Ludovic Bellière <xrogaan>
Manuel Eidenberger <eidenberger@gmail.com>
Matthew Dawson <mjd>
Matías Halles <matias@halles.cl>
Mehdi Kabab <http://pioupioum.fr/>
Nicolas Lassalle <nicolas@beroot.org> - Subversion support
Ozan <uobasar@gmail.com> - Turkish translation
Patrick Georgi <patrick.georgi@coresystems.de>
Pedro Kiefer <pedro@kiefer.com.br> - Brazilian Portuguese translation
Raphaël Emourgeon <raphael>
Samuel Suther <info@suther.de> - German translation
Sindre R. Myren <sindrero@stud.ntnu.no>

View File

@@ -62,11 +62,11 @@ pot-update: pluf_path
fi
touch src/IDF/locale/idf.pot;
# Extract string
@cd src; php $(PLUF_PATH)/extracttemplates.php IDF/conf/idf.php IDF/gettexttemplates
@cd src; php "$(PLUF_PATH)/extracttemplates.php" IDF/conf/idf.php IDF/gettexttemplates
@cd src; for phpfile in `find . -iname "*.php"`; do \
printf "Parsing file : "$$phpfile"\n"; \
xgettext -o idf.pot -p ./IDF/locale/ --from-code=UTF-8 -j \
--keyword --keyword=__ --keyword=_n:1,2 -L PHP $$phpfile ; \
--keyword --keyword=__ --keyword=_n:1,2 -L PHP "$$phpfile" ; \
done
# Remove tmp folder
rm -Rf src/IDF/gettexttemplates
@@ -76,7 +76,7 @@ pot-update: pluf_path
po-update: pluf_path
@for pofile in `ls src/IDF/locale/*/idf.po`; do \
printf "Updating file : "$$pofile"\n"; \
msgmerge -v -U $$pofile src/IDF/locale/idf.pot; \
msgmerge -v -U "$$pofile" src/IDF/locale/idf.pot; \
printf "\n"; \
done
@@ -144,7 +144,7 @@ po-stats:
--pretty=format:%h`.zip
db-install:
@cd src && php $(PLUF_PATH)/migrate.php --conf=IDF/conf/idf.php -a -d -i
@cd src && php "$(PLUF_PATH)/migrate.php" --conf=IDF/conf/idf.php -a -d -i
db-update:
@cd src && php $(PLUF_PATH)/migrate.php --conf=IDF/conf/idf.php -a -d
@cd src && php "$(PLUF_PATH)/migrate.php" --conf=IDF/conf/idf.php -a -d

View File

@@ -1,55 +1,85 @@
# InDefero 1.2 - xxx xxx xx xx:xx 2011 UTC
# InDefero 1.2.1 - XXX XXX XX XX:XX:XX UTC 201X
ATTENTION: You need Pluf [324ae60b](http://projects.ceondo.com/p/pluf/source/commit/324ae60b)
## Bugfixes
- The diff view now renders properly in Firefox when a minimum font size
is configured or the user zooms the web page (fixes issue 773)
## Language and Translations
- Multiple fixes to English source strings (fixes issues 763, 766, and 772,
thanks to JP Fleury!)
# InDefero 1.2 - Sun Nov 6 23:04:00 UTC 2011
ATTENTION: You need Pluf [46b7f251](http://projects.ceondo.com/p/pluf/source/commit/46b7f251)
or newer to properly run this version of Indefero!
## New Features
- Indefero's issue tracker can now bi-directionally link issues with variable, configurable
terms, such as "is related to", "is blocked by" or "is duplicated by" (issue 638)
- When you search for issues, the results can further be refined by issue state (open or closed)
and label (partially implements issue 548)
- Mercurial source views now show parent revisions (if any) and detailed change information
- Indefero's issue tracker can now bi-directionally link issues with variable,
configurable terms, such as "is related to", "is blocked by" or
"is duplicated by" (issue 638)
- When you search for issues, the results can further be refined by issue state
(open or closed) and label (partially implements issue 548)
- Source and diff views now make characters like line endings, tabs and other
"invisible" control characters visible on hover and cope with long lines much
better (issue 636)
- Mercurial source views now show parent revisions (if any) and detailed change
information
- Subversion source views now show detailed change information (issue 622)
- File download URLs now contain the file name rather than the upload id; old links still work though (issues 559 and 686)
- Display monotone file and directory attributes in the tree and file view
- File download URLs now contain the file name rather than the upload id;
old links still work though (issues 559 and 686)
- monotone file and directory attributes are displayed in the tree and file view
(needs a monotone with an interface version of 13.1 or newer)
- The context area is now kept in view when a page scrolls down several pages
- Add a summary section to the issue tracker with statistics about open/close issues,
tags of open issue, and count of open tickets for each owner.
- Improved home page with an customizable icon for each project.
- The download section provide MD5 for each files.
- Wiki page have now a css for printer output (issue 713)
- A summary section has been added to the issue tracker with statistics about
open / closed issues, unresolved issues grouped by tags and owners
- The project list and title has gathered a customizable icon for each project
- The download section now provides MD5 checksums for uploaded files
- Wiki pages now come with a designated stylesheet for printer output (issue 713)
## Bugfixes
- The SVN interface acts more robust if an underlying repository has been restructured (issues 364 and 721)
- Git's cron job doesn't erase manually added keys anymore (issue 247)
- The SVN interface acts more robust if an underlying repository has been
restructured (issues 364 and 721)
- monotone zip archive entries now all carry the revision date as mtime (issue 645)
- Timeline only displays filter options for items a user has actually access to (issue 655)
- The timeline only now only displays filter options for items a user has
actually access to (issue 655)
- The log, tags and branches parsers for Mercurial are more robust now (issue 663)
- Fix SSH public key parsing issues and improve the check for existing, uploaded keys (issue 679)
- Several SSH public key parsing issues have been fixed and the check for existing,
uploaded keys has been improved (issue 679)
- Diff views now show empty context lines for git and hg again (issue 688)
- Let the SVN command line client not store the login credentials we give him as arguments
- The SVN command line client no longer accidential tries to store the login
credentials we give him as arguments for the user executing the SVN command
- The usher section in the forge administration no longer displays a bogus
server enty in case no monotone server is configured in the connected
usher instance
- Prevent a timeout from popping up when Usher is restarted (issue 695)
- The SyncMonotone plugin now cleans up partial artifacts it created during the addition of
a new project or monotone key, in case an error popped up in the middle (issue 697)
- A timeout that popped up when Usher is restarted has been fixed (issue 695)
- The SyncMonotone plugin now cleans up partial artifacts it created during the
addition of a new project or monotone key, in case an error popped up in the
middle (issue 697)
- Indefero now sends the MD5 checksum as HTTP header when downloading a file from the
download area. Additionally, a unneeded redirect has been removed. (issue 716)
- Source links without a specific revision did not work due to a wrong regex (issue 730)
- Better error detection and reporting in the SyncMonotone plugin
ATTENTION: This needs Pluf 46b7f251 or newer!
- Fix the branch links users of the Subversion frontend get when they enter a wrong revision
and only display this list if there are any branches available for all SCMs
- If git's author name is not encoded in an UTF-8 compatible encoding, skip the author lookup,
as we have no information what the author string is actually encoded in
- Indefero no longer displays an empty parents paragraph in the commit view for root revisions of
a git repository
- Indefero now only shows the tags of the closed and not the open issues in the closed issues list
download area; additionally, a unneeded redirect has been removed (issue 716)
- Source links without a specific revision did not work due to a wrong regex
(issue 730)
- Avatar URL generation use correctly the configuration (issue 732)
- Git cron job doesn't erase anymore manually added keys (issue 247)
- The SyncGit plugin no longer fails to remove a non-existing post-update hook
on repository creation (issue 752)
- When uploading a project logo, an existing uploaded file with the same name
no longer leads to an error, but is simple overwritten (fixes issue 740)
- The error detection and reporting in the SyncMonotone plugin has been improved
- The branch links users of the Subversion frontend get when they enter a wrong
revision are fixed; this list is now also only displayed (for any SCM) if
there are actually branches available in the repository
- If git's author name is not encoded in an UTF-8 compatible encoding, skip the
author lookup, as we have no information what the author string is actually
encoded in
- Indefero no longer displays an empty parents paragraph in the commit view for
root revisions of a git repository
- Indefero now only shows the tags of the closed and not the open issues in the
closed issues list
## Documentation
@@ -57,6 +87,11 @@ or newer to properly run this version of Indefero!
## Translations
- The Russian translation has been enabled by default (thanks for all the great
work, Denis Kot and Litew!)
- Brazilian Portuguese translation started (thanks to Pedro Kiefer!)
- Turkish translation started (thanks to Ozan!)
# InDefero 1.1.2 - Thu May 26 07:42:25 2011 UTC
## Bugfixes

View File

@@ -235,7 +235,7 @@ class IDF_Commit extends Pluf_Model
</tr>
<tr class="extra">
<td colspan="2">
<div class="helptext right">'.sprintf(__('Commit&nbsp;%s, by %s'), '<a href="'.$url.'" class="mono">'.$this->scm_id.'</a>', $user).'</div></td></tr>';
<div class="helptext right">'.sprintf(__('Commit %1$s, by %2$s'), '<a href="'.$url.'" class="mono">'.$this->scm_id.'</a>', $user).'</div></td></tr>';
return Pluf_Template::markSafe($out);
}
@@ -326,7 +326,7 @@ class IDF_Commit extends Pluf_Model
foreach ($addresses as $address) {
$email = new Pluf_Mail(Pluf::f('from_email'),
$address,
sprintf(__('New Commit %s - %s (%s)'),
sprintf(__('New Commit %1$s - %2$s (%3$s)'),
$this->scm_id, $this->summary,
$this->get_project()->shortname));
$email->addTextMessage($text_email);

View File

@@ -182,17 +182,29 @@ class IDF_Diff
list($added, $removed) = end($file['chunks_def']);
$added = $added[0] + $added[1];
$leftwidth = 1;
$leftwidth = 0;
if ($added > 0)
$leftwidth = ((ceil(log10($added)) + 1) * 8) + 12;
$leftwidth = ((ceil(log10($added)) + 1) * 8) + 17;
$removed = $removed[0] + $removed[1];
$rightwidth = 1;
$rightwidth = 0;
if ($removed > 0)
$rightwidth = ((ceil(log10($removed)) + 1) * 8) + 12;
$rightwidth = ((ceil(log10($removed)) + 1) * 8) + 17;
// we need to correct the width of a single column a little
// to take less space and to hide the empty one
$class = '';
if ($leftwidth == 0) {
$class = 'left-hidden';
$rightwidth -= floor(log10($removed));
}
else if ($rightwidth == 0) {
$class = 'right-hidden';
$leftwidth -= floor(log10($added));
}
$inner_linecounts =
'<table class="diff-linecounts">' ."\n".
'<table class="diff-linecounts '.$class.'">' ."\n".
'<colgroup><col width="'.$leftwidth.'" /><col width="'. $rightwidth.'" /></colgroup>' ."\n".
'<tr class="line">' .
implode('</tr>'."\n".'<tr class="line">', $offsets).
@@ -399,11 +411,11 @@ class IDF_Diff
$leftwidth = 1;
if ($max_lineno_left > 0)
$leftwidth = ((ceil(log10($max_lineno_left)) + 1) * 8) + 12;
$leftwidth = ((ceil(log10($max_lineno_left)) + 1) * 8) + 17;
$rightwidth = 1;
if ($max_lineno_right > 0)
$rightwidth = ((ceil(log10($max_lineno_right)) + 1) * 8) + 12;
$rightwidth = ((ceil(log10($max_lineno_right)) + 1) * 8) + 17;
$inner_linecounts_left =
'<table class="diff-linecounts">' ."\n".

View File

@@ -199,7 +199,7 @@ class IDF_Form_Admin_ProjectCreate extends Pluf_Form
$mtn_master_branch)) {
throw new Pluf_Form_Invalid(__(
'The master branch is empty or contains illegal characters, '.
'please use only letters, digits, dashs and dots as separators.'
'please use only letters, digits, dashes and dots as separators.'
));
}

View File

@@ -161,7 +161,7 @@ class IDF_Form_Admin_UserUpdate extends Pluf_Form
'label' => __('Staff'),
'initial' => $this->user->staff,
'widget' => 'Pluf_Form_Widget_CheckboxInput',
'help_text' => __('If you give staff rights to a user, you really need to trust them.'),
'help_text' => __('If you give staff rights to a user, you really need to trust him.'),
));
}

View File

@@ -214,7 +214,7 @@ class IDF_Form_IssueCreate extends Pluf_Form
else $count[$class] += 1;
if (in_array($class, $onemax) and $count[$class] > 1) {
if (!isset($this->errors['label'.$i])) $this->errors['label'.$i] = array();
$this->errors['label'.$i][] = sprintf(__('You cannot provide more than label from the %s class to an issue.'), $class);
$this->errors['label'.$i][] = sprintf(__('You cannot provide more than one label from the %s class to an issue.'), $class);
throw new Pluf_Form_Invalid(__('You provided an invalid label.'));
}
}

View File

@@ -67,6 +67,7 @@ class IDF_Form_ProjectConf extends Pluf_Form
'move_function_params' =>
array('upload_path' => $upload_path,
'upload_path_create' => true,
'upload_overwrite' => true,
'file_name' => $filename,
)
));

View File

@@ -94,7 +94,7 @@ class IDF_Form_Register extends Pluf_Form
{
$this->cleaned_data['email'] = mb_strtolower(trim($this->cleaned_data['email']));
if (Pluf::factory('IDF_EmailAddress')->get_user_for_email_address($this->cleaned_data['email']) != null) {
throw new Pluf_Form_Invalid(sprintf(__('The email "%s" is already used. If you need to, click on the help link to recover your password.'), $this->cleaned_data['email']));
throw new Pluf_Form_Invalid(sprintf(__('The email "%1$s" is already used. If you need to, you can <a href="%2$s">recover your password</a>.'), $this->cleaned_data['email'], Pluf_HTTP_URL_urlForView('IDF_Views::passwordRecoveryAsk')));
}
return $this->cleaned_data['email'];
}

View File

@@ -107,7 +107,7 @@ class IDF_Form_RegisterConfirmation extends Pluf_Form
throw new Pluf_Form_Invalid($error);
}
if ($users[0]->active) {
throw new Pluf_Form_Invalid(__('This account has already been confirmed. Maybe should you try to recover your password using the help link.'));
throw new Pluf_Form_Invalid(sprintf(__('This account has already been confirmed. Maybe should you try to <a href="%s">recover your password</a>.'), Pluf_HTTP_URL_urlForView('IDF_Views::passwordRecoveryAsk')));
}
$this->_user_id = $email_id[1];
return $this->cleaned_data['key'];

View File

@@ -55,7 +55,7 @@ class IDF_Form_SourceConf extends Pluf_Form
array('required' => false,
'label' => __('Webhook URL'),
'initial' => $this->conf->getVal('webhook_url', ''),
'help_text' => sprintf(__('Learn more about the <a href="%s">post-commit web hooks</a>.'), $url),
'help_text' => sprintf(__('Learn more about the <a href="%s">post-commit webhooks</a>.'), $url),
'widget_attrs' => array('size' => 35),
));

View File

@@ -106,7 +106,7 @@ class IDF_Form_UpdateUpload extends Pluf_Form
else $count[$class] += 1;
if (in_array($class, $onemax) and $count[$class] > 1) {
if (!isset($this->errors['label'.$i])) $this->errors['label'.$i] = array();
$this->errors['label'.$i][] = sprintf(__('You cannot provide more than label from the %s class to an issue.'), $class);
$this->errors['label'.$i][] = sprintf(__('You cannot provide more than one label from the %s class to an issue.'), $class);
throw new Pluf_Form_Invalid(__('You provided an invalid label.'));
}
}

View File

@@ -116,7 +116,7 @@ class IDF_Form_Upload extends Pluf_Form
else $count[$class] += 1;
if (in_array($class, $onemax) and $count[$class] > 1) {
if (!isset($this->errors['label'.$i])) $this->errors['label'.$i] = array();
$this->errors['label'.$i][] = sprintf(__('You cannot provide more than label from the %s class to an issue.'), $class);
$this->errors['label'.$i][] = sprintf(__('You cannot provide more than one label from the %s class to an issue.'), $class);
throw new Pluf_Form_Invalid(__('You provided an invalid label.'));
}
}

View File

@@ -56,7 +56,7 @@ class IDF_Form_UserAccount extends Pluf_Form
$this->fields['email'] = new Pluf_Form_Field_Email(
array('required' => true,
'label' => __('Your mail'),
'label' => __('Your email'),
'initial' => $this->user->email,
'help_text' => __('If you change your email address, an email will be sent to the new address to confirm it.'),
));
@@ -168,9 +168,9 @@ class IDF_Form_UserAccount extends Pluf_Form
$this->fields['secondary_mail'] = new Pluf_Form_Field_Email(
array('required' => false,
'label' => __('Add a secondary mail address'),
'label' => __('Add a secondary email address'),
'initial' => '',
'help_text' => __('You will get a mail to confirm that you own the address you specify.'),
'help_text' => __('You will get an email to confirm that you own the address you specify.'),
));
}

View File

@@ -147,7 +147,7 @@ Add your content here. Format your content with:
else $count[$class] += 1;
if (in_array($class, $onemax) and $count[$class] > 1) {
if (!isset($this->errors['label'.$i])) $this->errors['label'.$i] = array();
$this->errors['label'.$i][] = sprintf(__('You cannot provide more than label from the %s class to a page.'), $class);
$this->errors['label'.$i][] = sprintf(__('You cannot provide more than one label from the %s class to a page.'), $class);
throw new Pluf_Form_Invalid(__('You provided an invalid label.'));
}
}

View File

@@ -158,7 +158,7 @@ class IDF_Form_WikiUpdate extends Pluf_Form
else $count[$class] += 1;
if (in_array($class, $onemax) and $count[$class] > 1) {
if (!isset($this->errors['label'.$i])) $this->errors['label'.$i] = array();
$this->errors['label'.$i][] = sprintf(__('You cannot provide more than label from the %s class to a page.'), $class);
$this->errors['label'.$i][] = sprintf(__('You cannot provide more than one label from the %s class to a page.'), $class);
throw new Pluf_Form_Invalid(__('You provided an invalid label.'));
}
}

View File

@@ -211,7 +211,7 @@ class IDF_Issue extends Pluf_Model
$ic = (in_array($this->status, $request->project->getTagIdsByStatus('closed'))) ? 'issue-c' : 'issue-o';
$out .= sprintf(__('<a href="%1$s" class="%2$s" title="View issue">Issue %3$d</a>, %4$s'), $url, $ic, $this->id, Pluf_esc($this->summary)).'</td>';
$out .= "\n".'<tr class="extra"><td colspan="2">
<div class="helptext right">'.sprintf(__('Creation of <a href="%s" class="%s">issue&nbsp;%d</a>, by %s'), $url, $ic, $this->id, $user).'</div></td></tr>';
<div class="helptext right">'.sprintf(__('Creation of <a href="%1$s" class="%2$s">issue %3$d</a>, by %4$s'), $url, $ic, $this->id, $user).'</div></td></tr>';
return Pluf_Template::markSafe($out);
}
@@ -221,7 +221,7 @@ class IDF_Issue extends Pluf_Model
.Pluf_HTTP_URL_urlForView('IDF_Views_Issue::view',
array($request->project->shortname,
$this->id));
$title = sprintf(__('%s: Issue %d created - %s'),
$title = sprintf(__('%1$s: Issue %2$d created - %3$s'),
$request->project->name,
$this->id, $this->summary);
$cts = $this->get_comments_list(array('order' => 'id ASC',
@@ -287,7 +287,7 @@ class IDF_Issue extends Pluf_Model
foreach ($to_email as $email_lang) {
Pluf_Translation::loadSetLocale($email_lang[1]);
$email = new Pluf_Mail(Pluf::f('from_email'), $email_lang[0],
sprintf(__('Issue %s - %s (%s)'),
sprintf(__('Issue %1$s - %2$s (%3$s)'),
$this->id, $this->summary, $prj->shortname));
$tmpl = new Pluf_Template('idf/issues/issue-created-email.txt');
$email->addTextMessage($tmpl->render($context));
@@ -333,7 +333,7 @@ class IDF_Issue extends Pluf_Model
}
Pluf_Translation::loadSetLocale($email_lang[1]);
$email = new Pluf_Mail(Pluf::f('from_email'), $email_lang[0],
sprintf(__('Updated Issue %s - %s (%s)'),
sprintf(__('Updated Issue %1$s - %2$s (%3$s)'),
$this->id, $this->summary, $prj->shortname));
$tmpl = new Pluf_Template('idf/issues/issue-updated-email.txt');
$email->addTextMessage($tmpl->render($context));
@@ -343,4 +343,4 @@ class IDF_Issue extends Pluf_Model
}
Pluf_Translation::loadSetLocale($current_locale);
}
}
}

View File

@@ -177,7 +177,7 @@ class IDF_IssueComment extends Pluf_Model
}
$out .= '</td></tr>';
$out .= "\n".'<tr class="extra"><td colspan="2">
<div class="helptext right">'.sprintf(__('Comment on <a href="%s" class="%s">issue&nbsp;%d</a>, by %s'), $url, $ic, $issue->id, $user).'</div></td></tr>';
<div class="helptext right">'.sprintf(__('Comment on <a href="%1$s" class="%2$s">issue %3$d</a>, by %4$s'), $url, $ic, $issue->id, $user).'</div></td></tr>';
return Pluf_Template::markSafe($out);
}
@@ -188,7 +188,7 @@ class IDF_IssueComment extends Pluf_Model
.Pluf_HTTP_URL_urlForView('IDF_Views_Issue::view',
array($request->project->shortname,
$issue->id));
$title = sprintf(__('%s: Comment on issue %d - %s'),
$title = sprintf(__('%1$s: Comment on issue %2$d - %3$s'),
Pluf_esc($request->project->name),
$issue->id, Pluf_esc($issue->summary));
$url .= '#ic'.$this->id;

View File

@@ -210,22 +210,23 @@ class IDF_Plugin_SyncGit_Serve
// Indefero's one.
$p = realpath(dirname(__FILE__).'/../../../../scripts/git-post-update');
$p = Pluf::f('idf_plugin_syncgit_post_update', $p);
if (!@unlink($fullpath.'/hooks/post-update')) {
$post_update_hook = $fullpath.'/hooks/post-update';
if (file_exists($post_update_hook) && !@unlink($post_update_hook)) {
Pluf_Log::warn(array('IDF_Plugin_Git_Serve::initRepository',
'post-update hook removal error.',
$fullpath.'/hooks/post-update'));
$post_update_hook));
return;
}
$out = array();
$res = 0;
exec(sprintf(Pluf::f('idf_exec_cmd_prefix', '').'ln -s %s %s',
escapeshellarg($p),
escapeshellarg($fullpath.'/hooks/post-update')),
escapeshellarg($post_update_hook)),
$out, $res);
if ($res != 0) {
Pluf_Log::warn(array('IDF_Plugin_Git_Serve::initRepository',
'post-update hook creation error.',
$fullpath.'/hooks/post-update'));
$post_update_hook));
return;
}
Pluf_Log::debug(array('IDF_Plugin_Git_Serve::initRepository',

View File

@@ -306,7 +306,7 @@ class IDF_Plugin_SyncMonotone
}
catch (Exception $e) {
$this->_diagnoseProblem(sprintf(
__('Could not parse usher configuration in "%s": %s'),
__('Could not parse usher configuration in "%1$s": %2$s'),
$usher_config, $e->getMessage()
));
}
@@ -522,7 +522,7 @@ class IDF_Plugin_SyncMonotone
}
catch (Exception $e) {
$this->_diagnoseProblem(sprintf(
__('Could not parse usher configuration in "%s": %s'),
__('Could not parse usher configuration in "%1$s": %2$s'),
$usher_config, $e->getMessage()
));
}
@@ -596,7 +596,7 @@ class IDF_Plugin_SyncMonotone
}
catch (Exception $e) {
$this->_diagnoseProblem(sprintf(
__('Could not parse read-permissions for project "%s": %s'),
__('Could not parse read-permissions for project "%1$s": %2$s'),
$shortname, $e->getMessage()
));
}
@@ -715,7 +715,7 @@ class IDF_Plugin_SyncMonotone
}
catch (Exception $e) {
$this->_diagnoseProblem(sprintf(
__('Could not parse read-permissions for project "%s": %s'),
__('Could not parse read-permissions for project "%1$s": %2$s'),
$shortname, $e->getMessage()
));
}

View File

@@ -67,7 +67,7 @@ class IDF_Project extends Pluf_Model
'blank' => false,
'size' => 50,
'verbose' => __('short name'),
'help_text' => __('Used in the url to access the project, must be short with only letters and numbers.'),
'help_text' => __('Used in the URL to access the project, must be short with only letters and numbers.'),
'unique' => true,
),
'shortdesc' =>
@@ -84,7 +84,7 @@ class IDF_Project extends Pluf_Model
'blank' => false,
'size' => 250,
'verbose' => __('description'),
'help_text' => __('The description can be extended using the markdown syntax.'),
'help_text' => __('The description can be extended using the Markdown syntax.'),
),
'private' =>
array(

View File

@@ -138,7 +138,7 @@ class IDF_Review_Comment extends Pluf_Model
$ic = (in_array($review->status, $request->project->getTagIdsByStatus('closed'))) ? 'issue-c' : 'issue-o';
$out .= sprintf(__('<a href="%1$s" class="%2$s" title="View review">Review %3$d</a>, %4$s'), $url, $ic, $review->id, Pluf_esc($review->summary)).'</td>';
$out .= "\n".'<tr class="extra"><td colspan="2">
<div class="helptext right">'.sprintf(__('Update of <a href="%s" class="%s">review&nbsp;%d</a>, by %s'), $url, $ic, $review->id, $user).'</div></td></tr>';
<div class="helptext right">'.sprintf(__('Update of <a href="%1$s" class="%2$s">review %3$d</a>, by %4$s'), $url, $ic, $review->id, $user).'</div></td></tr>';
return Pluf_Template::markSafe($out);
}
@@ -148,7 +148,7 @@ class IDF_Review_Comment extends Pluf_Model
$url = Pluf_HTTP_URL_urlForView('IDF_Views_Review::view',
array($request->project->shortname,
$review->id));
$title = sprintf(__('%s: Updated review %d - %s'),
$title = sprintf(__('%1$s: Updated review %2$d - %3$s'),
Pluf_esc($request->project->name),
$review->id, Pluf_esc($review->summary));
$url .= '#ic'.$this->id;
@@ -213,7 +213,7 @@ class IDF_Review_Comment extends Pluf_Model
foreach ($to_email as $email_lang) {
Pluf_Translation::loadSetLocale($email_lang[1]);
$email = new Pluf_Mail(Pluf::f('from_email'), $email_lang[0],
sprintf(__('Updated Code Review %s - %s (%s)'),
sprintf(__('Updated Code Review %1$s - %2$s (%3$s)'),
$review->id, $review->summary, $prj->shortname));
$email->addTextMessage($tmpl->render($context));

View File

@@ -150,7 +150,7 @@ class IDF_Review_Patch extends Pluf_Model
$ic = (in_array($review->status, $request->project->getTagIdsByStatus('closed'))) ? 'issue-c' : 'issue-o';
$out .= sprintf(__('<a href="%1$s" class="%2$s" title="View review">Review %3$d</a>, %4$s'), $url, $ic, $review->id, Pluf_esc($review->summary)).'</td>';
$out .= "\n".'<tr class="extra"><td colspan="2">
<div class="helptext right">'.sprintf(__('Creation of <a href="%s" class="%s">review&nbsp;%d</a>, by %s'), $url, $ic, $review->id, $user).'</div></td></tr>';
<div class="helptext right">'.sprintf(__('Creation of <a href="%1$s" class="%2$s">review %3$d</a>, by %4$s'), $url, $ic, $review->id, $user).'</div></td></tr>';
return Pluf_Template::markSafe($out);
}
@@ -160,7 +160,7 @@ class IDF_Review_Patch extends Pluf_Model
$url = Pluf_HTTP_URL_urlForView('IDF_Views_Review::view',
array($request->project->shortname,
$review->id));
$title = sprintf(__('%s: Creation of Review %d - %s'),
$title = sprintf(__('%1$s: Creation of Review %2$d - %3$s'),
Pluf_esc($request->project->name),
$review->id, Pluf_esc($review->summary));
$date = Pluf_Date::gmDateToGmString($this->creation_dtime);
@@ -201,7 +201,7 @@ class IDF_Review_Patch extends Pluf_Model
foreach ($addresses as $address) {
$email = new Pluf_Mail(Pluf::f('from_email'),
$address,
sprintf(__('New Code Review %s - %s (%s)'),
sprintf(__('New Code Review %1$s - %2$s (%3$s)'),
$this->get_review()->id,
$this->get_review()->summary,
$this->get_review()->get_project()->shortname));

View File

@@ -87,7 +87,7 @@ class IDF_Scm_Git extends IDF_Scm
$filename = trim(substr($line, 1));
$return->patches[] = $filename;
} else if ($action == 'R') {
$matches = split ("\t", $line);
$matches = preg_split("/\t/", $line);
$return->renames[$matches[1]] = $matches[2];
}
}

View File

@@ -22,7 +22,7 @@
# ***** END LICENSE BLOCK ***** */
/**
* Storage of the occurence of the words.
* Storage of the occurrence of the words.
*/
class IDF_Search_Occ extends Pluf_Model
{
@@ -30,7 +30,7 @@ class IDF_Search_Occ extends Pluf_Model
function init()
{
$this->_a['verbose'] = __('occurence');
$this->_a['verbose'] = __('occurrence');
$this->_a['table'] = 'idf_search_occs';
$this->_a['model'] = 'IDF_Search_Occ';
$this->_a['cols'] = array(
@@ -72,13 +72,13 @@ class IDF_Search_Occ extends Pluf_Model
array(
'type' => 'Pluf_DB_Field_Integer',
'blank' => false,
'verbose' => __('occurences'),
'verbose' => __('occurrences'),
),
'pondocc' =>
array(
'type' => 'Pluf_DB_Field_Float',
'blank' => false,
'verbose' => __('ponderated occurence'),
'verbose' => __('ponderated occurrence'),
),
);
$this->_a['idx'] = array(

View File

@@ -201,7 +201,7 @@ class IDF_Upload extends Pluf_Model
$out .= sprintf(__('<a href="%1$s" title="View download">Download %2$d</a>, %3$s'), $url, $this->id, Pluf_esc($this->summary)).'</td>';
$out .= '</tr>';
$out .= "\n".'<tr class="extra"><td colspan="2">
<div class="helptext right">'.sprintf(__('Addition of <a href="%s">download&nbsp;%d</a>, by %s'), $url, $this->id, $user).'</div></td></tr>';
<div class="helptext right">'.sprintf(__('Addition of <a href="%1$s">download %2$d</a>, by %3$s'), $url, $this->id, $user).'</div></td></tr>';
return Pluf_Template::markSafe($out);
}
@@ -211,7 +211,7 @@ class IDF_Upload extends Pluf_Model
.Pluf_HTTP_URL_urlForView('IDF_Views_Download::view',
array($request->project->shortname,
$this->id));
$title = sprintf(__('%s: Download %d added - %s'),
$title = sprintf(__('%1$s: Download %2$d added - %3$s'),
$request->project->name,
$this->id, $this->summary);
$date = Pluf_Date::gmDateToGmString($this->creation_dtime);
@@ -253,7 +253,7 @@ class IDF_Upload extends Pluf_Model
foreach ($addresses as $address) {
$email = new Pluf_Mail(Pluf::f('from_email'),
$address,
sprintf(__('New download - %s (%s)'),
sprintf(__('New download - %1$s (%2$s)'),
$this->summary,
$this->get_project()->shortname));
$email->addTextMessage($text_email);

View File

@@ -338,19 +338,19 @@ class IDF_Views_Issue
if (count($ctags) == 0) $ctags[] = 0;
switch ($match[3]) {
case 'submit':
$titleFormat = __('%s %s Submitted %s Issues');
$titleFormat = __('%1$s %2$s Submitted %3$s Issues');
$f_sql = new Pluf_SQL('project=%s AND submitter=%s AND status IN ('.implode(', ', $otags).')', array($prj->id, $user->id));
break;
case 'submitclosed':
$titleFormat = __('%s %s Closed Submitted %s Issues');
$titleFormat = __('%1$s %2$s Closed Submitted %3$s Issues');
$f_sql = new Pluf_SQL('project=%s AND submitter=%s AND status IN ('.implode(', ', $ctags).')', array($prj->id, $user->id));
break;
case 'ownerclosed':
$titleFormat = __('%s %s Closed Working %s Issues');
$titleFormat = __('%1$s %2$s Closed Working %3$s Issues');
$f_sql = new Pluf_SQL('project=%s AND owner=%s AND status IN ('.implode(', ', $ctags).')', array($prj->id, $user->id));
break;
default:
$titleFormat = __('%s %s Working %s Issues');
$titleFormat = __('%1$s %2$s Working %3$s Issues');
$f_sql = new Pluf_SQL('project=%s AND owner=%s AND status IN ('.implode(', ', $otags).')', array($prj->id, $user->id));
break;
}
@@ -427,7 +427,7 @@ class IDF_Views_Issue
array($prj->shortname, $issue->id));
$issue->notify($request->conf);
if ($api) return $issue;
$request->user->setMessage(sprintf(__('<a href="%s">Issue %d</a> has been created.'), $url, $issue->id));
$request->user->setMessage(sprintf(__('<a href="%1$s">Issue %2$d</a> has been created.'), $url, $issue->id));
return new Pluf_HTTP_Response_Redirect($url);
}
} else {
@@ -598,7 +598,7 @@ class IDF_Views_Issue
$url = Pluf_HTTP_URL_urlForView('IDF_Views_Issue::view',
array($prj->shortname, $issue->id));
$title = Pluf_Template::markSafe(sprintf(__('Issue <a href="%s">%d</a>: %s'), $url, $issue->id, $issue->summary));
$title = Pluf_Template::markSafe(sprintf(__('Issue <a href="%1$s">%2$d</a>: %3$s'), $url, $issue->id, $issue->summary));
$form = false; // The form is available only if logged in.
$starred = false;
$closed = in_array($issue->status, $prj->getTagIdsByStatus('closed'));
@@ -622,7 +622,7 @@ class IDF_Views_Issue
$issue->notify($request->conf, false);
$comments = $issue->get_comments_list(array('order' => 'id DESC'));
$url .= '#ic' . $comments[0]->id;
$request->user->setMessage(sprintf(__('<a href="%s">Issue %d</a> has been updated.'), $url, $issue->id));
$request->user->setMessage(sprintf(__('<a href="%1$s">Issue %2$d</a> has been updated.'), $url, $issue->id));
return new Pluf_HTTP_Response_Redirect($url);
}
} else {
@@ -993,9 +993,8 @@ class IDF_Views_Issue
$r = $project->getRelationsFromConfig();
$auto['auto_relation_types'] = '';
foreach ($r as $rt) {
$esc = Pluf_esc($rt);
$auto['auto_relation_types'] .= sprintf('{ name: "%s", to: "%s" }, ',
$esc, $esc);
Pluf_esc(__($rt)), Pluf_esc($rt));
}
$auto['auto_relation_types'] = substr($auto['auto_relation_types'], 0, -2);
return $auto;

View File

@@ -91,7 +91,7 @@ class IDF_Views_Review
$review = $form->save();
$urlr = Pluf_HTTP_URL_urlForView('IDF_Views_Review::view',
array($prj->shortname, $review->id));
$request->user->setMessage(sprintf(__('The <a href="%s">code review %d</a> has been created.'), $urlr, $review->id));
$request->user->setMessage(sprintf(__('The <a href="%1$s">code review %2$d</a> has been created.'), $urlr, $review->id));
$url = Pluf_HTTP_URL_urlForView('IDF_Views_Review::index',
array($prj->shortname));
return new Pluf_HTTP_Response_Redirect($url);
@@ -137,7 +137,7 @@ class IDF_Views_Review
$prj->inOr404($review);
$url = Pluf_HTTP_URL_urlForView('IDF_Views_Review::view',
array($prj->shortname, $review->id));
$title = Pluf_Template::markSafe(sprintf(__('Review <a href="%s">%d</a>: %s'), $url, $review->id, $review->summary));
$title = Pluf_Template::markSafe(sprintf(__('Review <a href="%1$s">%2$d</a>: %3$s'), $url, $review->id, $review->summary));
$patches = $review->get_patches_list();
$patch = $patches[0];
@@ -157,7 +157,7 @@ class IDF_Views_Review
$review = $patch->get_review();
$urlr = Pluf_HTTP_URL_urlForView('IDF_Views_Review::view',
array($prj->shortname, $review->id));
$request->user->setMessage(sprintf(__('Your <a href="%s">code review %d</a> has been published.'), $urlr, $review->id));
$request->user->setMessage(sprintf(__('Your <a href="%1$s">code review %2$d</a> has been published.'), $urlr, $review->id));
$url = Pluf_HTTP_URL_urlForView('IDF_Views_Review::index',
array($prj->shortname));
$review_comment->notify($request->conf);

View File

@@ -302,7 +302,7 @@ class IDF_Views_Source
throw new Exception('could not retrieve commit object for '. $commit);
}
$title = sprintf(__('%s Commit Details'), (string) $request->project);
$page_title = sprintf(__('%s Commit Details - %s'), (string) $request->project, $commit);
$page_title = sprintf(__('%1$s Commit Details - %2$s'), (string) $request->project, $commit);
$rcommit = IDF_Commit::getOrAdd($cobject, $request->project);
$diff = new IDF_Diff($cobject->diff, $scm->getDiffPathStripLevel());
$cobject->diff = null;

View File

@@ -181,7 +181,7 @@ class IDF_Views_Wiki
$page = $form->save();
$urlpage = Pluf_HTTP_URL_urlForView('IDF_Views_Wiki::view',
array($prj->shortname, $page->title));
$request->user->setMessage(sprintf(__('The page <a href="%s">%s</a> has been created.'), $urlpage, Pluf_esc($page->title)));
$request->user->setMessage(sprintf(__('The page <a href="%1$s">%2$s</a> has been created.'), $urlpage, Pluf_esc($page->title)));
$url = Pluf_HTTP_URL_urlForView('IDF_Views_Wiki::index',
array($prj->shortname));
return new Pluf_HTTP_Response_Redirect($url);
@@ -319,7 +319,7 @@ class IDF_Views_Wiki
$page = $form->save();
$urlpage = Pluf_HTTP_URL_urlForView('IDF_Views_Wiki::view',
array($prj->shortname, $page->title));
$request->user->setMessage(sprintf(__('The page <a href="%s">%s</a> has been updated.'), $urlpage, Pluf_esc($page->title)));
$request->user->setMessage(sprintf(__('The page <a href="%1$s">%2$s</a> has been updated.'), $urlpage, Pluf_esc($page->title)));
$url = Pluf_HTTP_URL_urlForView('IDF_Views_Wiki::index',
array($prj->shortname));
return new Pluf_HTTP_Response_Redirect($url);

View File

@@ -195,7 +195,7 @@ class IDF_WikiPage extends Pluf_Model
$user = $stag->start($this->get_submitter(), $request, '', false);
$out .= sprintf(__('<a href="%1$s" title="View page">%2$s</a>, %3$s'), $url, Pluf_esc($this->title), Pluf_esc($this->summary)).'</td>';
$out .= "\n".'<tr class="extra"><td colspan="2">
<div class="helptext right">'.sprintf(__('Creation of <a href="%s">page&nbsp;%s</a>, by %s'), $url, Pluf_esc($this->title), $user).'</div></td></tr>';
<div class="helptext right">'.sprintf(__('Creation of <a href="%1$s">page %2$s</a>, by %3$s'), $url, Pluf_esc($this->title), $user).'</div></td></tr>';
return Pluf_Template::markSafe($out);
}
@@ -205,7 +205,7 @@ class IDF_WikiPage extends Pluf_Model
.Pluf_HTTP_URL_urlForView('IDF_Views_Wiki::view',
array($request->project->shortname,
$this->title));
$title = sprintf(__('%s: Documentation page %s added - %s'),
$title = sprintf(__('%1$s: Documentation page %2$s added - %3$s'),
$request->project->name,
$this->title, $this->summary);
$date = Pluf_Date::gmDateToGmString($this->creation_dtime);
@@ -221,4 +221,4 @@ class IDF_WikiPage extends Pluf_Model
$tmpl = new Pluf_Template('idf/wiki/feedfragment.xml');
return $tmpl->render($context);
}
}
}

View File

@@ -186,7 +186,7 @@ class IDF_WikiRevision extends Pluf_Model
}
$out .= '</td></tr>';
$out .= "\n".'<tr class="extra"><td colspan="2">
<div class="helptext right">'.sprintf(__('Change of <a href="%s">%s</a>, by %s'), $url, Pluf_esc($page->title), $user).'</div></td></tr>';
<div class="helptext right">'.sprintf(__('Change of <a href="%1$s">%2$s</a>, by %3$s'), $url, Pluf_esc($page->title), $user).'</div></td></tr>';
return Pluf_Template::markSafe($out);
}
@@ -205,7 +205,7 @@ class IDF_WikiRevision extends Pluf_Model
array($request->project->shortname,
$page->title));
}
$title = sprintf(__('%s: Documentation page %s updated - %s'),
$title = sprintf(__('%1$s: Documentation page %2$s updated - %3$s'),
$request->project->name,
$page->title, $page->summary);
$date = Pluf_Date::gmDateToGmString($this->creation_dtime);
@@ -259,13 +259,13 @@ class IDF_WikiRevision extends Pluf_Model
);
if ($create) {
$template = 'idf/wiki/wiki-created-email.txt';
$title = sprintf(__('New Documentation Page %s - %s (%s)'),
$title = sprintf(__('New Documentation Page %1$s - %2$s (%3$s)'),
$this->get_wikipage()->title,
$this->get_wikipage()->summary,
$this->get_wikipage()->get_project()->shortname);
} else {
$template = 'idf/wiki/wiki-updated-email.txt';
$title = sprintf(__('Documentation Page Changed %s - %s (%s)'),
$title = sprintf(__('Documentation Page Changed %1$s - %2$s (%3$s)'),
$this->get_wikipage()->title,
$this->get_wikipage()->summary,
$this->get_wikipage()->get_project()->shortname);

View File

@@ -119,7 +119,7 @@ $cfg['time_zone'] = 'Europe/Berlin';
# Configure which languages should be available in your forge.
# If you want to enable an additional language, ensure that the
# language file in question resides in 'src/IDF/locale'.
$cfg['languages'] = array('en', 'fr', 'de', 'es_ES');
$cfg['languages'] = array('en', 'fr', 'de', 'es_ES', 'ru');
# ---------------------------------------------------------------------------- #

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

4587
src/IDF/locale/pt_BR/idf.po Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

4581
src/IDF/locale/tr/idf.po Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -14,7 +14,7 @@
<tr>
<th>&nbsp;</th>
<th class="a-c"><strong>{trans 'Access Rights'}</strong></th>
<th class="a-c"><strong>{trans 'Notification Email'}</strong></th>
<th class="a-c"><strong>{trans 'Notification Emails'}</strong></th>
</tr>
<tr>
<th><strong>{$form.f.downloads_access_rights.labelTag}:</strong></th>

View File

@@ -2,11 +2,14 @@
{block tabissues} class="active"{/block}
{block subtabs}
<div id="sub-tabs">
<a {if $inSummaryIssues}class="active" {/if}href="{url 'IDF_Views_Issue::summary', array($project.shortname)}">{trans 'Summary'}</a>
| <a {if $inOpenIssues}class="active" {/if}href="{url 'IDF_Views_Issue::index', array($project.shortname)}">{trans 'Open Issues'}</a>
{if !$user.isAnonymous()} | <a {if $inCreate}class="active" {/if}href="{url 'IDF_Views_Issue::create', array($project.shortname)}">{trans 'New Issue'}</a> | <a {if $inMyIssues}class="active" {/if}href="{url 'IDF_Views_Issue::userIssues', array($project.shortname, $user.login, 'submit')}">{trans 'My Issues'}</a>
| <a {if $inWatchList}class="active" {/if}href="{url 'IDF_Views_Issue::watchList', array($project.shortname, 'open')}">{trans 'My watch list'}</a>{/if} |
<form class="star" action="{url 'IDF_Views_Issue::search', array($project.shortname)}" method="get">
<a {if $inSummaryIssues}class="active" {/if}href="{url 'IDF_Views_Issue::summary', array($project.shortname)}">{trans 'Summary'}</a>
| <a {if $inAllIssues}class="active" {/if}href="{url 'IDF_Views_Issue::index', array($project.shortname)}">{trans 'All Issues'}</a>
{if !$user.isAnonymous()}
| <a {if $inMyIssues}class="active" {/if}href="{url 'IDF_Views_Issue::userIssues', array($project.shortname, $user.login, 'submit')}">{trans 'My Issues'}</a>
| <a {if $inWatchList}class="active" {/if}href="{url 'IDF_Views_Issue::watchList', array($project.shortname, 'open')}">{trans 'My watch list'}</a>
| <a {if $inCreate}class="active" {/if}href="{url 'IDF_Views_Issue::create', array($project.shortname)}">{trans 'New Issue'}</a>
{/if}
| <form class="star" action="{url 'IDF_Views_Issue::search', array($project.shortname)}" method="get">
<input accesskey="4" type="text" value="{$query}" name="q" size="20" />
<input type="submit" name="s" value="{trans 'Search'}" />
</form>

View File

@@ -1,5 +1,5 @@
{extends "idf/issues/base.html"}
{block docclass}yui-t1{/block}
{block docclass}yui-t1{assign $inAllIssues=true}{/block}
{block body}
{$issues.render}
{if !$user.isAnonymous()}

View File

@@ -1,5 +1,5 @@
{extends "idf/issues/base.html"}
{block docclass}yui-t2{assign $inOpenIssues=true}{/block}
{block docclass}yui-t2{assign $inAllIssues=true}{/block}
{block body}
{$issues.render}
{if !$user.isAnonymous()}

View File

@@ -5,7 +5,7 @@
{block body}
{if $trackerEmpty}
{aurl 'create_url', 'IDF_Views_Issue::create', array($project.shortname)}
<p>{blocktrans}The issue tracker is empty.<br />You can create your first issue <a href="{$create_url}">here</a>.{/blocktrans}</p>
<p>{blocktrans}The issue tracker is empty.<br /><a href="{$create_url}">Create your first issue</a>.{/blocktrans}</p>
{else}
<div class='issue-summary'>
{foreach $tagStatistics as $key => $class}

View File

@@ -3,11 +3,11 @@
{block body}
<div class="issue-prev-next">
{if $previous_issue_id}
<a href="{url 'IDF_Views_Issue::view', array($project.shortname, $previous_issue_id)}" title="{if $closed}{trans 'Click here to view the previous closed issue'}{else}{trans 'Click here to view the previous open issue'}{/if}">Previous issue</a>
<a href="{url 'IDF_Views_Issue::view', array($project.shortname, $previous_issue_id)}" title="{if $closed}{trans 'View the previous closed issue'}{else}{trans 'View the previous open issue'}{/if}">Previous issue</a>
{/if}
{if $previous_issue_id and $next_issue_id} - {/if}
{if $next_issue_id}
<a href="{url 'IDF_Views_Issue::view', array($project.shortname, $next_issue_id)}" title="{if $closed}{trans 'Click here to view the next closed issue'}{else}{trans 'Click here to view the next open issue'}{/if}">Next issue</a>
<a href="{url 'IDF_Views_Issue::view', array($project.shortname, $next_issue_id)}" title="{if $closed}{trans 'View the next closed issue'}{else}{trans 'View the next open issue'}{/if}">Next issue</a>
{/if}
</div>
{assign $i = 0}
@@ -190,6 +190,7 @@
{if count($related_issues) > 0}
{foreach $related_issues as $verb => $rel_issues}
<p>
{assign $verb = __($verb)}
<strong>{blocktrans}This issue {$verb}{/blocktrans}</strong><br />
{foreach $rel_issues as $rel_issue}
<span class="label">

View File

@@ -30,6 +30,6 @@ document.getElementById('id_login').focus()
<div class="issue-submit-info">
<h3>{trans 'Welcome.'}</h3>
{aurl 'url', 'IDF_Views::register', array()}
<p>{blocktrans}If you don't have an account yet, you can create one <a href="{$url}">here</a>.{/blocktrans}</a></p>
<p>{blocktrans}You can <a href="{$url}">create an account</a> if you don't have one yet.{/blocktrans}</a></p>
<p>{trans 'It takes less than a minute to create your account.'}</p></div>
{/block}

View File

@@ -15,14 +15,14 @@
{foreach $downloads as $download}
<span class="label"><a href="{url 'IDF_Views_Download::view', array($project.shortname, $download.id)}" title="{$download.summary}">{$download}</a></span><br />
{/foreach}
<span class="label"> </span><span class="note"><a href="{url 'IDF_Views_Download::index', array($project.shortname)}">{trans 'show more...'}</a></span>
<span class="label"> </span><span class="note"><a href="{url 'IDF_Views_Download::index', array($project.shortname)}" title="{trans 'Show more featured downloads'}">{trans 'show more...'}</a></span>
{/if}
{if count($pages) > 0}
<p><strong>{trans 'Featured Documentation'}</strong><br />
{foreach $pages as $page}
<span class="label"><a href="{url 'IDF_Views_Wiki::view', array($project.shortname, $page.title)}" title="{$page.summary}">{$page.title}</a></span><br />
{/foreach}
<span class="label"> </span><span class="note"><a href="{url 'IDF_Views_Wiki::index', array($project.shortname)}">{trans 'show more...'}</a></span>
<span class="label"> </span><span class="note"><a href="{url 'IDF_Views_Wiki::index', array($project.shortname)}" title="{trans 'Show more featured documentation'}">{trans 'show more...'}</a></span>
{/if}
{assign $ko = 'owners'}
{assign $km = 'members'}

View File

@@ -34,7 +34,7 @@
<td>
{if $form.f.terms.errors}{$form.f.terms.fieldErrors}{/if}
{$form.f.terms|unsafe} <strong>{$form.f.terms.labelTag}</strong><br />
<span class="helptext">{blocktrans}Read the <a id="showterms" href="#theterms">terms and conditions</a> &ndash; basically <em>"Please be nice, we respect you"</em>.{/blocktrans}</span>
<span class="helptext">{blocktrans}Read the <a id="showterms" href="#theterms">terms and conditions</a> basically <em>"Please be nice, we respect you"</em>.{/blocktrans}</span>
</td>
</tr>
<tr>
@@ -49,7 +49,7 @@
<div class="issue-submit-info">
<p>{trans 'Be sure to provide a valid email address, as we are sending a validation link by email.'}</p>
{aurl 'url', 'IDF_Views::passwordRecoveryAsk'}
<p>{blocktrans}If you have just forgotten your login information, then there is no need to create a new account. Just go <a href="{$url}">here</a> to recover your login name and password.{/blocktrans}</p>
<p>{blocktrans}If you have just forgotten your login information, then there is no need to create a new account. You can just <a href="{$url}">recover your login name and password</a>.{/blocktrans}</p>
<p><strong>{trans 'Did you know?'}</strong><br />
{aurl 'url', 'IDF_Views::faq'}
{blocktrans}With your account, you will able to participate in the life of all the projects hosted here. Participating in a software project must be fun, so if you have troubles, you can <a href="{$url}">let us know about your issues at anytime</a>!{/blocktrans}</p>

View File

@@ -44,7 +44,7 @@
<tr><td><span class="scm-action patched" title="{trans 'modified'}">M</span></td><td><a href="{url 'IDF_Views_Source::tree', array($project.shortname, $commit, $filename)}">{$filename}</a>{if !empty($diff.files[$filename])}{assign $ndiff = count($diff.files[$filename]['chunks'])} (<a href="#diff-{$filename|md5}">{blocktrans $ndiff}{$ndiff} diff{plural}{$ndiff} diffs{/blocktrans}</a>){/if}</td></tr>
{/foreach}
{foreach $changes.properties as $filename => $properties}
<tr><td><span class="scm-action property-changed" title="{trans 'properies changed'}">P</span></td><td><a href="{url 'IDF_Views_Source::tree', array($project.shortname, $commit, $filename)}">{$filename}</a>
<tr><td><span class="scm-action property-changed" title="{trans 'properties changed'}">P</span></td><td><a href="{url 'IDF_Views_Source::tree', array($project.shortname, $commit, $filename)}">{$filename}</a>
<table class="properties">
{foreach $properties as $key => $value}
<tr><td>{$key}</td>

View File

@@ -1,5 +1,5 @@
<?php
return array(
'version' => '1.2-dev',
'version' => '1.2.1-dev',
'revision' => '$Format:%H$',
);

View File

@@ -85,6 +85,7 @@ a.soft:visited {
}
div.context {
padding-top: 0.5em;
padding-left: 1em;
position: relative;
top: 0;
@@ -378,6 +379,9 @@ span.active {
.helptext {
font-size: 80%;
color: #555753;
max-width: 600px;
margin-top: 0.25em;
display: inline-block;
}
div.container {
@@ -589,6 +593,11 @@ span.ctrl-char[title="0x09"] {
width: 24px;
}
/* override any prettify css rule */
span.ctrl-char > * {
color: white;
}
table.diff {
width: 100%;
table-layout: fixed;
@@ -643,7 +652,7 @@ table.diff-contents {
table.diff-linecounts tr,
table.diff-contents tr {
height: 18px;
height: 22px;
}
table.diff-linecounts tr {
@@ -655,12 +664,18 @@ table.diff-linecounts tr:first-child {
}
table.diff-linecounts td {
line-height: 12px;
font-size: 90%;
padding: 1px 10px;
padding: 2px 10px;
text-align: right;
border-left: 1px solid #d3d7cf;
}
table.diff-linecounts.left-hidden tr > td:first-child,
table.diff-linecounts.right-hidden tr > td + td {
display: none;
}
table.diff-contents td {
line-height: 12px;
padding: 2px;
@@ -693,11 +708,6 @@ table.diff-contents td.removed > span.ctrl-char {
background: #A00;
}
/* override prettify css rule */
table.diff-contents td > span.ctrl-char > * {
color: white;
}
/**
* view file content
*/