Merge remote-tracking branch 'upstream/develop' into 1601-dfrn
This commit is contained in:
commit
7371318376
|
@ -4,42 +4,32 @@ Friendica translations
|
||||||
Translation Process
|
Translation Process
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
The strings used in the UI of Friendica is translated at [Transifex] [1] and then
|
The strings used in the UI of Friendica is translated at [Transifex] [1] and then included in the git repository at github.
|
||||||
included in the git repository at github. If you want to help with translation
|
If you want to help with translation for any language, be it correcting terms or translating friendica to a currently not supported language, please register an account at transifex.com and contact the friendica translation team there.
|
||||||
for any language, be it correcting terms or translating friendica to a
|
|
||||||
currently not supported language, please register an account at transifex.com
|
|
||||||
and contact the friendica translation team there.
|
|
||||||
|
|
||||||
Translating friendica is simple. Just use the online tool at transifex. If you
|
Translating friendica is simple.
|
||||||
don't want to deal with git & co. that is fine, we check the status of the
|
Just use the online tool at transifex.
|
||||||
translations regularly and import them into the source tree at github so that
|
If you don't want to deal with git & co. that is fine, we check the status of the translations regularly and import them into the source tree at github so that others can use them.
|
||||||
others can use them.
|
|
||||||
|
|
||||||
We do not include every translation from transifex in the source tree to avoid
|
We do not include every translation from transifex in the source tree to avoid a scattered and disturbed overall experience.
|
||||||
a scattered and disturbed overall experience. As an uneducated guess we have a
|
As an uneducated guess we have a lower limit of 50% translated strings before we include the language (for the core messages.po file, addont translation will be included once all strings of an addon are translated.
|
||||||
lower limit of 50% translated strings before we include the language (for the
|
This limit is judging only by the amount of translated strings under the assumption that the most prominent strings for the UI will be translated first by a translation team.
|
||||||
core message.po file, addon translation will be included once all strings of
|
If you feel your translation useable before this limit, please contact us and we will probably include your teams work in the source tree.
|
||||||
an addon are translated. This limit is judging only by the amount of translated
|
|
||||||
strings under the assumption that the most prominent strings for the UI will be
|
|
||||||
translated first by a translation team. If you feel your translation useable
|
|
||||||
before this limit, please contact us and we will probably include your teams
|
|
||||||
work in the source tree.
|
|
||||||
|
|
||||||
If you want to get your work into the source tree yourself, feel free to do so
|
If you want to help translating, please concentrate on the core messages.po file first.
|
||||||
and contact us with and question that arises. The process is simple and
|
We will only include translations with a sufficient translated messages.po file.
|
||||||
friendica ships with all the tools necessary.
|
Translations of addons will only be included, when the core file is included as well.
|
||||||
|
|
||||||
|
If you want to get your work into the source tree yourself, feel free to do so and contact us with and question that arises.
|
||||||
|
The process is simple and friendica ships with all the tools necessary.
|
||||||
|
|
||||||
The location of the translated files in the source tree is
|
The location of the translated files in the source tree is
|
||||||
/view/LNG-CODE/
|
/view/LNG-CODE/
|
||||||
where LNG-CODE is the language code used, e.g. de for German or fr for French.
|
where LNG-CODE is the language code used, e.g. de for German or fr for French.
|
||||||
For the email templates (the *.tpl files) just place them into the directory
|
The translated strings come as a "message.po" file from transifex which needs to be translated into the PHP file friendica uses.
|
||||||
and you are done. The translated strings come as a "message.po" file from
|
To do so, place the file in the directory mentioned above and use the "po2php" utility from the util directory of your friendica installation.
|
||||||
transifex which needs to be translated into the PHP file friendica uses. To do
|
|
||||||
so, place the file in the directory mentioned above and use the "po2php"
|
|
||||||
utility from the util directory of your friendica installation.
|
|
||||||
|
|
||||||
Assuming you want to convert the German localization which is placed in
|
Assuming you want to convert the German localization which is placed in view/de/message.po you would do the following.
|
||||||
view/de/message.po you would do the following.
|
|
||||||
|
|
||||||
1. Navigate at the command prompt to the base directory of your
|
1. Navigate at the command prompt to the base directory of your
|
||||||
friendica installation
|
friendica installation
|
||||||
|
@ -69,30 +59,10 @@ view/de/message.po you would do the following.
|
||||||
Utilities
|
Utilities
|
||||||
---------
|
---------
|
||||||
|
|
||||||
Additional to the po2php script there are some more utilities for translation
|
Additional to the po2php script there are some more utilities for translation in the "util" directory of the friendica source tree.
|
||||||
in the "util" directory of the friendica source tree. If you only want to
|
If you only want to translate friendica into another language you wont need any of these tools most likely but it gives you an idea how the translation process of friendica works.
|
||||||
translate friendica into another language you won't need any of these tools most
|
|
||||||
likely but it gives you an idea how the translation process of friendica
|
|
||||||
works.
|
|
||||||
|
|
||||||
For further information see the utils/README file.
|
For further information see the utils/README file.
|
||||||
|
|
||||||
Known Problems
|
|
||||||
--------------
|
|
||||||
|
|
||||||
Friendica uses the language setting of the visitors browser to determain the
|
|
||||||
language for the UI. Most of the time this works, but there are some known
|
|
||||||
quirks.
|
|
||||||
|
|
||||||
One is that some browsers, like Safari, do the setting to "de-de" but friendica
|
|
||||||
only has a "de" localisation. A workaround would be to add a symbolic link
|
|
||||||
from
|
|
||||||
$friendica/view/de-de
|
|
||||||
pointing to
|
|
||||||
$friendica/view/de
|
|
||||||
|
|
||||||
Links
|
|
||||||
-----
|
|
||||||
|
|
||||||
[1]: https://www.transifex.com/projects/p/friendica/
|
[1]: https://www.transifex.com/projects/p/friendica/
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,10 @@ Posting to Community forums
|
||||||
|
|
||||||
If you are a member of a community forum, you may post to the forum by including an @-tag in the post mentioning the forum.
|
If you are a member of a community forum, you may post to the forum by including an @-tag in the post mentioning the forum.
|
||||||
For example @bicycle would send my post to all members of the group "bicycle" in addition to the normal recipients.
|
For example @bicycle would send my post to all members of the group "bicycle" in addition to the normal recipients.
|
||||||
|
If you mention a forum (you are a member of) in a new posting, the posting will be distributed to all members of the forum, regardless of your privacy settings for the posting.
|
||||||
|
Also, if the forum is a public forum, your posting will be public for the all internet users.
|
||||||
If your post is private you must also explicitly include the group in the post permissions (to allow the forum "contact" to see the post) **and** mention it in a tag (which redistributes the post to the forum members).
|
If your post is private you must also explicitly include the group in the post permissions (to allow the forum "contact" to see the post) **and** mention it in a tag (which redistributes the post to the forum members).
|
||||||
|
Posting privately to a public forum, will result in your posting being displayed on the forum wall, but not on yours.
|
||||||
|
|
||||||
You may also post to a community forum by posting a "wall-to-wall" post using secure cross-site authentication.
|
You may also post to a community forum by posting a "wall-to-wall" post using secure cross-site authentication.
|
||||||
|
|
||||||
|
|
|
@ -4,42 +4,32 @@ Friendica translations
|
||||||
Translation Process
|
Translation Process
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
The strings used in the UI of Friendica is translated at [Transifex] [1] and then
|
The strings used in the UI of Friendica is translated at [Transifex] [1] and then included in the git repository at github.
|
||||||
included in the git repository at github. If you want to help with translation
|
If you want to help with translation for any language, be it correcting terms or translating friendica to a currently not supported language, please register an account at transifex.com and contact the friendica translation team there.
|
||||||
for any language, be it correcting terms or translating friendica to a
|
|
||||||
currently not supported language, please register an account at transifex.com
|
|
||||||
and contact the friendica translation team there.
|
|
||||||
|
|
||||||
Translating friendica is simple. Just use the online tool at transifex. If you
|
Translating friendica is simple.
|
||||||
don't want to deal with git & co. that is fine, we check the status of the
|
Just use the online tool at transifex.
|
||||||
translations regularly and import them into the source tree at github so that
|
If you don't want to deal with git & co. that is fine, we check the status of the translations regularly and import them into the source tree at github so that others can use them.
|
||||||
others can use them.
|
|
||||||
|
|
||||||
We do not include every translation from transifex in the source tree to avoid
|
We do not include every translation from transifex in the source tree to avoid a scattered and disturbed overall experience.
|
||||||
a scattered and disturbed overall experience. As an uneducated guess we have a
|
As an uneducated guess we have a lower limit of 50% translated strings before we include the language (for the core messages.po file, addont translation will be included once all strings of an addon are translated.
|
||||||
lower limit of 50% translated strings before we include the language (for the
|
This limit is judging only by the amount of translated strings under the assumption that the most prominent strings for the UI will be translated first by a translation team.
|
||||||
core message.po file, addont translation will be included once all strings of
|
If you feel your translation useable before this limit, please contact us and we will probably include your teams work in the source tree.
|
||||||
an addon are translated. This limit is judging only by the amount of translated
|
|
||||||
strings under the assumption that the most prominent strings for the UI will be
|
|
||||||
translated first by a translation team. If you feel your translation useable
|
|
||||||
before this limit, please contact us and we will probably include your teams
|
|
||||||
work in the source tree.
|
|
||||||
|
|
||||||
If you want to get your work into the source tree yourself, feel free to do so
|
If you want to help translating, please concentrate on the core messages.po file first.
|
||||||
and contact us with and question that arises. The process is simple and
|
We will only include translations with a sufficient translated messages.po file.
|
||||||
friendica ships with all the tools necessary.
|
Translations of addons will only be included, when the core file is included as well.
|
||||||
|
|
||||||
|
If you want to get your work into the source tree yourself, feel free to do so and contact us with and question that arises.
|
||||||
|
The process is simple and friendica ships with all the tools necessary.
|
||||||
|
|
||||||
The location of the translated files in the source tree is
|
The location of the translated files in the source tree is
|
||||||
/view/LNG-CODE/
|
/view/LNG-CODE/
|
||||||
where LNG-CODE is the language code used, e.g. de for German or fr for French.
|
where LNG-CODE is the language code used, e.g. de for German or fr for French.
|
||||||
For the email templates (the *.tpl files) just place them into the directory
|
The translated strings come as a "message.po" file from transifex which needs to be translated into the PHP file friendica uses.
|
||||||
and you are done. The translated strings come as a "message.po" file from
|
To do so, place the file in the directory mentioned above and use the "po2php" utility from the util directory of your friendica installation.
|
||||||
transifex which needs to be translated into the PHP file friendica uses. To do
|
|
||||||
so, place the file in the directory mentioned above and use the "po2php"
|
|
||||||
utility from the util directory of your friendica installation.
|
|
||||||
|
|
||||||
Assuming you want to convert the German localization which is placed in
|
Assuming you want to convert the German localization which is placed in view/de/message.po you would do the following.
|
||||||
view/de/message.po you would do the following.
|
|
||||||
|
|
||||||
1. Navigate at the command prompt to the base directory of your
|
1. Navigate at the command prompt to the base directory of your
|
||||||
friendica installation
|
friendica installation
|
||||||
|
@ -47,10 +37,10 @@ view/de/message.po you would do the following.
|
||||||
2. Execute the po2php script, which will place the translation
|
2. Execute the po2php script, which will place the translation
|
||||||
in the strings.php file that is used by friendica.
|
in the strings.php file that is used by friendica.
|
||||||
|
|
||||||
$> php util/po2php.php view/de/message.po
|
$> php util/po2php.php view/de/messages.po
|
||||||
|
|
||||||
The output of the script will be placed at view/de/strings.php where
|
The output of the script will be placed at view/de/strings.php where
|
||||||
froemdoca os expecting it, so you can test your translation mmediately.
|
friendica is expecting it, so you can test your translation immediately.
|
||||||
|
|
||||||
3. Visit your friendica page to check if it still works in the language you
|
3. Visit your friendica page to check if it still works in the language you
|
||||||
just translated. If not try to find the error, most likely PHP will give
|
just translated. If not try to find the error, most likely PHP will give
|
||||||
|
@ -69,27 +59,10 @@ view/de/message.po you would do the following.
|
||||||
Utilities
|
Utilities
|
||||||
---------
|
---------
|
||||||
|
|
||||||
Additional to the po2php script there are some more utilities for translation
|
Additional to the po2php script there are some more utilities for translation in the "util" directory of the friendica source tree.
|
||||||
in the "util" directory of the friendica source tree. If you only want to
|
If you only want to translate friendica into another language you wont need any of these tools most likely but it gives you an idea how the translation process of friendica works.
|
||||||
translate friendica into another language you wont need any of these tools most
|
|
||||||
likely but it gives you an idea how the translation process of friendica
|
|
||||||
works.
|
|
||||||
|
|
||||||
For further information see the utils/README file.
|
For further information see the utils/README file.
|
||||||
|
|
||||||
Known Problems
|
|
||||||
--------------
|
|
||||||
|
|
||||||
Friendica uses the language setting of the visitors browser to determain the
|
|
||||||
language for the UI. Most of the time this works, but there are some known
|
|
||||||
quirks.
|
|
||||||
|
|
||||||
One is that some browsers, like Safari, do the setting to "de-de" but friendica
|
|
||||||
only has a "de" localisation. A workaround would be to add a symbolic link
|
|
||||||
from
|
|
||||||
$friendica/view/de-de
|
|
||||||
pointing to
|
|
||||||
$friendica/view/de
|
|
||||||
|
|
||||||
[1]: https://www.transifex.com/projects/p/friendica/
|
[1]: https://www.transifex.com/projects/p/friendica/
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@ require_once('include/socgraph.php');
|
||||||
require_once('include/plaintext.php');
|
require_once('include/plaintext.php');
|
||||||
require_once('include/ostatus.php');
|
require_once('include/ostatus.php');
|
||||||
require_once('include/feed.php');
|
require_once('include/feed.php');
|
||||||
|
require_once('include/Contact.php');
|
||||||
require_once('mod/share.php');
|
require_once('mod/share.php');
|
||||||
|
|
||||||
require_once('library/defuse/php-encryption-1.2.1/Crypto.php');
|
require_once('library/defuse/php-encryption-1.2.1/Crypto.php');
|
||||||
|
@ -1257,6 +1258,24 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
|
||||||
logger("item_store: Set network to ".$arr["network"]." for ".$arr["uri"], LOGGER_DEBUG);
|
logger("item_store: Set network to ".$arr["network"]." for ".$arr["uri"], LOGGER_DEBUG);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The contact-id should be set before "item_store" was called - but there seems to be some issues
|
||||||
|
if ($arr["contact-id"] == 0) {
|
||||||
|
// First we are looking for a suitable contact that matches with the author of the post
|
||||||
|
$arr["contact-id"] = get_contact($arr['author-link'], $uid);
|
||||||
|
|
||||||
|
// If not present then maybe the owner was found
|
||||||
|
if ($arr["contact-id"] == 0)
|
||||||
|
$arr["contact-id"] = get_contact($arr['owner-link'], $uid);
|
||||||
|
|
||||||
|
// Still missing? Then use the "self" contact of the current user
|
||||||
|
if ($arr["contact-id"] == 0) {
|
||||||
|
$r = q("SELECT `id` FROM `contact` WHERE `self` AND `uid` = %d", intval($uid));
|
||||||
|
if ($r)
|
||||||
|
$arr["contact-id"] = $r[0]["id"];
|
||||||
|
}
|
||||||
|
logger("Contact-id was missing for post ".$arr["guid"]." - now set to ".$arr["contact-id"], LOGGER_DEBUG);
|
||||||
|
}
|
||||||
|
|
||||||
if ($arr["gcontact-id"] == 0)
|
if ($arr["gcontact-id"] == 0)
|
||||||
$arr["gcontact-id"] = get_gcontact_id(array("url" => $arr['author-link'], "network" => $arr['network'],
|
$arr["gcontact-id"] = get_gcontact_id(array("url" => $arr['author-link'], "network" => $arr['network'],
|
||||||
"photo" => $arr['author-avatar'], "name" => $arr['author-name']));
|
"photo" => $arr['author-avatar'], "name" => $arr['author-name']));
|
||||||
|
@ -1533,7 +1552,7 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
|
||||||
|
|
||||||
if($dsprsig) {
|
if($dsprsig) {
|
||||||
|
|
||||||
// Friendica servers lower than 3.4.3-2 had double encoded the signature ...
|
// Friendica servers lower than 3.4.3-2 had double encoded the signature ...
|
||||||
// We can check for this condition when we decode and encode the stuff again.
|
// We can check for this condition when we decode and encode the stuff again.
|
||||||
if (base64_encode(base64_decode(base64_decode($dsprsig->signature))) == base64_decode($dsprsig->signature)) {
|
if (base64_encode(base64_decode(base64_decode($dsprsig->signature))) == base64_decode($dsprsig->signature)) {
|
||||||
$dsprsig->signature = base64_decode($dsprsig->signature);
|
$dsprsig->signature = base64_decode($dsprsig->signature);
|
||||||
|
|
|
@ -271,6 +271,7 @@ function admin_page_federation(&$a) {
|
||||||
// displayed on the stats page.
|
// displayed on the stats page.
|
||||||
$platforms = array('Friendica', 'Diaspora', '%%red%%', 'Hubzilla', 'GNU Social', 'StatusNet');
|
$platforms = array('Friendica', 'Diaspora', '%%red%%', 'Hubzilla', 'GNU Social', 'StatusNet');
|
||||||
$counts = array();
|
$counts = array();
|
||||||
|
$total = 0;
|
||||||
|
|
||||||
foreach ($platforms as $p) {
|
foreach ($platforms as $p) {
|
||||||
// get a total count for the platform, the name and version of the
|
// get a total count for the platform, the name and version of the
|
||||||
|
@ -278,6 +279,7 @@ function admin_page_federation(&$a) {
|
||||||
$c = q('SELECT count(*) AS total, platform, network, version FROM gserver
|
$c = q('SELECT count(*) AS total, platform, network, version FROM gserver
|
||||||
WHERE platform LIKE "%s" AND last_contact > last_failure
|
WHERE platform LIKE "%s" AND last_contact > last_failure
|
||||||
ORDER BY version ASC;', $p);
|
ORDER BY version ASC;', $p);
|
||||||
|
$total = $total + $c[0]['total'];
|
||||||
|
|
||||||
// what versions for that platform do we know at all?
|
// what versions for that platform do we know at all?
|
||||||
// again only the active nodes
|
// again only the active nodes
|
||||||
|
@ -355,7 +357,7 @@ function admin_page_federation(&$a) {
|
||||||
'$autoactive' => get_config('system', 'poco_completion'),
|
'$autoactive' => get_config('system', 'poco_completion'),
|
||||||
'$counts' => $counts,
|
'$counts' => $counts,
|
||||||
'$version' => FRIENDICA_VERSION,
|
'$version' => FRIENDICA_VERSION,
|
||||||
'$legendtext' => t('Currently this node is aware of nodes from the following platforms:'),
|
'$legendtext' => sprintf(t('Currently this node is aware of %d nodes from the following platforms:'), $total),
|
||||||
'$baseurl' => $a->get_baseurl(),
|
'$baseurl' => $a->get_baseurl(),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue