405 Commits

Author SHA1 Message Date
3b86f06134 [INSTALL] Update mailing list URL, as recommended by @Gijs
Closes notabug issue #327
2021-05-10 13:56:16 +00:00
b4b71f7626 [StoreRemoteMedia] Fix failing to show remote thumbnails on first load
imgPath onCreateFileImageThumbnailSource would throw FileNotFoundException
2021-04-13 14:58:55 +01:00
f088a3d54f [Embed] Apply encoding and increased type strictness patches from StoreRemoteMedia 2021-04-13 14:55:45 +01:00
5b23781e68 [StoreRemoteMedia] Gracefully recover from poorly encoded images 2021-04-13 14:54:56 +01:00
edc9fd203d [StoreRemoteMedia] Increase type strictness 2021-04-13 14:54:56 +01:00
844ecbf71e [Embed] Revert defaults and fix Readme example 2021-02-21 20:20:48 +00:00
8570ad2094 [StoreRemoteMedia][SCRIPTS] Move removeRemoteMedia deleteRemoteMedia 2021-02-21 16:03:47 +00:00
bc3eb7bccc [MEDIA] Allow thumbnail only entries 2021-02-21 16:03:47 +00:00
800c0daafe [StoreRemoteMedia][SCRIPTS] Update removeRemoteMedia 2021-02-21 16:03:47 +00:00
9b1ccdc320 [SCRIPTS] Update clean_file_table 2021-02-21 16:03:47 +00:00
6c8e826028 [MEDIA][SCRIPTS] clean_thumbnails Allow to delete remote thumbs as well
If the sysadmin decides that StoreRemoteMedia plugin should store
original, then its thumbs will be regenerated as well, making it safe to
delete them if needed. Beware that Embed plugin never stores the original tho.
2021-02-21 16:03:46 +00:00
d47bb3736e [Media] Document recently added settings and add some more
Fix some buggy ones, especially Embed crop
2021-02-21 16:03:46 +00:00
ec1719e61d [StoreRemoteMedia][Embed] Bump plugins version 2021-02-21 16:03:46 +00:00
a657a7809a [Media] Upload of previously uploaded files now works (bug fix)
This bug was introduced with the commit "[Media] Fix issues with database file storage"
due to the API change "File::getByHash now returns a yield of files".

I had updated this function on that commit but had missed this little detail.
2021-02-21 16:03:46 +00:00
ef0f65720e [StoreRemoteMedia] Remote images are now stored exactly on the necessary size for the thumb 2021-02-21 16:03:46 +00:00
22b5dd8567 [Media] Fix several issues
[StoreRemoteMedia] Upgrade plugin to use the new Media system

API Changes:
- Added getters to File to better formalize the ideas of the commit "[Media] Fix issues with database file storage"

UI Changes:
- Now presented thumbnails are actual thumbnails (bug fix)
- Attachment actions have a slightly more extended behaviour

Many other minor bug fixes...
2021-02-21 16:03:46 +00:00
f9290705f8 [ActivityPub] Attachment fetch should happen on StoreRemoteMedia 2021-02-21 16:03:46 +00:00
e51520bd63 [Core] Add an event for StoreRemoteMedia and Embed 2021-02-21 16:03:46 +00:00
6028175bfc [Media] Fix issues with database file storage
Fixed file quota as well.

There can be more than one file for the same filehash IF the url are different.

Possible states:
  - A file with no url and with filename is a local file.
  - A file with an url but no filename is a remote file that wasn't fetched,
    not even the thumbnail.
  - A file with an url and filename is a fetched remote file (maybe just a
    thumbnail of it).
  - A file with no filename nor url is a redirect.

Routes:
  Given these states, updated routes so that an attachment can only be
  retrieved by id and a file by filehash.

Major API changes:
  File::getByHash now returns a yield of files

Major UI changes:
  - Now remote non stored files are presented.
  - /view became preferred
  - Redirects to remote originals are preferred.

Many other minor bug fixes...
2021-02-21 16:03:46 +00:00
e9cd437668 [DOCUMENTATION] git clone with https so people don't need an account 2021-02-21 15:57:00 +00:00
aa153f2ee7 [i18n] Re-add gettext emulation
Removed by mistake with 9cc7df51d6#L50
2021-02-21 15:38:49 +00:00
b1e6b00545 [ActivityPub] Re-implement Delete Actor 2021-02-21 15:00:58 +00:00
Diogo Cordeiro
4f0ddc85d3 Merge branch 'ukrainian-translation-fix-branch' of tokarskiy/gnu-social into nightly 2020-12-31 11:20:15 +00:00
Andrew Tokarskiy
5d45702d5f Added some ukr translations 2020-12-31 10:17:45 +02:00
Andrew Tokarskiy
d731a5cb09 Fixed some ukrainian translation errors 2020-12-30 20:00:00 +02:00
Alexei Sorokin
06dfd91a82 Various fixes
Fix OAuth and Realtime issues introduced in 9a515b9234

[DATABASE] Fix an empty default value mistake introduced in
fde929b151

[DATABASE][PostgreSQL] Avoid use of pg_constraint.consrc, which was removed in
PostgreSQL 12.

[DATABASE][MariaDB] Fix a typo introduced in aed2344bd4

[DAEMON] Wrap an assignment inside "switch":
a follow-up to adc689cb15
2020-10-11 18:29:47 +03:00
Alexei Sorokin
c540466147 [XMPP] Respond to ping and track time monotonically
This also fetches a necessary update from the XMPPHP upstream.
2020-09-27 00:16:08 +03:00
Alexei Sorokin
4d8b04cda9 Clear out potential duplicates when semi-joining a union
Using a left outer join as a semi-join is not a valid approach.
Can still be used for an anti-semi-join.
2020-09-21 22:25:33 +03:00
Alexei Sorokin
aed2344bd4 Set the character set before making a connection
Ideally the character set should be set with the connection, and so this is
exactly what's being done now.

And now the character set code is attempted to be generalised.
2020-09-16 19:34:49 +03:00
SENOO, Ken
c2508f8fa2 Change required MySQL database character set variable
Changing `character_set_server` requires root permissions and rebooting
the server.

Which is impossible on shared web hosting services.

So use `character_set_database`. This variable can be changed with
user permissions using `ALTER DATABASE`.
2020-09-16 17:14:58 +03:00
Alexei Sorokin
52d67b0f44 Avoid ordering just by a timestamp
Try to also employ an id when possible.
Involves reworking some of the indices.
2020-09-15 16:59:27 +03:00
Alexei Sorokin
8079a476b6 Remove "magic quotes" code and avoid wrong order implode
"Magic quotes" were removed in PHP 5.4, no need to mitigate it anymore.

Avoid implode() with the join()-like order of arguments which was deprecated
since PHP 7.4 and implicitly since PHP 5.3.
Also avoid implode() with an implicit separator for stylistic reasons.

mktime() with no arguments has been deprecated since PHP 5.1.
2020-09-15 14:59:27 +03:00
Alexei Sorokin
2ef944d5c4 [UTIL] Sanitise instead of validate in common_copy_args()
And remove common_validate_utf8() which is now unused.
2020-09-15 14:53:35 +03:00
Alexei Sorokin
fde929b151 [DATABASE] Switch from PEAR DB to MDB2 2020-09-14 22:46:29 +03:00
Alexei Sorokin
96f1cc1a5c [ActivityPub][INBOX][Delete] Stop if the ID is not present 2020-09-14 21:32:41 +03:00
Alexei Sorokin
647bf8c953 [ActivityPub] Fix use of ActivityPubPlugin::pull_remote_profile
It does not throw but return null.
2020-09-14 20:48:10 +03:00
Alexei Sorokin
d2c7d70f49 Fix "Implement a class for automatic temporary file handling"
TemporaryFile::commit throws instead of returning a bool.
2020-09-14 20:37:48 +03:00
Alexei Sorokin
001629b6dd [Memcached_DataObject] Do not encache on insert
This resulted in N=0 and empty "modified" in cache.
2020-09-14 20:19:17 +03:00
Alexei Sorokin
b04469a252 [DATABASE] Make sure the session always uses UTF-8 and UTC 2020-09-12 15:40:39 +03:00
Alexei Sorokin
54484e56e7 [API] Fix /api/statuses/update reporting a failure 2020-09-12 13:58:57 +03:00
Alexei Sorokin
adc689cb15 Avoid use of assignments bare inside statements
Either use them in a subroutine call or put parentheses around the assignment.
2020-09-08 12:42:51 +03:00
Alexei Sorokin
d0f96a7023 [Profile] Extend the allowed length of nicknames to 191 characters 2020-09-06 21:20:24 +03:00
Alexei Sorokin
08145f635f Implement a class for automatic temporary file handling
And adopt it all over the code.
2020-09-04 13:15:23 +03:00
Alexei Sorokin
4884a97223 [Memcached_DataObject] Change how multiGet achieves an ordered result
The previous approach sent the key values twice, which for large sets is
twice as bad.

As an optional feature of this approach multiGet now allows retrieving tuples
in exact order and amount of the requested key values.
2020-09-03 18:11:12 +03:00
Alexei Sorokin
55136c1c6f [DirectMessage] Simplify the inbox query 2020-09-02 15:12:20 +03:00
Alexei Sorokin
fc300607e5 [ActivityPub] Check if a Notice is public via CC as well 2020-09-01 01:20:13 +03:00
Diogo Cordeiro
8c20ed0c89 [ActivityPub] Fix note URIs 2020-08-31 22:18:49 +01:00
Diogo Cordeiro
c8e9cbdbb8 [ActivityPub] Tombstones now have datetimes 2020-08-30 01:59:38 +01:00
Diogo Cordeiro
3f70ac5cde [TheFreeNetwork] Fix invalid index on lookup 2020-08-30 01:59:35 +01:00
Diogo Cordeiro
11a7182594 [ActivityPub] Implement Failed Queue 2020-08-29 20:32:21 +01:00
Diogo Cordeiro
817074a787 [ActivityPub] Fix DELETE 2020-08-29 20:32:18 +01:00
Diogo Cordeiro
c75bf1a19d [ActivityPub] Fix issues concerning Activity URIs
And some other minor bugs.
2020-08-29 11:29:12 +01:00
Alexei Sorokin
11ebb98919 [DATABASE] Fix use of ORDER BY with DISTINCT
statuses/retweets_of_me has performance fixed, so it is also stripped of its
"bad query" status.
2020-08-27 11:15:39 +03:00
Diogo Cordeiro
e4093343c2 [ActivityPub] Revert moving Disfavor to Queues
It seems this kind of notice isn't queued?
2020-08-27 02:14:47 +01:00
Diogo Cordeiro
101ea554ef [ActivityPub][Queues] Fix Like 2020-08-27 02:12:22 +01:00
Diogo Cordeiro
ef6a986dc6 [TheFreeNetwork] Do not allow lower priority protocols to handle remote actors already handled by the higher ones 2020-08-27 01:32:15 +01:00
Alexei Sorokin
db593496a7 [Directory] Fix SQL string quotation 2020-08-26 16:27:35 +03:00
Alexei Sorokin
00c492891e [Foreign_link] Change the type of "credentials" to blob
TwitterOAuthClient::packToken uses \0 as a delimeter which can cause issues on
TEXT or VARCHAR.
2020-08-25 16:06:37 +03:00
Alexei Sorokin
0e81f9c726 [OpenID] Correct table definition types
"server_url" should not be blob.
Lengths are adjusted to Auth/OpenID/(PostgreSQL|MySQL)Store.php.
2020-08-24 16:27:44 +03:00
Alexei Sorokin
b419c5cf7c [Queue_item] Let DataObject construct WHERE IN 2020-08-24 16:16:00 +03:00
Alexei Sorokin
20e5a6d1f3 [TwitterBridge][DAEMONS] Fix database connection clean-up 2020-08-24 15:43:14 +03:00
Alexei Sorokin
99a9a5d850 [NOTICES] Condition pushdown in the subquery in inboxnoticestream
This improves performance on PostgreSQL.
2020-08-19 19:14:11 +03:00
Alexei Sorokin
a15d51c3d8 [DATABASE][PostgreSQL] Ignore index prefix length 2020-08-17 17:01:42 +03:00
Alexei Sorokin
b01974b665 [PostgreSQL] Set timezone to UTC
And remove some redundant neighbouring cruft:
utf8mb4 is already set in mysqlschema more than enough times.
2020-08-17 16:52:11 +03:00
Alexei Sorokin
be5bec9887 Rename the mysql_foreign_keys option to foreign_keys
And apply it universally.
2020-08-17 14:12:49 +03:00
Alexei Sorokin
27045f03f5 [SESSION] Session ID can be as long as 128 characters 2020-08-17 13:58:19 +03:00
Alexei Sorokin
071baf04fd [NOTICE] Store "url" as TEXT and not VARCHAR(191) 2020-08-17 13:35:16 +03:00
Alexei Sorokin
341e34b766 [DATABASE] Change collation handling
Before now table definitions could define collations only for MariaDB using the
MariaDB's collation names directly.
Now instead definitions get a slightly more abstract collation name syntax, but
only supporting the collations utf8mb4_bin and utf8mb4_unicode_(cs|ci) (wrapped
as utf8_bin, utf8_general_(cs|ci)), because those are the ones that have
practical use for GNU social.

Which also means that on MariaDB the formerly used utf8mb4_general_(cs|ci) have
been superseded by utf8mb4_unicode_(cs|ci), as they are the more modern
replacement.

Introduce collation support on PostgreSQL which results in use of the C (POSIX)
collation as utf8_bin and the und-x-icu collation as utf8_general_cs.
utf8_general_ci is also mapped to und-x-icu, which makes it case-sensitive,
unfortunately.
2020-08-16 23:41:28 +03:00
Alexei Sorokin
5c21816b22 [SEARCH][PostgreSQL] Make LIKE search case-insensitive 2020-08-16 19:05:47 +03:00
Alexei Sorokin
afd18db381 [TwitterBridge] Create Foreign_user before Foreign_link
To keep foreign key constraints intact.
2020-08-13 23:59:40 +03:00
Alexei Sorokin
6c8cd4c9f8 [SEARCH][MariaDB] Change user-facing fulltext search syntax
Now analogous to the simple and safe PostgreSQL's websearch_to_tsquery syntax.
MariaDB's full-text boolean search queries will fail on input such as "@user"
(unquoted) which is particularly noticeable to the user.
2020-08-13 23:44:59 +03:00
Alexei Sorokin
255d395f1d [SEARCH] Exclude message scope 2020-08-13 22:59:41 +03:00
tenma
2f845e98e8 [FFmpeg] Add FFmpeg plugin
FFmpeg plugin serves as a better performant/quality alternative to
resize animated GIFs than the ImageMagick plugin.
2020-08-14 23:32:15 +01:00
tenma
1371e3efb8 [MEDIA] Add WebP support
WebP format is now the default image format for anything that
is not an animated GIF. Image Intervention doesn't support
animated WebPs so we don't convert animated GIFs.

ImageFile:
MediaFile:
default:
- Add WebP support
2020-08-14 19:48:02 +01:00
tenma
8a2c1658a8 [ImageMagick] Remove unnecessary code
ImageMagickPlugin:
- Remove animated thumbnail setting, we'll be able to use FFmpeg for performance
- Remove onFillImageFileMetadata and onCreateFileImageThumbnailSource(), these
  are handled just fine by ImageFile
- Bump minor version number

README:
- Update
2020-08-14 19:48:02 +01:00
Alexei Sorokin
b65c200922 [File] Fix file deletion violating foreign keys 2020-08-13 23:56:31 +03:00
Alexei Sorokin
33caf31237 [RedisCache] Connections should not be shared by daemon threads 2020-08-13 22:51:22 +03:00
Alexei Sorokin
cb7effca05 [Memcached] Do not set persistent connections for daemons 2020-08-13 22:51:22 +03:00
Alexei Sorokin
8745a3e824 [Embed] Fix a query typo in fixup_files.php
Regression introduced in ec86de2bc4
2020-08-13 22:51:22 +03:00
Alexei Sorokin
ac6510d481 [Memcached_DataObject] Thorough check of pivotGetClass arguments 2020-08-12 13:50:39 +03:00
Alexei Sorokin
2109c7b830 [Bookmark] Silence a warning when no tags in BookmarkForm 2020-08-12 13:19:59 +03:00
Alexei Sorokin
629857d3ef [Bookmark] Fix undefined variable "rendered" in Activity options 2020-08-12 13:12:36 +03:00
Alexei Sorokin
60eed202dd [EXTLIB][VALIDATE] Declare everything as static
As was originally intended by the author and is expected.
2020-08-12 12:08:54 +03:00
Alexei Sorokin
14e2621a05 [RSSCloud] Avoid the deprecated in PHP each() function 2020-08-11 19:40:46 +03:00
Alexei Sorokin
99da7963d1 [Managed_DataObject] Remove the "timestamp" type
It is converted to "datetime" in lib/database/schema.php
2020-08-11 18:30:12 +03:00
Alexei Sorokin
2abe910ff5 [RSSCloud] Update schema definition 2020-08-11 18:23:45 +03:00
Alexei Sorokin
15f7941daf [Profile] Allow grantRole to work when role exists 2020-08-11 15:00:57 +03:00
Alexei Sorokin
535b87bb64 [RedisCache][DiskCache] Check if unserialize succeeded 2020-08-10 11:12:31 +03:00
Alexei Sorokin
e63c0d1b03 [TwitterBridge] Check if Notice::$lat and Notice::$lon are defined 2020-08-10 10:35:45 +03:00
Alexei Sorokin
8bc714a2b1 [DATABASE][MariaDB] Always use LONGBLOB for "blob"
"blob" is practically used with the expectation of unlimited length, which is
true with PostgreSQL's bytea, but not with MariaDB's BLOB, which is limited to
64KiB.
So instead use LONGBLOB, which has a maximum of 4GiB, effectively unlimited.
2020-08-10 10:55:59 +03:00
Alexei Sorokin
07b0aa8f52 [DATABASE] Fix remaining misuses of SQL's GROUP BY 2020-08-10 19:29:04 +03:00
Alexei Sorokin
ce665baa88 [Queue_item] There is no "modified" attribute
Fixes a regression introduced in ec86de2bc4
2020-08-10 17:46:30 +03:00
Alexei Sorokin
8c41663175 Revert "[CORE] Avoid the old "reply" relation in inboxnoticestream"
It is needed for mentions.
2020-08-10 17:23:57 +03:00
Alexei Sorokin
7cb10b71bb [RequireValidatedEmail] Only check current user posts
This check made registration impossible when welcomeuser didn't have validation
as well.

And rename the "grandfatherCutoff" option to "exemptBefore".
"Grandfathering" is a relatively obscure term linked to the history of the
United States of America, so replace that with something self-descriptive.
2020-08-09 23:58:25 +03:00
Alexei Sorokin
47cacf5f1a [NOTICES] Restore FullNoticeStream
But only allow a select number of verbs.
This is to display optional subscription notices.
2020-08-09 21:00:14 +03:00
Alexei Sorokin
042e4b070c [EmailAuthentication] Check if e-mail with filter_var 2020-08-09 20:35:31 +03:00
Alexei Sorokin
f84dbb369f [DATABASE] Enable fulltext search by default
Also rename fulltext indices to more fitting names
and move the check from classes into database/schema.php
2020-08-08 18:08:06 +03:00
Alexei Sorokin
34ec165bff [DATABASE][PostgreSQL] Add fulltext search support 2020-08-08 16:56:20 +03:00
Alexei Sorokin
b20c0bdec7 Clean Notice_prefs and Fave_tally when a notice is deleted 2020-08-08 12:22:35 +03:00
t3nma
c527ad0803 [COMPOSER] Add new php-ffmpeg package 2020-08-07 23:42:38 +01:00
Alexei Sorokin
0a6bb5190f [ExtendedProfile] Clean up of missing array indices handling 2020-08-07 11:59:17 +03:00
Alexei Sorokin
cf353f8829 [TwitterBridge] Do not fail on missing notice 2020-08-07 11:42:21 +03:00
Alexei Sorokin
2bd7c021fd [ACTIONS] Fix selftag 2020-08-07 10:20:03 +03:00
Alexei Sorokin
46f788d1eb [UTIL] Fix up common_ensure_session()
Give priority to cookies over GET.

Make sure session ids have only expected characters
(PHP file session handler's limitation).

Replace a mostly useless log warning with a debug message.
2020-08-06 21:54:49 +03:00
Alexei Sorokin
5ea5d30075 [EXCEPTIONS] Inherit the Previous Exception parameter 2020-08-06 20:03:44 +03:00
t3nma
22d650469b [TwitterBridge] Fix issue "Only variables should be assigned by reference"
From the docs: "The new operator returns a reference automatically, so
assigning the result of new by reference is not allowed as of PHP 7.0.0"
2020-08-06 17:25:27 +01:00
Diogo Cordeiro
849ad494d8 [ActivityPub][NOTICE] Process attachments 2020-08-05 18:23:41 +01:00
Diogo Cordeiro
7a2bb38331 [MEDIA] fromUrl now supports using original file name 2020-08-05 17:53:31 +01:00
Diogo Cordeiro
1428ac2cb0 [ActivityPub][NOTICE] Fix variable being wrongly reused 2020-08-05 17:53:31 +01:00
Diogo Cordeiro
efdc7d9ba0 [ActivityPub][INBOX][Delete] Support Delete Actor object being a Tombstone 2020-08-05 17:53:31 +01:00
Diogo Cordeiro
e4e41bb595 [ActivityPub][NOTICE] Fix other federation protocols mention handling 2020-08-04 20:00:55 +01:00
Diogo Cordeiro
379fbb6e5d [ActivityPub][SCRIPTS] Add fix_subscriptions.php 2020-08-04 17:12:01 +01:00
Diogo Cordeiro
09c3236afc [TheFreeNetwork][fix_duplicates.php] Don't die because you couldn't federate an undo follow 2020-08-04 13:03:33 +01:00
Diogo Cordeiro
7d52440461 [TheFreeNetwork][fix_duplicates.php] Small improvements on queries performed 2020-08-04 12:38:51 +01:00
Alexei Sorokin
e206995268 Set HTTP status codes with http_​response_​code() 2020-08-04 14:12:17 +03:00
Alexei Sorokin
ab4120721f [Favorite] Fix "Properly trigger DisfavorNotice on profile deletion"
Calling find() inside delete() is probably not a good idea.
2020-08-04 13:23:31 +03:00
Diogo Cordeiro
a9c365a5eb [VersionBump] 2.0.0alpha0
Ran composer update and locale updater
2020-08-04 05:31:44 +01:00
Diogo Cordeiro
8ad928d48d [TheFreeNetwork] Add Readme
Improve script fix_duplicates.php's comments
2020-08-04 05:10:11 +01:00
t3nma
ebf5efe9f2 [TheFreeNetwork] Add fix_duplicates script 2020-08-04 05:02:06 +01:00
t3nma
c7055341f9 [TheFreeNetwork] Small rewrite to the onStartTFNLookup event 2020-08-04 02:45:32 +01:00
Diogo Cordeiro
34c5be5c42 [MODULES] Make default loading attributes available in global config 2020-08-04 01:36:21 +01:00
t3nma
1675916fda [ActivityPub][QUEUES] Handle Create (AS1 POST) verb properly
Fixes a bug introduced in e504d13120
2020-08-03 18:21:47 +01:00
Alexei Sorokin
a38c608420 [SCHEMA] Better DBMS information fetching
On PostgreSQL:
  - Parse defaults for strings and booleans properly.
  - Parse the "serial" definition type properly.
  - Get information on the "enum" definition type.
  - Re-work getting information about keys/indices.

On MariaDB:
  - Get information about lengths in indices.
  - Get foreign key information separately from the rest as they can have
    colliding names.
2020-08-01 19:05:48 +03:00
Alexei Sorokin
20be1d179a [OpenID][DATABASE] Store UNIX timestamps as BIGINT 2020-07-31 18:40:53 +03:00
Alexei Sorokin
1870f38099 [SCHEMA] Fix a few mistakes 2020-07-31 18:24:12 +03:00
Alexei Sorokin
96eced9845 [BLOCK] Increase type strictness 2020-07-31 16:35:27 +03:00
Alexei Sorokin
92e8c40c55 [DATABASE] Add explicit indices for all foreign keys
This adds a requirement for all definitions that have foreign keys to also
require indices for all source (local) attributes mentioned in foreign keys.

MariaDB/MySQL creates indices for source attributes automatically, so this
serves as a way to get rid of those automatic indices and create clean explicit
ones instead.

In PostgreSQL, most of the time, indices on the source are necessary to
decrease performance penalty of foreign keys (like in MariaDB), but they aren't
created automatically, so this serves to remove that difference between
PostgreSQL and MariaDB.
2020-07-31 16:36:40 +03:00
Alexei Sorokin
0bfa747382 [DATABASE] Fix index identifiers and clean up redundant ones 2020-07-31 16:12:48 +03:00
t3nma
be3c4263b3 [DirectMessage] Update ApiDirectMessageNew action
- Messages are now saved as Notices
2020-07-29 17:50:29 +01:00
t3nma
f00852a619 [DirectMessage] Update ApiDirectMessage action
- getMessages() is now fetching from the Notice table as supposed
- every show{format}* method is properly updated to use Notice objects
- json and xml responses retrieve multi-recipients without compromising
  backwards compatibility
2020-07-28 05:49:37 +01:00
t3nma
83df8848c8 [DirectMessage] Update inboxMessages() to stop fetching replies
This is yet to be supported in the plugin.
2020-07-28 05:48:43 +01:00
t3nma
99183ce4e2 [DirectMessage] PSR12-format 2020-07-28 04:46:10 +01:00
Alexei Sorokin
434ce56e33 [DOCUMENTATION] Adopt PSR-12 and clarify on arrays 2020-07-27 19:19:42 +03:00
Alexei Sorokin
ec86de2bc4 [DATABASE] Update "modified" in Managed_DataObject instead of a DBMS trigger
Instead of relying on the MariaDB's ON UPDATE CURRENT_TIMESTAMP trigger update
"modified" attributes in Managed_DataObject. Every raw query that needs
adjusting is adjusted, as they won't update "modified" automatically anymore.

The main goal behind this change is to fix "modified" updates on PostgreSQL.
2020-07-27 19:10:33 +03:00
Alexei Sorokin
341f3d0ea5 [DATABASE] Fix more incorrect uses of quotation in SQL 2020-07-26 15:28:05 +03:00
Alexei Sorokin
579120df70 [Notice] Fix clearReplies() and clearRepeats() 2020-07-26 15:12:00 +03:00
Alexei Sorokin
63eb323e8b [SHOWSTREAM] Add "noindex" robots meta-tag for silenced profiles 2020-07-26 13:59:37 +03:00
Alexei Sorokin
2861ae2823 [AuthCrypt] Password storage and comparison improvements
Password hashes are now stored in a TEXT attribute, not limited to 199 symbols.
That limitation makes no sense as password hashes are not the kind of
information to be indexed.

Actually replace crypt() with password_verify() for password checking, current
code left password_verify() unused.

Only update passwords when they use a different algorithm from the current
default. Previously "overwrite" meant rehashing every login.

Replace the "argon" boolean option with "algorithm" and "algorithm_options" for
better configurability.
The default remains whichever is default for PHP's password_hash.
2020-07-25 20:16:21 +03:00
Diogo Cordeiro
0b947ce2c7 [AuthCrypt] Update README and fix formatting 2020-07-25 17:42:46 +01:00
Diogo Cordeiro
2222d6d173 [MODULES] Make settings great again
Plugin main class doesn't use this construct despite extending this class.
2020-07-25 17:47:53 +01:00
Alexei Sorokin
33e9b57b78 [Profile][User_group] Fix profile deletion violating foreign keys 2020-07-24 13:09:02 +03:00
Alexei Sorokin
62f4dfdc7a [Favorite] Properly trigger DisfavorNotice on profile deletion 2020-07-24 12:45:30 +03:00
Alexei Sorokin
7e01fd9c38 [DATABASE][MariaDB] Fix index changes with foreign keys enabled 2020-07-23 19:09:41 +03:00
Alexei Sorokin
eefaf7a2b4 [DATABASE][Schema_version] Change the hashing algorithm to SHA3-512 2020-07-23 18:16:56 +03:00
Alexei Sorokin
31dcf99e61 [DATABASE] Make unprefixed schema.php a bit more DBMS-neutral 2020-07-23 18:12:01 +03:00
Diogo Cordeiro
0def5f1dca [ActivityPub][Explorer] More robust exception handler for invalid remote answers 2020-07-23 15:54:40 +01:00
Alexei Sorokin
ac94374f48 [RemoteFollow] Fix location display 2020-07-22 19:49:24 +03:00
Diogo Cordeiro
9f72b6e2c0 [MEDIA] Fix headers when using x-static-delivery 2020-07-22 16:07:52 +01:00
Alexei Sorokin
f9e38c1a8d [LRDD] Fix unhandled bad data in HostMeta, LinkHTML and WebFinger 2020-07-22 01:30:04 +03:00
Diogo Cordeiro
6db56cc949 [ActivityPub][AProfile] Complete strict typing 2020-07-21 23:22:07 +01:00
Alexei Sorokin
7081720ecb [DATABASE] Check SQL boolean values with "IS TRUE"
This way UNKNOWN (NULL) explicitly turns to FALSE when three-valued logic is
reduced to binary.
In pgsqlschema, however, use "IS FALSE" as boolean attributes in pg_index are
non-nullable, there is no outer join and there's no clear preference for NULL
reduction.

Over-complicated constructions in TagCloud queries have been simplified, which
should not affect their performance.

Additionally, in TagCloud's lib/subscriptionspeopleselftagcloudsection.php
a typing mistake in an equi-join of "profile_tag" and "profile_list" on
"tagger" was fixed.
That regression was introduced in f446db8e2a
2020-07-21 18:06:39 +03:00
Diogo Cordeiro
f7ded4d87b [UserFlag] Fix type of onUserRightsCheck 2020-07-21 13:37:36 +01:00
Diogo Cordeiro
67780ca4a9 [UserFlag] Increase strict typing of main file
Run php-cs-fixer
Correct case of class name onDeleteRelated event handlers
2020-07-21 12:43:52 +01:00
Diogo Cordeiro
871f3c4bfe [ActivityPub] Increase type strictness on Explorer 2020-07-21 12:26:23 +01:00
Diogo Cordeiro
395fe8cb10 [ActivityPub] Fix wrong type handling on AProfile:update_profile 2020-07-21 12:02:07 +01:00
Diogo Cordeiro
af936f6f8e [Bookmark] Fix misuse of XMLOutputter
Argument 3 passed to htmloutputter::input() must be of the type string or null, array given, called in /srv/gnusocial/plugins/Bookmark/forms/bookmark.php on line 166
2020-07-17 20:56:51 +01:00
Diogo Cordeiro
5512e95e0a [ExtendedProfile] Fix misuse of XMLOutputter
Argument 1 passed to xmloutputter::text() must be of the type string, null given, called in /srv/gnusocial/plugins/ExtendedProfile/lib/extendedprofilewidget.php on line 556
2020-07-17 20:50:16 +01:00
Hugo Sales
5e14f18c83 [NOTICE][UI] Fix bug: Option to message "Everyone at site" when using private instance 2020-07-16 22:29:59 +00:00
Alexei Sorokin
5adb971d9a [DOCUMENTATION] Adapt the nginx config for avatars located in /file 2020-07-09 18:39:36 +03:00
Alexei Sorokin
f51e5ba19d [CORE] Avoid materialisation in the TaggedProfileNoticeStream query
This is analogous to c862589dcf
2020-07-07 22:41:03 +03:00
Alexei Sorokin
488bddb02a [NOTICE] Update index for verbs in ProfileNoticeStream
After adding a verb condition there, MariaDB now prefers the
("created", "id", "is_local") and ("profile_id", "verb", "created", "id")
indices for that query, even though they are slow for the job.
So replace them with ("is_local", "created", "id") and
("profile_id", "verb", "created", "id") respectively.
Also fix the naming of the ("profile_id", "created", "id") index.
2020-07-07 20:43:08 +03:00
Diogo Cordeiro
3a2ec3ef9c [ActivityPub] Fix bug introduced with 4d171b27
Too few arguments to function Activitypub_notice::create_notice()
2020-07-07 17:57:48 +01:00
Alexei Sorokin
08283f6c54 [RedisCache] Catch string return type from Predis\Client::setex 2020-07-06 20:10:12 +03:00
Alexei Sorokin
f7d3f58318 [CORE] Do not set "confirm_address"."user_id" to 0 by default
That breaks the foreign key constraint, it is better to just have it nullable.
2020-07-06 20:01:16 +03:00
Alexei Sorokin
89e84e9b1b [NOTICES] Revert "We want the profile stream to be as raw as possible!"
There are only three possible visible notice verbs: POST, SHARE and DELETE.
What including all verbs does is it makes limiting (FETCH FIRST) unreliable as
the query will fetch invisible stuff (like favourites) and count it in, but
nothing will be displayed.
NoticeStream only allows POST and SHARE, so this effectively removes tombstones
from the profile page like in 78a111b57d
2020-07-06 19:20:44 +03:00
Alexei Sorokin
9226cce151 [NOTICES] Fix InboxNoticeStream caching
Introduce a new property in CachingNoticeStream for always checking if there
are any new elements in the stream.
It would be extremely hard to blow InboxNoticeStream, so instead the database
hit will still occur, but it is be much faster than starting fresh.

This fixes a regression introduced in 36a55d8436
2020-07-06 18:12:50 +03:00
Diogo Cordeiro
6526bdc824 [TheFreeNetwork] Fix small logic issue regarding StartTFNLookup return 2020-07-05 18:26:49 +01:00
Diogo Cordeiro
1967f46a69 [ActivityPub][SCRIPTS] Make update profiles work with an uri 2020-07-05 17:38:28 +01:00
Diogo Cordeiro
e504d13120 [ActivityPub][QUEUES] Add Like, Undo and Delete 2020-07-05 16:58:05 +01:00
Diogo Cordeiro
2f284f4274 [ActivityPub][INBOX][Delete] Fix misconceptions
References:
- https://socialhub.activitypub.rocks/t/the-delete-activity-and-its-misconceptions/137
- https://socialhub.activitypub.rocks/t/the-update-activity-more-than-caching/260
2020-07-05 16:46:37 +01:00
Diogo Cordeiro
4d171b27a4 [ActivityPub][NOTE] Do not extract actor from attributedTo
There was no checking of attributedTo, actors and referent object IDs to make
sure they exist in the same domain. Therefore, one could spoof messages from
people by doing attributedTo: whoever-i-want-to-spoof
2020-07-05 15:38:12 +01:00
Diogo Cordeiro
fe4a9a6189 [ActivityPub][Ostatus] Fetch avatars in accordance to the new media system 2020-07-05 15:37:52 +01:00
Alexei Sorokin
c862589dcf [CORE] Avoid materialisation in the TagNoticeStream query
The notice.created sort forced the notice_tag by notice join plain to employ
materialisation, which can have a serious performance penalty depending on the
size of the database.
Sort by notice_tag.created instead, which should be exactly the same.
2020-07-01 18:20:44 +03:00
Alexei Sorokin
61765b0e33 [CORE] Avoid the old "reply" relation in inboxnoticestream
All verbs for not visible notices are filtered out, so this should not
break the timeline.
Additionally, filter by profile outside of the derived relation as that shows
better performance in PostgreSQL and MariaDB both.
2020-07-01 17:11:04 +03:00
Alexei Sorokin
78a111b57d Revert "FullNoticeStream selects all verbs"
It appears this was added to display "tombstones" of deleted notices.
However, it has other side-effects and the concept of keeping them visible has
not been adopted by the wider fediverse.
2020-06-30 23:03:41 +03:00
Alexei Sorokin
9a515b9234 [SCHEMA] Improve timestamp storage
Avoid the use of deprecated MariaDB "zero dates" globally. If they're present
as attribute defaults somewhere, they will be replaced with NULL implicitly.
The existing "zero dates" in MariaDB storage will be left intact and this
should not present any issues.

The "timestamp" type in table definitions now corresponds to DATETIME in
MariaDB with "DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP", which
should be close enough to the original behaviour for compatibility purposes.
It is now the recommended type for "modified" attributes, because of the
update trigger on MariaDB. But there is no such trigger implemented on
PostgreSQL as of this moment.
2020-06-29 01:41:46 +03:00
Alexei Sorokin
b924c180ae [DATABASE] Fix MariaDB schema verification 2020-06-28 20:05:11 +03:00
Diogo Cordeiro
737f3eb553 [ActivityPub][HTTPSignatures] Fix verify 2020-06-28 00:58:16 +01:00
Diogo Cordeiro
6e3954f3bb [ActivityPub][Inbox] Signature verification after Actor update would always fail 2020-06-28 00:49:55 +01:00
Diogo Cordeiro
4544f29832 [AVATAR] Ensure this Action stays secure 2020-06-28 00:11:47 +01:00
Hugo Sales
477c357f11 [MEDIA] Move AttachmentAction::sendFile to common_send_file
This fixed the wrong content type and status code returned by the Avatar action
2020-06-27 23:23:10 +01:00
Diogo Cordeiro
7869a7c1b0 [ActivityPub][Inbox] With PHP 7.3 we don't need get_all_headers workaround anymore
Furthermore, it was broken on Apache2 because the actual function
doesn't put the resulting array's key in lowercase.
2020-06-27 20:43:43 +01:00
Alexei Sorokin
edc7159ef6 [Memcached_DataObject] Check if it is possible to sort efficiently 2020-06-27 11:22:19 +03:00
Diogo Cordeiro
1db6943702 [ActivityPub][Inbox] get_all_headers was nginx only 2020-06-26 14:08:47 +01:00
Diogo Cordeiro
e8dff6c4a0 [TESTS] Move AcceptHeader from ActivityPub plugin to Core
Delete temporary ActivityPub tests (they were to be deleted long ago)
2020-06-25 15:50:12 +01:00
Diogo Cordeiro
23ed816035 [ExtendedProfile] Fix XML type bug 2020-06-24 21:44:25 +01:00
Diogo Cordeiro
324b7f38a9 [FORMAT] Run php-cs-fixer on tests/ 2020-06-24 13:55:10 +01:00
Diogo Cordeiro
aa7aff3f6b [TESTS] Fix CommandInterpreterTest
Also corrected a bad refactoring that affected Xmpp plugin test
2020-06-24 13:54:38 +01:00
Diogo Cordeiro
236929a166 [PEAR] I'm tired of this issue still popping up, this seems to silence it 2020-06-24 13:08:58 +01:00
Diogo Cordeiro
953e243639 [UI] Make neo-quitter default theme 2020-06-21 00:34:55 +01:00
Diogo Cordeiro
338d53c982 [XML] Inscrease types strictness 2020-06-21 00:34:54 +01:00
Diogo Cordeiro
37ebcc509b [AVATAR] Temporary ImageFile wasn't 2020-06-21 00:34:27 +01:00
Diogo Cordeiro
f9be6f9a85 [AVATAR] Try to delete tmp avatar if something goes wrong during the process 2020-06-20 14:47:35 +01:00
Diogo Cordeiro
2cc2b5b856 [MEDIA] ImageFile fromUpload method wasn't ensuring uploaded file was an image 2020-06-20 14:47:33 +01:00
Alexei Sorokin
194976135f [DATABASE] Some query improvements
Make common_sql_weight employ standard SQL functions for the timestamp
difference in seconds.
Also replace UTC_TIMESTAMP in the MariaDB-specific part with CURRENT_TIMESTAMP
as it is the only occurence and GNU social sets UTC as a default timezone.

In a delete_orphan_files.php script simplify the main query considerably.

In clean_profiles.php stop using COUNT as if it is ANY, that is unnecessary
punishment for the database. Instead implement the anti-join with a
left outer join.

In Autocomplete and Activitypub_profile use joins instead of a WHERE OR
anti-pattern for the semi-joins.

In lib/ui/galleryaction.php replace a CROSS JOIN with an INNER JOIN.

In actions/sup.php remove a redundant subquery: WHERE is applied before
grouping either way.
2020-06-10 16:52:00 +03:00
Alexei Sorokin
ef17f3ea7d [CORE][DATABASE] Another approach to semi-join in the inboxnoticestream query
Compared to the solution with INNER JOIN this seems to have better performance
as there is no need to deduplicate the subquery result before use.
2020-06-10 14:21:47 +03:00
Alexei Sorokin
0eec6fcfb6 [DATABASE] Replace NOW() with CURRENT_TIMESTAMP 2020-06-09 20:26:06 +03:00
Alexei Sorokin
09a772419a [DATABASE] Use "<>" as an SQL non-equality sign in more cases
A follow-up to commit 644b417f6c
2020-06-08 18:31:22 +03:00
Alexei Sorokin
6c035d01d4 [DATABASE] Start transactions with START TRANSACTION
"BEGIN" is non-standard and unnecessary.
2020-06-08 12:25:01 +03:00
susdiv
97bddc4537 [Autocomplete] Fix postgres incompatible query in AutocompleteAction 2020-06-05 19:14:37 +00:00
susdiv
684675bd84 [SCRIPTS] Fix postgres incompatible query in clean_profiles.php 2020-06-05 17:57:22 +00:00
susdiv
b8c0fa9fa0 [ActivityPub] Fix Postgres incompatible query in Following and Followed collection 2020-06-05 17:48:21 +00:00
Diogo Cordeiro
9e7794cd66 Merge branch 'nightly' of rainydaysavings/gnu-social into nightly 2020-06-03 00:08:53 +00:00
rainydaysavings
92ad44abf9 [THEME][neo-quitter] Added icon for Network in navbar 2020-06-03 00:59:22 +01:00
Hugo Sales
7e83ddf80e [FIX] Fix 'Trying to access array offset on value of type null' in AntiBrutePlugin and SimpleCaptchaPlugin when using scripts 2020-05-24 16:55:37 +00:00
tenma
a9be720f09 [OStatus] Remove TFN's deprecated Census event and fix small typo in the code 2020-05-09 11:50:26 +01:00
tenma
d7906f113e [ActivityPub] Remove TFN's deprecated Census event 2020-05-09 11:50:26 +01:00
tenma
01dcaefcfb [TheFreeNetwork] Use config + module settings for initialization and online lookup
The Census event is now replaced with module settings for populating the
protocols array. With this we can shutdown some plugins and still make
them be checked by TFN.

The performance:high config is now added when deciding whether or not to
do online lookup after the offline lookup fails.

default:
- Add default values for the TFN protocol setting

EVENTS:
- Remove Cencus event

TheFreeNetworkModule
- Remove Census event handler, update protocols array to use module's settings
- Use performance:high config when deciding to do online lookup
2020-05-09 11:50:26 +01:00
tenma
cfba91ea43 [OStatus] Add TheFreeNetwork module's support in handling profile insertion
Ostatus_profile:
- Update createActivityObjectProfile to trigger TFN's assistance in inserting the profile
2020-05-09 11:50:26 +01:00
tenma
134b6f6478 [ActivityPub] Add TheFreeNetwork module's support in handling profile insertion
Activitypub_profile:
- Update do_insert to trigger TFN's assistance in inserting the profile

explorer:
- Use the new LRDD's method for grabbing profile aliases
2020-05-09 11:50:25 +01:00
tenma
64104cb182 [TheFreeNetwork] Handle new StartTFNLookup and EndTFNLookup events
EVENTS:
- describe new events

TheFreeNetworkModule:
- add event handlers and necessary auxiliary methods
- minor comment updates
2020-05-09 11:50:25 +01:00
tenma
9aedcc7997 [OStatus] Update salmonaction to use the new LRDD's method for grabbing aliases 2020-05-09 11:50:25 +01:00
tenma
35547e28ea [LRDD] Add a new method for grabing profile aliases 2020-05-09 11:50:25 +01:00
tenma
c6543e1f95 [ActivityPub] Autofix profile URIs through alias discovering
Activitypub_profile:
- Add updateUri method

explorer:
- Add grab_aliases method
- Update grab_local_user's online course to grab and test aliases
2020-05-09 11:50:25 +01:00
Alexei Sorokin
2183875e9e [UI] Fix group member pages showing up twice 2020-05-05 16:49:21 +03:00
Alexei Sorokin
e5ee069f4a [UI] Order groups in join descending order in profiles 2020-05-05 16:25:02 +03:00
Hugo Sales
6c844315aa [CORE] Fix 'Array and string offset access syntax with curly braces is deprecated' in AuthCryptModule and DirectionDetectorPlugin 2020-05-04 10:47:23 +00:00
Alexei Sorokin
872bb1388d [Nodeinfo] Count active users for full days and without silenced 2020-04-17 18:13:05 +03:00
Alexei Sorokin
42aa255152 [CORE] Re-format the inboxnoticestream query 2020-04-08 15:25:30 +03:00
Diogo Cordeiro
e58188d136 [UI] Small improvement on attachment's visual 2020-04-07 13:28:34 +01:00
Diogo Cordeiro
bb32c0af3b [SensitiveContent] Fix plugin settings
Also reformatted the code and minor bug fixed it
2020-04-07 13:28:29 +01:00
nee
63fd2c7037 [SensitiveContent] Add option to activate for not-logged-in visitors
Remove redundant setting retrival code.

An example config.php entry to activate the new config:
$config['site']['sensitivecontent']['hideforvisitors'] = true;
2020-04-07 02:59:35 +01:00
nee
520a2ba202 [SensitiveContent] Don't crash in GNU social classic
When an attachment has no thumbnail (for example when it's a video).
2020-04-07 02:59:30 +01:00
Hugo Sales
13e8445083 [SensitiveContent] Fix bug where having this plugin activated would not size thumbnails correctly 2020-04-07 02:59:24 +01:00
Hugo Sales
d1c70cb13b [CORE] Make avatars be served with the same mechanism as attachments 2020-04-06 21:14:11 +00:00
Diogo Cordeiro
6898cff623 [PLUGINS] Remove VideoThumbnails not useful anymore 2020-04-03 12:20:27 +01:00
Diogo Cordeiro
f4558e3c41 [ActivityPub] Fix profile url handling 2020-03-28 03:16:24 +00:00
tenma
d24075b1c5 [INSTALL] Allow the setup of sslproxy during install time
install.php:
installer.php:
- add option field and handle logic

display.css:
- hardcode ssl's label margin-top value so all options are correctly displayed
2020-03-15 21:37:37 +00:00
tenma
a8c2a9da3a [DOCUMENTATION] Add further notes to the nginx sample config 2020-03-12 18:03:48 +00:00
tenma
8041df7d41 [DATABASE] Fix deprecated call to implode() 2020-03-12 17:44:50 +00:00
Diogo Cordeiro
073a181778 [ActivityPub] Fix undefined tag index 'type' in Activitypub_notice 2020-02-14 17:25:26 +00:00
Diogo Cordeiro
bec6fdc66a [NOTICES] Add data-nosnippet attribute for notices by remote profiles 2020-01-09 19:49:49 +00:00
Diogo Cordeiro
6833c9f1c2 [SHOWSTREAM] Add robots meta-tag for remote profiles 2020-01-09 17:02:26 +00:00
Diogo Cordeiro
18ade30185 [FORMAT] Ran php-cs-fixer on the handlers of notice items and streams
This was to keep the following two commits readable
- actions/showstream.php
- actions/userbyid.php
- lib/modules/ActivityHandlerModule.php
- lib/modules/ActivityHandlerPlugin.php
- lib/notices/conversationnoticestream.php
- lib/notices/noticelistitem.php
- lib/notices/noticestream.php
- lib/notices/threadednoticelistitem.php
2020-01-09 21:41:34 +00:00
Alexei Sorokin
e7ab305335 [CORE] Use monotonic time via hrtime() where applicable
The realtime clock is not reliable when calculating elapsed time.
2020-01-07 19:48:13 +03:00
Alexei Sorokin
110d3a453a [Embed][CORE] Validate the hexadecimal for hex2bin properly 2020-01-07 17:30:18 +03:00
Alexei Sorokin
f5aeab39b4 [PEAR DB_DataObject] Make static methods in Cast actually static 2020-01-07 17:16:07 +03:00
Diogo Cordeiro
e7738895ce [DOCUMENTATION] Updated TODO and branches info 2019-12-23 15:39:26 +00:00
Diogo Cordeiro
60446dfc20 [CORE] Better queues defaults 2019-12-11 02:23:37 +00:00
Diogo Cordeiro
dc211c9c44 [ActivityPub][Postman] Fix not sending notices to self 2019-12-11 01:30:25 +00:00
Diogo Cordeiro
27babac6dc [Ostatus] Partially revert 69add504e6
updateuris isn't needed after alll, we should solve this with TFNM and existing infrastructure.
2019-12-11 01:30:15 +00:00
Diogo Cordeiro
3e2b7cddc8 [ActivityPub][RSA] Revision, increase type scrictness and improve docs 2019-12-10 23:51:40 +00:00
Diogo Cordeiro
80ba2b3ccc [ActivityPub] Properly handle Actor URIs by using events correctly
This should fix nulls on explorer lookups inputed by postman after generate_followers/getSubscribers, that I think were caused by calling common_profile_uri that, curiously, only handles local profiles
2019-12-10 23:50:56 +00:00
Diogo Cordeiro
b730582336 [CORE] Add GNUSOCIAL_ENGINE_REPO_URL and increase usage of GNUSOCIAL_ENGINE_URL 2019-11-21 00:21:22 +00:00
Alexei Sorokin
1b429dd2e5 [API] Show a nicer no such user error on statusnet/groups/list_all 2019-11-16 22:12:42 +03:00
Alexei Sorokin
448404e45c [SCRIPTS] Fix resend_confirm_address.php
Fix a regression from 6ec72b2978,
check if an address is set when using --email.
2019-11-16 21:22:46 +03:00
Alexei Sorokin
562d84c375 [Xmpp] Adjust type declarations for changes in XMPPHP 2019-11-16 20:44:18 +03:00
Diogo Cordeiro
f09e3362aa [COMPOSER] update 2019-11-16 16:51:01 +00:00
Diogo Cordeiro
51b5b1c08c [ActivityPub][RSA] Fix types of generate_keys 2019-11-16 15:32:49 +00:00
Diogo Cordeiro
ca2dde9a41 [ExtendedProfile] Fix updates and allow to delete values 2019-11-03 19:49:10 +03:00
Alexei Sorokin
6674d1ed0f [NodeInfo][DATABASE] Adjust indices of the "notice" and "user" tables
On big databases these queries from the Nodeinfo plugin choked up:

SELECT profile_id FROM notice
  WHERE notice.created >= (CURRENT_DATE - INTERVAL '180' DAY)
  AND notice.is_local = 1;
SELECT id FROM "user"
  WHERE "user".created >= (CURRENT_DATE - INTERVAL '180' DAY);
2019-11-03 18:57:03 +03:00
Diogo Cordeiro
2a10dffff8 [UI] Fix a small typo 2019-11-03 15:53:11 +00:00
Diogo Cordeiro
e0b17fc97d [REALTIME] Reviewed both the superclass and its dist plugins 2019-11-03 15:37:49 +00:00
Alexei Sorokin
52800c3a65 [DATABASE] Remove profile_tag_tag_fkey
profile_list.tag is not supposed to be unique,
this also reverts the addition of profile_list_tag_key.
2019-11-02 14:32:48 +03:00
Alexei Sorokin
9124617055 [Xmpp] Latin-1 space characters are not forbidden for XMPP resources
Also use mb_strlen() with the 8bit encoding to count octets, strlen() is not as
reliable (mbstring.func_overload).
2019-11-02 13:54:26 +03:00
Alexei Sorokin
b312712d1b [Xmpp] Use UnexpectedValueException in splitJid, a bit narrower 2019-11-02 13:29:00 +03:00
Alexei Sorokin
5bc1b8695e [DATABASE] Disable 'NULL' strings evaluation as SQL NULLs
Use $object->sqlValue('NULL') (identical to DataObject_Cast'ing) instead and
fix related issues like (email|sms)settings considering these NULLs as a
false positive for the E-Mail address still being set when it's been removed.

There could also be security implications to the now-disabled approach of
considering 'NULL' strings as SQL NULLs.
2019-11-02 12:21:43 +03:00
Diogo Cordeiro
d921f3dadb [ActivityPub] New URI system 2019-11-10 17:47:51 +00:00
Diogo Cordeiro
c154712012 [PEAR DB_DataObject] Removed DB_DATAOBJECT_NO_OVERLOAD as we don't have support for either PHP 4 or 5 2019-11-03 00:43:21 +00:00
tenma
3634af3fdc [TheFreeNetwork] First code: Module class and census event 2019-11-03 00:43:21 +00:00
tenma
1df9ec9f0f [SCRIPTS] Add updateuris script
To fix user URIs to their non-fancy version
2019-11-03 00:43:21 +00:00
tenma
ae54a94d41 [CORE] Update common_user_uri
To be consistent between federated-protocols and maintain non-fancy URIs
2019-11-03 00:43:21 +00:00
tenma
69add504e6 [OStatus] Add script for profile deduplication and URI fixing 2019-11-03 00:43:21 +00:00
tenma
a0d30b6872 [ActivityPub] Fix some small known problems
ActivityPubPlugin:
- Rework onProfileDeleteRelated to account for the tables _rsa and _pending_follow_requests
- Update onEndShowAccountProfileBlock to stop creating the ap_profile if it doesn't exist (we'll handle this in a different manner)

Activitypub_profile:
- Remove unnecessary code from from_profile method and add return type information

Explorer:
- Update travel_collection to call itself instead of _lookup, that was wrong
2019-11-03 00:43:21 +00:00
Alexei Sorokin
a06b33be66 [AnonymousFave][DATABASE] Set the created timestamp on INSERT 2019-11-01 16:09:09 +03:00
Alexei Sorokin
fe3e33e702 [DAEMONS][TwitterBridge] Set PUBLICDIR 2019-11-01 15:27:36 +03:00
Alexei Sorokin
3f56459734 [COMPOSER] Remove some pre-composer remnants from the code 2019-11-01 14:19:42 +03:00
Alexei Sorokin
4903241e4b [DOCUMENTATION][NGINX conf] snippets/fastcgi-php.conf is Debian-specific 2019-11-01 08:52:21 +03:00
Alexei Sorokin
85be003cf5 [Embed][CORE] hex2bin should always get an even amount of symbols 2019-11-01 08:29:52 +03:00
tenma
bddc1c0f9d [ActivityPub] Fix successive "Cannot use object of type stdClass as array" errors in the postman 2019-11-01 02:23:39 +00:00
tenma
01f6d83b86 [MODULES] Fix VERSION constant to MODULE_VERSION in various modules 2019-10-30 23:52:14 +00:00
Diogo Cordeiro
aa994ee4fb [CORE] Allow to force non-fancy URLs
Essential to allow toggling fancy urls later. In some cases it is
critical to keep the URL an unique URI.
2019-10-27 17:40:37 +00:00
Diogo Cordeiro
d058a70557 [MEDIA] Simplify Attachment actions 2019-10-19 02:57:32 +01:00
Diogo Cordeiro
7298468df7 [FILE] Fix Return value of File::getFileOrThumbnailSize() must be of the type int, null returned 2019-10-19 01:16:37 +01:00
Diogo Cordeiro
63caa5044d [LIB_REFACTOR] Fix minor issues 2019-10-19 00:51:52 +01:00
tenma
2ae93dbec6 [ActivityPub] Revert usage of bitwise-operator & in the inbox_handler class. 2019-10-17 20:25:00 +01:00
Diogo Cordeiro
b434bead2c [ActivityPub] The protocol allows content to be null, GNU social doesn't, we'll reject silentiously
Reported by kaniini
2019-10-11 19:09:12 +01:00
Diogo Cordeiro
6284b155b8 [ActivityPub] attributedTo itself is not required, if not present then it should be inferred from the actor
Reported by kaniini
2019-10-11 17:51:20 +01:00
Diogo Cordeiro
b12c2d17d5 [ActivityPub] Fix security issue concerning remote profile deletes
Reported by kaniini
2019-10-11 17:41:43 +01:00
Diogo Cordeiro
5fb1e26a4c [ActivityPub] Inbox Handler: Remove old guzzle import
Improve exception information in doc blocks
2019-10-11 17:18:50 +01:00
Diogo Cordeiro
6423750250 [ActivityPub] Slightly increase robustness on exception handling
Also ported Activitypub_rsa to PHP7
Minor indentation fixes
2019-10-11 17:08:41 +01:00
Diogo Cordeiro
d9b5ef1cee [ActivityPub] Consistent headers in explorer requests
Minor indentation fixes
2019-10-11 16:00:14 +01:00
Miguel Dantas
f1717bde51 Fix 'Call to a member function getPayload() on null'
Trying to enable the RedisCache with the latest nightly, getting this with the daemon:

sep 25 11:40:18 friedrich startdaemons.sh[21428]: PHP Fatal error:  Uncaught Error: Call to a member function getPayload() on null in /var/www/social/plugins/RedisCache/RedisCachePlugin.php:96
sep 25 11:40:18 friedrich startdaemons.sh[21428]: Stack trace:
sep 25 11:40:18 friedrich startdaemons.sh[21428]: #0 /var/www/social/lib/util/event.php(89): RedisCachePlugin->onStartCacheSet('gnusocial:herds...', Object(HubSub), NULL, 86400, false)
sep 25 11:40:18 friedrich startdaemons.sh[21428]: #1 /var/www/social/lib/cache/cache.php(202): Event::handle('StartCacheSet', Array)
sep 25 11:40:18 friedrich startdaemons.sh[21428]: #2 /var/www/social/classes/Memcached_DataObject.php(520): Cache->set('gnusocial:herds...', Object(HubSub))
sep 25 11:40:18 friedrich startdaemons.sh[21428]: #3 /var/www/social/classes/Memcached_DataObject.php(52): Memcached_DataObject->encache()
sep 25 11:40:18 friedrich startdaemons.sh[21428]: #4 /var/www/social/classes/Managed_DataObject.php(50): Memcached_DataObject::getClassKV('HubSub', 'hashkey', 'a38b9dc516371af...')
sep 25 11:40:18 friedrich startdaemons.sh[21428]: #5 /var/www/social/plugins/OStatus/classes/HubSub.php(47): Managed_DataObject::getKV('hashkey', 'a38b9dc516371af...')
sep 25 11:40:18 friedrich startdaemons.sh[21428]: #6 /var/www/social/plugins/OStatus/lib/hubprepqueuehandler.php(68): HubSub::getByHashkey('https://herds.e...', 'https://raki.so...')
sep 25 11:40:18 friedrich startdaemons.sh[21428]: #7 /var/www/social/plugins/RedisQueue/classes/RedisQueueManager.php(58): HubPrepQueueHandl in /var/www/social/plugins/RedisCache/RedisCachePlugin.php on line 96
Sign in to j
2019-09-26 11:29:31 +01:00
Miguel Dantas
c6f4f40bba [Embed][CORE] Fixes 'Invalid Filename' on Embed. Regex didn't get updated 2019-09-26 11:29:31 +01:00
Alexei Sorokin
65f1b1e1e3 Fix minor git merge resolving issues 2019-09-18 17:43:00 +03:00
Alexei Sorokin
ad91ef66bd [SCRIPTS] Set PUBLICDIR in plugin scripts as well 2019-09-18 17:15:00 +03:00
Alexei Sorokin
6bfa593988 [DAEMONS] Move resetDb to the Daemon class
As it is used inside the Daemon class now, it should always be available.
2019-09-13 22:08:42 +03:00
Diogo Cordeiro
3ea580b537 [ActivityPub] Add missing parenthesis in class instantiation
Fixed some issues related to thrown exceptions in the doblocks; also boolean -> bool
2019-09-13 18:58:41 +01:00
Alexei Sorokin
87b0b493eb [ActivityPub] Fix an unhandled error in onStartGetProfileFromURI 2019-09-13 20:55:23 +03:00
Diogo Cordeiro
4eb4a2de00 [ActivityPub] Fix some bugs with onStartNoticeSearch
Refactored Activitypub_profile::ensure_web_finger to Activitypub_profile::ensure_webfinger
Do not throw exceptions in the handling of this event because we don't
want to stop the regular search just because we were unable to find
ActivityPub actors or notes.
2019-09-13 18:10:20 +01:00
Alexei Sorokin
1f2f57b03b [CORE] Fix logging of very early failures 2019-09-13 12:11:43 +03:00
Alexei Sorokin
4afaad3df5 [DATABASE][MariaDB] Properly account for foreign keys 2019-09-13 10:34:48 +03:00
Diogo Cordeiro
c3ba2e0f94 [BugFix] Plugins ExtendedProfile and OverwriteThemeBackground - admin is identical to system path names. 2019-09-12 23:18:50 +01:00
Alexei Sorokin
693c3168da [OStatus] The unsubscribe state also needs a label 2019-09-12 14:19:21 +03:00
Alexei Sorokin
8f309bc768 Merge branch 'pgsql_support' into nightly 2019-09-12 12:01:50 +03:00
Alexei Sorokin
1a0d6a90c2 [INSTALL] Fix lib/util/installer.php import path 2019-09-12 11:52:04 +03:00
Diogo Cordeiro
7f2019b4af [MODULES] Make disable in admin panel effective 2019-09-12 04:50:46 +01:00
Alexei Sorokin
ee7f0a2016 [DATABASE] Re-introduce PostgreSQL support 2019-09-11 14:14:40 +03:00
Alexei Sorokin
644b417f6c [DATABASE] Use "<>" as an SQL non-equality sign
"!=" is not SQL compliant.
2019-09-11 13:27:36 +03:00
Alexei Sorokin
471576d6e8 [DATABASE] Columns not in GROUP BY must not be queried 2019-09-11 13:12:41 +03:00
Alexei Sorokin
7ee8aa7838 [DATABASE] Re-introduce the enum type abstraction 2019-09-11 12:48:28 +03:00
Alexei Sorokin
af63e9a7ad [DATABASE] Set all primary keys as "not null" explicitly 2019-09-11 12:27:40 +03:00
Alexei Sorokin
95c7344557 [DATABASE] Various table schema related fixes 2019-09-11 12:07:54 +03:00
Alexei Sorokin
0c936e54ba [DATABASE] Re-order tables to be created
Foreign keys need to be created after the respective tables are already in
place. This order makes sure this is the case.
2019-09-11 11:56:36 +03:00
Alexei Sorokin
62b90c29db [DATABASE] Introduce a bool type in schema
PostgreSQL has a clear distinction between integers and booleans, so it makes
sense to draw a clear line.
2019-09-11 11:25:39 +03:00
Alexei Sorokin
6911b499d3 [DATABASE] Consistently use the "LIMIT $limit OFFSET $offset" syntax
The "LIMIT $offset, $limit" syntax is only supported by MySQL and MariaDB.
2019-09-11 10:12:49 +03:00
Alexei Sorokin
44f4c9374d [DATABASE] Use time intervals in a SQL standard compliant way 2019-09-11 09:58:13 +03:00
Alexei Sorokin
11dabbe44d [DATABASE] Only use single quotation marks for SQL strings
Double quotation marks are only used for identifiers in the SQL standard.
2019-09-11 09:46:30 +03:00
Alexei Sorokin
0a5a3845db [DATABASE] Set NULL in DB_DataObject in a more reliable manner
Also stop assuming that FeedSub::sub_state (enum) and FeedSub::sub_end
(datetime) can possibly be set to an empty string.
2019-09-11 08:32:19 +03:00
Alexei Sorokin
5b797328f2 [DATABASE] Always quote identifiers
The code used to operate under the assumption that MariaDB doesn't support
quoting identifiers. Not only is that not exactly true, but MariaDB has
reserved keywords that cannot be used as table or column names unquoted.
2019-09-11 08:15:16 +03:00
Alexei Sorokin
b89f1ad7d8 [CORE] Another inboxnoticestream improvement 2019-09-10 22:25:45 +03:00
Alexei Sorokin
b0104d9992 [DAEMONS] Switch daemons to double-forking for daemonisation 2019-09-10 21:14:27 +03:00
Alexei Sorokin
9d8f4c774f [DAEMONS] Properly disconnect daemons from the database 2019-09-10 20:25:28 +03:00
Diogo Cordeiro
8b7a22ecd9 Merge branch 'nightly' of biodantas/gnu-social into nightly 2019-09-10 17:11:00 +00:00
Miguel Dantas
a4e6db8d76 [OpportunisticQM] Revamped plugin to be able to use other poll based queuemanagers, no just the DB 2019-09-05 01:39:00 +02:00
Miguel Dantas
78506d5249 [StompQueue] Changed StompQueueManager to use polling rather than sockets 2019-09-05 01:39:00 +02:00
Miguel Dantas
6747b18b75 [PLUGINS] Added UnQueue, a new default plugin which does all actions immediately 2019-09-05 01:39:00 +02:00
Miguel Dantas
544f13c52a [PLUGINS] Added DBQueue plugin 2019-09-05 01:38:59 +02:00
Miguel Dantas
4644f6e96b [PLUGINS] Added StompQueue plugin, based on the implementation in lib/queue/stompqueuemanager. Updated to new STOMP library version. Dropped liberalstomp.php and stompqueuemanager.php 2019-09-05 01:38:40 +02:00
Miguel Dantas
a3b228399b [PLUGINS] Added RedisQueue 2019-09-03 14:01:27 +01:00
Miguel Dantas
100a557c7c [CORE][AUTOLOAD] Fix class OAuthRequest not found
Issue description as reported by aab:

2019-08-28 17:34:48 LOG_ERR: [khp.ignorelist.com:61055.f5f7f51c GET /api/statuses/show/178372.atom] ServerErrorAction: 500 Class 'OAuthRequest' not found
2019-08-28 17:39:50 LOG_ERR: [khp.ignorelist.com:65390.4483ff85 GET /api/statusnet/conversation/104672.rss] Handled serverError (500) but cannot output into desired format ('rss'): 'Class \'OAuthRequest\' not found'
2019-08-28 17:39:50 LOG_ERR: [khp.ignorelist.com:65390.4483ff85 GET /api/statusnet/conversation/104672.rss] ServerErrorAction: 500 Class 'OAuthRequest' not found
2019-08-28 17:40:49 LOG_ERR: [khp.ignorelist.com:65390.4c745f68 GET /api/statuses/show/18132.atom] Handled serverError (500) but cannot output into desired format ('atom'): 'Class \'OAuthRequest\' not found'
2019-08-28 17:40:49 LOG_ERR: [khp.ignorelist.com:65390.4c745f68 GET /api/statuses/show/18132.atom] ServerErrorAction: 500 Class 'OAuthRequest' not found
2019-08-28 17:47:41 LOG_ERR: [khp.ignorelist.com:65390.42ee9fd4 GET /api/statusnet/conversation/133023.as] Handled serverError (500) but cannot output into desired format ('as'): 'Class \'OAuthRequest\' not found'
2019-09-03 03:33:14 +01:00
Miguel Dantas
6acc75ccff [FRAMEWORK][AUTOLOAD] Fix autoloads 2019-09-03 03:33:14 +01:00
Miguel Dantas
b41f9620fa [LIB_REFACTOR] Fix requires 2019-09-03 03:33:13 +01:00
Miguel Dantas
58bde08425 [LIB_REFACTOR] Moving files into separate semantic categories 2019-09-03 03:33:13 +01:00
Miguel Dantas
7d6c6edab3 [RedisCache] Fix call to getPayload on int. The library is badly documented, but seems to return the TTL instead of the normal redis response
Issue description as reported by aab:

About one day after enabling redis plugin:

PHP Fatal error:  Uncaught Error: Call to a member function getPayload() on int in /var/www/html/plugins/RedisCache/RedisCachePlugin.php:96
Stack trace:
0 /var/www/html/lib/event.php(89): RedisCachePlugin->onStartCacheSet('gnusocial:gatea...', Object(Queue_item), NULL, 86400, false)
1 /var/www/html/lib/cache.php(202): Event::handle('StartCacheSet', Array)
2 /var/www/html/classes/Memcached_DataObject.php(496): Cache->set('gnusocial:gatea...', Object(Queue_item))
3 /var/www/html/classes/Memcached_DataObject.php(416): Memcached_DataObject->encache()
4 /var/www/html/classes/Managed_DataObject.php(620): Memcached_DataObject->update(Object(Queue_item))
5 /var/www/html/classes/Queue_item.php(74): Managed_DataObject->update(Object(Queue_item))
6 /var/www/html/lib/dbqueuemanager.php(75): Queue_item::top(Array, Array)
7 /var/www/html/lib/iomaster.php(287): DBQueueManager->poll()
8 /var/www/html/lib/iomaster.php(161): IoMaster->poll()
9 /var/www/html/scripts/queuedaemon.php(112): IoMaster->service()
10 /var/www/html/lib/spawni in /var/www/html/plugins/RedisCache/RedisCachePlugin.php on line 96
2019-09-03 03:31:59 +01:00
Miguel Dantas
d209964718 [Memcached] Fix call to undefined method close
Issue description as reported by aab:

Memcached config in config.php:

    addPlugin('Memcached', [ 'servers' => ['127.0.0.1', 11211],
                             'defaultExpiry' => 86400 // 24h
                           ]);

Memcached and php-memchached installed.

The error appears when executing startdaemons.

Log:

    PHP Fatal error:  Uncaught Error: Call to undefined method Memcached::close() in /var/www/html/plugins/Memcached/MemcachedPlugin.php:202
    Stack trace:
    #0 /var/www/html/lib/event.php(89): MemcachedPlugin->onStartCacheReconnect(false)
    #1 /var/www/html/lib/cache.php(273): Event::handle('StartCacheRecon...', Array)
    #2 /var/www/html/lib/spawningdaemon.php(209): Cache->reconnect()
    #3 /var/www/html/lib/spawningdaemon.php(188): SpawningDaemon->resetDb()
    #4 /var/www/html/lib/spawningdaemon.php(118): SpawningDaemon->initAndRunChild(3)
    #5 /var/www/html/lib/daemon.php(168): SpawningDaemon->run()
    #6 /var/www/html/scripts/queuedaemon.php(186): Daemon->runOnce()
    #7 {main}
      thrown in /var/www/html/plugins/Memcached/MemcachedPlugin.php on line 202
2019-09-03 03:30:07 +01:00
Miguel Dantas
c03f659efb [Embed] Fix use of undefined img_data
Got error 'PHP message: PHP Notice: Undefined variable: img_data in /var/www/html/plugins/Embed/EmbedPlugin.php on line 544'
2019-09-03 03:29:32 +01:00
tenma
2e66cbeb60 [CORE] Fix undefined offset warnings in different files
This problem was presentend in the following issue:
https://notabug.org/diogo/gnu-social/issues/60

AcceptHeader/util:
- Perform isset before using the required array values
2019-09-03 03:26:35 +01:00
tenma
19409cb999 [ActivityPub] Add support fox search-box profile/notice grabbing
NoticeSearchAction:
- Add new event before finding query matches

ActivityPubPlugin:
- Subscribe new searchNotice event
- Bump minor version number

Activitypub_explorer:
- Update lookup to make remote-grabbing optional
2019-09-03 03:26:35 +01:00
tenma
c06182c38f [ActivityPub] Handle DELETE-Person activity
ActivityPubPlugin:
- update grab_notice_from_url to make online grab optional
- subscribe events of user and profile deletion
- bump minor version number

Activitypub_inbox_handler:
- separate handle_delete for delete-note and delete-person

Activitypub_postman:
- add delete-person logic

Activitypub_delete:
- update validation method to check for the "Person" type
- update to_array method to target the activity
2019-09-03 03:26:35 +01:00
Miguel Dantas
f79cd8cee3 [CORE] Fix small bug where Notice was sending a JSON representation to the queue, instead of sending itself 2019-09-03 03:26:35 +01:00
tenma
c130739de0 [AP] Fix subscription events
Both StartSubscribe and StartUnsubscribe had a wrong initial if-condition.
Furthermore, this events were calling Activitypub_profile::from_profile()
which is wrong because it creates the Activitypub_profile object when
the goal is only to check if it exists already.
2019-09-03 03:26:35 +01:00
tenma
1a4a1583d5 [AP] Subscribe RemoteFollow plugin events for allowing following with the remote-follow button 2019-09-03 03:26:35 +01:00
tenma
3633ca04eb [OStatus] Port remote-follow to the RemoteFollow plugin
OStatusPlugin:
- Stop adding the remote-follow button
- Subscribe to required RemoteFollow plugin events
- Drop main/ostatussub route and update urls to the main/RemoteFollowSub route
- Bump plugin minor version number

actions/ostatusgroup,
actions/ostatuspeopletag:
- Update urls to the main/RemoteFollowSub route

lib/util:
- Port required functions from OStatusSubAction and adapt to be used with the new events
2019-09-03 03:26:35 +01:00
tenma
e61c0c45aa [RemoteFollow] Initial work in the RemoteFollow plugin
lib/default.php
- Add RemoteFollow to the list of default plugins

RemoteFollowPlugin:
- Subscribe events to add the remote-follow button

RemoteFollowInitAction:
- Handles the remote-follow form and getting the redirection url for follow completion

RemoteFollowSubAction:
- Handles the remote profile pulling and actual following
2019-09-03 03:26:35 +01:00
Miguel Dantas
6d81848f25 [URLMAPPER] Fix small bug in URLMapper: a dynamic route might not exist even if a static one does 2019-09-03 03:26:35 +01:00
Miguel Dantas
10b3b343dd [DirectMessage] Fixed use of incorrect type which prevented posting notices with only one word 2019-09-03 03:26:35 +01:00
tenma
f6fd025be2 [AP] Update version info 2019-09-03 03:26:35 +01:00
tenma
b5897687a6 [AP] Prevent postman to include the actor's followers for every sent activity 2019-09-03 03:26:35 +01:00
tenma
ebeae261de [AP] Support Private Messaging
ActivityPubPlugin:
- Subscribe DirectMessage events

Activitypub_inbox_handler:
- Update handle_create_note to create private messages

Activitypub_postman:
- Add create_direct_note for sending private messages

Activitypub_create:
- Update create_to_array to support the 'directMessage' attribute
- Add isPrivateNote to verify private activities

Activitypub_notice:
- Update create_note to support the 'directMessage' attribute
- Remove isPrivateNote

lib/models:
- Add Activitypub_message, the model in charge of private notes
2019-09-03 03:26:35 +01:00
tenma
9733f3c02c [AP] Fix Follow collections
Activitypub_profile:
- Fix subscription-counter getter functions, invalid profiles were being counted

apActorFollowingAction:
- Small rewrite of generate_following, didn't make sense to not use try-catch block

apActorFollowersAction:
- Small rewrite of generate_followers, didn't make sense to not use try-catch block
2019-09-03 03:26:35 +01:00
tenma
217c8a3933 [AP] Handle unlisted/followers-only notices
Note that this commit isn't intended to add support for sending such notes
in GS. Instead, we handle the reception, storage and direct reply to this
type of notices, in AP.

ActivityPubPlugin:
- Subscribe the event StartNoticeSave to hack answering non-public notes

Activitypub_create:
- Add 'directMessage' attribute to the Create activity, defaulting to false for now
- Update validation method: validate 'directMessage' and add debug

Activitypub_notice:
- Handle incoming unlisted/followers-only notes
- Add support for unlisted-replies
- Add method to verify private (direct) notices

inbox_handler:
- Add handler for CREATE Note
- Prepare logic for private-messaging
- Overall refactor: Class members were continuously being passed as function arguments without need

SharePlugin:
- Stop showing the announce button in non public posts
2019-09-03 03:26:35 +01:00
tenma
7188d81ad4 [AP] Properly target public notices
ActivityPubPlugin:
- Use TO as principal audience, CC as secondary
- Update note validation
2019-09-03 03:26:35 +01:00
Miguel Dantas
48cacd6d9d [RedisCache] Added plugin description, fixes 'empty msgid' error 2019-09-03 03:26:35 +01:00
Diogo Cordeiro
1e378a514d [OverwriteThemeBackground] This new plugin will let the admin set a custom background theme independent 2019-09-03 03:26:35 +01:00
Diogo Cordeiro
92ab5e18ee [ExtendedProfile] Fix Admin menu option 2019-08-24 01:59:42 +01:00
Diogo Cordeiro
b42af10905 [MODULES] Allow to delete third party plugins 2019-08-24 01:59:42 +01:00
Diogo Cordeiro
afe8158cb7 [MODULES] Allow to upload third party plugins
Fixed some bugs
2019-08-24 01:59:42 +01:00
Diogo Cordeiro
a05bea0af5 [MODULES] List all available plugins and allow enabling them via UI
Yet another revision of the Admin Plugin Management tool
2019-08-24 01:59:41 +01:00
Diogo Cordeiro
e1514a151c [DOCUMENTATION][DEVELOPERS][PLUGINS] Some updates to Plugins doc 2019-08-24 01:59:41 +01:00
Diogo Cordeiro
2a82cfdb2a [TagCloud] Add Readme 2019-08-24 01:59:40 +01:00
Diogo Cordeiro
49da433879 [SearchSub][README] No longer is a default plugin since 8614cd77 2019-08-24 01:59:40 +01:00
Diogo Cordeiro
92388e1734 [SamplePlugin] Review and update with the latest GNU social best practices 2019-08-24 01:59:40 +01:00
Diogo Cordeiro
3860c25dc0 [ConversationTree] Format the plugin, add strict typing and fix docblocks 2019-08-24 01:59:39 +01:00
Diogo Cordeiro
25ee5ed1f9 [OfflineBackup] Fix plugin 2019-08-24 01:59:39 +01:00
Diogo Cordeiro
566214ac62 [PLUGINS] Removed OpenX as the service doesn't exist anymore 2019-08-24 01:59:39 +01:00
Diogo Cordeiro
1459f10803 [GroupFavorited] Fix plugin 2019-08-24 01:59:38 +01:00
Diogo Cordeiro
0795a39459 [ExtendedProfile] Hide 'Extra fields' from profile when no field was created by the sysadmin 2019-08-24 01:59:38 +01:00
Diogo Cordeiro
e5831d6807 [ExtendedProfile] Allow to delete custom profile field 2019-08-24 01:59:38 +01:00
Diogo Cordeiro
88bdb5114f [Plugins] Incorporated GNUsocialExtendedProfile as part of ExtendedProfile
Also improved a lot of the plugin and made things in a way it would make sense
2019-08-24 01:59:37 +01:00
Diogo Cordeiro
90bd9088bb [GNUsocialProfileExtensions] Fixed plugin 2019-08-24 01:59:37 +01:00
Diogo Cordeiro
01cf8ab82c [PLUGINS] Removed GNUsocial{Photo, Photos, Video} as we don't need them anymore 2019-08-24 01:59:36 +01:00
Diogo Cordeiro
aee5506f00 [PLUGINS] Removed GeoURL as the service doesn't exist anymore 2019-08-24 01:59:36 +01:00
Diogo Cordeiro
b6183f2de1 [ForceGroup] Modernized plugin and improved documentation 2019-08-24 01:59:36 +01:00
Diogo Cordeiro
452e0fe553 [DEFAULT] Add 'DirectionDetector' as a default plugin 2019-08-24 01:59:35 +01:00
Diogo Cordeiro
2f341a3369 [ChooseTheme] Fixed plugin 2019-08-24 01:59:35 +01:00
Diogo Cordeiro
66e55d1a1f [BlankAd] Fixed plugin 2019-08-24 01:59:34 +01:00
Diogo Cordeiro
63fac32bc0 [Awesomeness] Fixed plugin 2019-08-24 01:59:34 +01:00
Diogo Cordeiro
aaeaeba57c [DEFAULT] Add 'AccountManager' as a default plugin 2019-08-24 01:59:34 +01:00
Diogo Cordeiro
d3c56897a3 [CORE] Core modules shouldn't show up in version action 2019-08-24 01:59:33 +01:00
Diogo Cordeiro
0c2c3ec862 [CORE] Plugin API now extends a new Module API 2019-08-24 01:59:33 +01:00
Diogo Cordeiro
b6e7b18c7b [PLUGIN API] Bug fixes and improvements 2019-08-24 01:59:32 +01:00
Diogo Cordeiro
55d049b1e8 [CORE] Move plugin superclasses from /lib/ to /lib/modules/ 2019-08-22 03:13:58 +01:00
Diogo Cordeiro
8c0601816f [CORE] Move core plugins to a new modules directory
For reference (raised by rozzin in IRC):

* http://foldoc.org/module
* http://foldoc.org/library
* http://foldoc.org/plugin

As noted by XRevan86, modules are not necessarily non-essential.
As we will keep the modules directory in GS root [therefore, near to
plugins/], it is evidenced the difference between both.

This is a simple yet fundamental structural change. It doesn't change
functionality but makes clearer the way we understand GNU social's
internals.
2019-08-22 03:13:58 +01:00
Miguel Dantas
350cde08d8 [Embed] Added support for inline images 2019-08-22 03:13:58 +01:00
tenma
db5a29fd9a [DirectMessage] Major plugin rework
This commit does the necessary rework to store private messages
as Notices and to support Federation. The plugin's README presents
some more detail about the changes and future work that is still
required to do.
2019-08-22 03:13:58 +01:00
tenma
0716605e94 [CORE][ROUTES] Update urlmapper to search dynamic routes before static ones when generating URLs.
This solves the problem of routes that differ only in having
or not $_GET params. The ones not having params (static) were
being matched first during URL generation.

The way this problem was solved was by separating the $reverse
array in both $reverse_statics and $reverse_dynamics and explicitly
traversing this last one first in the generation function. Note that
maintaining the $reverse array and unshifting dynamic routes to its
head ( and therefore to the front of the static ones ) doesn't work
since even among dynamic routes the order of arrival should be kept.
2019-08-22 03:13:58 +01:00
tenma
c802480d75 [CORE] Add new Notice scope for private messaging
Notice:
- Add MESSAGE_SCOPE scope

lib/*.stream:
- Filter out notices with MESSAGE_SCOPE scope
2019-08-21 16:54:47 +01:00
Miguel Dantas
2519431f02 [Embed] Added support for inline images 2019-08-21 16:54:46 +01:00
Miguel Dantas
b38e71e544 [Embed] Only resize thumbnail if it's bigger than the desired size 2019-08-21 16:54:46 +01:00
Diogo Cordeiro
c981afcf31 [DOCUMENTATION] Add release notes
Update INSTALL requirements
Update CHANGELOG
Update TODO
2019-08-21 16:54:09 +01:00
Diogo Cordeiro
eccb8a4faf [ActivityPub] Move models from 'classes' to 'lib/models' 2019-08-21 16:46:39 +01:00
tenma
7fa5ddfc44 [ActivityPub] Fix WebFinger event subscription
ActivityPubPlugin:
- remove reference to the first argument of onEndWebFingerProfileLinks, no need
as it is an object
2019-08-21 16:46:39 +01:00
tenma
054f4e77f5 [ActivityPub] Fix handling of Delete Activity
inbox_handler:
- Call stronger validation method for Delete Activity objects
- Take into account mixed object in handle_delete

Activitypub_delete:
- Add validation method for Delete Activity objects
2019-08-21 16:46:39 +01:00
Diogo Cordeiro
1398d6cc21 [ActivityPub] This is the first release of the plugin 2019-08-21 16:46:38 +01:00
tenma
b902b019fb [ActivityPub] Use queues for notice distribution
ActivityPubPlugin:
- Change event-based notice distribution to queues logic

ActivityPub/lib:
- Add queue handler class activitypubqueuehandler.php

Misc:
- Add documentation for the (Start/End)InitializeQueueManager events
2019-08-21 16:46:38 +01:00
tenma
5e589aba3c [OStatus] Fix notice enqueue
OStatusPlugin:
- Enqueue in the last position, as it should be. No need to worry about
the OMB comment, this protocol no longer have queue handlers that could
cause a conflict.
2019-08-21 16:46:38 +01:00
tenma
c28cee88b7 [ActivityPub] Ensuring federation with other software
ActivityPubPlugin:
- Prevent sending a Delete for an Announce

Activitypub_announce:
- Update announce_to_array to add id, to and cc information to the retrieved object

Activitypub_follow:
- Add id to the arguments of follow_to_array, useful for Accept-Follow activities

Activitypub_notice:
- Fix notice validation, url isn't a MUST

Activitypub_inbox_handler:
- Make handle_follow use the received activity id for the later Accept-Follow

Activitypub_postman:
- Fix call to the updated announce_to_array
- Fix successive unnecessary calls to ActivityPubPlugin::actor_uri()
2019-08-21 16:46:37 +01:00
brunoccast
14a45dc546 [ActivityPub] Fix notice creation
Activitypub_notice:
- Perform url test, use id when missing.
2019-08-21 16:46:37 +01:00
brunoccast
883621ba34 [ActivityPub] Routes
ActivityPubPlugin:
- Update routes to properly use the updated URLMapper
2019-08-21 16:46:37 +01:00
brunoccast
067cc81ebb [ActivityPub] Ensuring notice deletion
ActivityPubPlugin:
- Minor onDeleteOwnNotice rewrite

Activitypub_inbox_handler:
- Add deletion check to incoming notice

Activitypub_postman:
- Call the correct getUrl function
2019-08-21 16:46:37 +01:00
brunoccast
b19ee7b894 [ActivityPub] Ensuring Notice Favor/Disfavor
ActivityPubPlugin:
- Minor re-write of favor/disfavor event handlers

Activitypub_postman:
like/undo-like:
- fix proper getUrl() call
misc:
- make all activities accumulate errors (may be needed later) and log some information about it
2019-08-21 16:46:36 +01:00
brunoccast
1b356d3bf2 [ActivityPub] Ensuring notice distribution
ActivityPubPlugin:
- Fix of accepted activity verbs to include SHARES
- Add attention profiles to delivery when announcing

Activitypub_notice:
- New local function to retrieve original URL
- Removal of unnecessary 'Atom*' attributes
- Small fix to the ensuring of actor profile

Activitypub_profile:
- New local function to fetch AP profiles from a collection

Activitypub_postman:
- Fix url passed in the announce activity
2019-08-21 16:46:36 +01:00
brunoccast
94a4059b4a [ActivityPub] Caching of Following/Followers interactions and collections
Follow interaction:
- Fixed mini-bug where the subscriber profile was being used as the subscribed
- Updated cache subscription-related values in both instances
- Tested and working with local GS instances

Unfollow interaction:
- Updated cache subscription-related values in both instances
- Tested and working with local GS instances

Followers/Following collections:
- Now returning ActivityPub profiles only
- Stored collections in cache

Misc:
- Fix bug concerning the retrieval of public/private-key after in-function generation
2019-08-21 16:46:36 +01:00
brunoccast
735a0023cc [ActivityPub] Routes
ActivityPubPlugin:
- Update routes to properly use URLMapper
- Minor updates
2019-08-21 16:46:36 +01:00
Diogo Cordeiro
2ad4fa99ed [CORE] Add ActivityPub plugin
This is not the same as the one in https://notabug.org/diogo/gnu-social-activitypub-plugin
Differences to the first "release"
-> Doesn't use guzzle nor has any composer dependencies
-> Supports HTTP Signatures
-> Has basic l10n/i18n
-> Some minor bug fixes
2019-08-21 16:46:35 +01:00
Miguel Dantas
c0950c5fc6 [PLUGINS] Dropped Memcache in favor of Memcached. The difference between these is that they use a similarly php library to interact with memcache, but memcached is more modern 2019-08-15 22:33:38 +01:00
Miguel Dantas
afbbbbd4f2 [Memcached] Merged useful features from Memcache 2019-08-15 22:33:37 +01:00
Miguel Dantas
32812c9482 [PLUGINS] Updated and reviewed the Memcached plugin 2019-08-15 22:33:37 +01:00
Miguel Dantas
c70e806d74 [RedisCache] Added README with configuration instructions 2019-08-15 22:33:36 +01:00
Miguel Dantas
05be2e7386 [RedisCache] Fix use of undefined variable 2019-08-14 15:32:36 +01:00
Miguel Dantas
e2e8885ce3 [PLUGINS] Removed direct call of EndCache events on all plugins, as it is now handled by the library 2019-08-14 15:32:35 +01:00
Miguel Dantas
b214d8b6ee [CACHING] Imported Chimo's RedisCache plugin and fixed some small parts 2019-08-14 15:32:35 +01:00
Miguel Dantas
ba98bb9334 [CORE] Fixed small anti-pattern on cache code. Plugins had to throw EndCache events, when this should be done by the library 2019-08-14 15:32:35 +01:00
Miguel Dantas
630a578e1d [COMPOSER] Added predis/predis and updated packages 2019-08-14 15:32:34 +01:00
8727 changed files with 1050850 additions and 12925 deletions

View File

@@ -3,22 +3,20 @@ Credits for GNU social
The following is an incomplete list of developers The following is an incomplete list of developers
who've worked on GNU social, or its predecessors who've worked on GNU social, or its predecessors
StatusNet and Free Social. Apologies for any StatusNet and Free Social. Apologies for any
oversight; please let mail@diogo.site know if oversight; please let mattl@gnu.org know if
anyone's been overlooked in error. anyone's been overlooked in error.
V2 team Current team
------- ------------
* Diogo Cordeiro
* Alexei Sorokin
* Bruno Casteleiro
Credits for GNU social v1
------------------------
Leads
* Mikael Nordfeldth
* Matt Lee * Matt Lee
* Mikael Nordfeldth
* Diogo Cordeiro
* Bruno Casteleiro
* Miguel Dantas
* Alexei Sorokin
Additional Contributors Additional Contributors
-----------------------
* Ciaran Gultnieks * Ciaran Gultnieks
* Michael Landers * Michael Landers
* Ori Avtalion * Ori Avtalion
@@ -48,7 +46,7 @@ Additional Contributors
* Blaine Cook * Blaine Cook
* Henry Story * Henry Story
* Melvin Carvalho * Melvin Carvalho
* Stéphane Bérubé (chimo) * Stéphane Bérubé
* Akio * Akio
* Maiyannah Bishop * Maiyannah Bishop
* Bob Mottram * Bob Mottram
@@ -57,9 +55,7 @@ Additional Contributors
* Moonman * Moonman
* Normandy * Normandy
* Verius * Verius
* Diogo Peralta Cordeiro
* Daniel Supernault * Daniel Supernault
* Miguel Dantas
Credits for StatusNet Credits for StatusNet
-------------- --------------

View File

@@ -42,7 +42,7 @@ yourself, as these are for the development team to assign priority and area of
coverage to a subject. Please only submit something here if you are certain it coverage to a subject. Please only submit something here if you are certain it
is a bug or represents a feature enhancement that we do not presently have. If is a bug or represents a feature enhancement that we do not presently have. If
you are uncertain whether it's a bug, please feel free to ask you are uncertain whether it's a bug, please feel free to ask
at #social IRC channel at irc.libera.chat https://libera.chat/. at #social IRC channel on freenode.net https://www.freenode.net/.
When reporting a bug, please try to include as much information as possible, When reporting a bug, please try to include as much information as possible,
including the environment being run on (if it's a common LAMP stack just give including the environment being run on (if it's a common LAMP stack just give

View File

@@ -1,5 +1,5 @@
# GNU social 2.0.x # GNU social 2.0.x
(c) 2010-2021 Free Software Foundation, Inc (c) 2010-2019 Free Software Foundation, Inc
This is the README file for GNU social, the free This is the README file for GNU social, the free
software social networking platform. It includes software social networking platform. It includes
@@ -36,7 +36,7 @@ XMPP), and specially-designed desktop clients that
support the Twitter API. support the Twitter API.
GNU social supports open standards (such as OStatus GNU social supports open standards (such as OStatus
<https://www.w3.org/community/ostatus/> and ActivityPub <https://activitypub.rocks/>) that lets users in <https://www.w3.org/community/ostatus/>) that lets users in
different networks follow each other. It enables a different networks follow each other. It enables a
distributed social network spread all across the distributed social network spread all across the
Web. Web.
@@ -102,20 +102,46 @@ unless you configured a separate logfile. This is
probably the first place to look if you're getting probably the first place to look if you're getting
weird behaviour from GNU social. weird behaviour from GNU social.
Do __not__ forget to run `/scripts/upgrade.php` if you're upgrading to this release. If you're tracking the unstable version of
GNU social in the git repository (see below), and you
get a compilation error ("unexpected T_STRING") in
the browser, check to see that you don't have any
conflicts in your code.
### Unstable version
If you're adventurous or impatient, you may want
to install the development version of GNU social.
To get it, use the git version control tool
<http://git-scm.com/> like so:
git clone https://notabug.org/diogo/gnu-social.git
In the current phase of development it is probably
recommended to use git as a means to stay up to date
with the source code. You can choose between these
branches:
* 1.20.x "oldstable", few updates, well tested coded ( **recommended** )
* master "stable", usually working well (should be safe)
* nightly "testing", most updates, not always working as expected (can be dangerous)
**IMPORTANT: We force push to the nightly branch, the nightly branch is intended for GNU social developers only.**
To keep it up-to-date, use `git pull`. Watch for conflicts!
As in any upgrade, do __not__ forget to run `/scripts/upgrade.php`.
## Further information ## Further information
There are several ways to get more information about GNU social. There are several ways to get more information about GNU social.
* The #social IRC channel at irc.libera.chat <https://libera.chat/>. * The #social IRC channel on freenode.net <https://www.freenode.net/>.
* The #social:libera.chat Matrix room * The unofficial XMPP room linked to IRC on <xmpp:gnusocial@conference.bka.li>
* The bridged XMPP room at <xmpp:gnusocial@conference.bka.li?join> * The GNU social website <https://gnu.io/social/>
* The GNU social website <https://gnusocial.rocks/>
* GNU social has a bug tracker for any defects you may find, or ideas for * GNU social has a bug tracker for any defects you may find, or ideas for
making things better. <https://notabug.org/diogo/gnu-social/issues> making things better. <https://notabug.org/diogo/gnu-social/issues>
* Patches are welcome, preferably to our repository on notabug.org. <https://notabug.org/diogo/gnu-social> * Patches are welcome, preferrably to our repository on notabug.org. <https://notabug.org/diogo/gnu-social>
## Credits ## Credits
@@ -123,9 +149,11 @@ An incomplete list of developers who've worked on GNU social,
or its predecessors StatusNet and Free Social has been made available or its predecessors StatusNet and Free Social has been made available
in `CREDITS.md`. in `CREDITS.md`.
### Release development team ### Current team
* Matt Lee
* Mikael Nordfeldth
* Diogo Cordeiro * Diogo Cordeiro
* Bruno Casteleiro
* Miguel Dantas
* Alexei Sorokin * Alexei Sorokin
* Many important contributions from GNU social Summer of Code students such as Bruno Casteleiro and Hugo Sales.

View File

@@ -7,7 +7,7 @@ proceeded by the killing of the other Persian messengers.
## For users/sysadmins ## For users/sysadmins
### Web server changes ### Web server changes
- GS is now structurally divided in includes and public - GS is now structurely divided in includes and public
- New media handling system, new important settings, refer to CONFIGURE doc and web server conf - New media handling system, new important settings, refer to CONFIGURE doc and web server conf
- `$config['site']['x-static-delivery']` - `$config['site']['x-static-delivery']`
- You must also review the [attachments section of CONFIGURE](https://notabug.org/diogo/gnu-social/src/new_modules_system/DOCUMENTATION/SYSTEM_ADMINISTRATORS/CONFIGURE.md#attachments). - You must also review the [attachments section of CONFIGURE](https://notabug.org/diogo/gnu-social/src/new_modules_system/DOCUMENTATION/SYSTEM_ADMINISTRATORS/CONFIGURE.md#attachments).
@@ -21,9 +21,12 @@ proceeded by the killing of the other Persian messengers.
### Federation ### Federation
- Added ActivityPub support - Added ActivityPub support
- Enabled the search box to import remote notices and profiles - Enabled the search box to import remote notices and profiles
- Direct messages are now via ActivityPub only - Direct messages
### Load and Storage ### Load and Storage
- Improved Cronish
- Run session garbage collection
- Cleanup Email Registration
- New queues system - New queues system
- Support for Redis was added - Support for Redis was added
- Support for PostgreSQL was added - Support for PostgreSQL was added

28
TODO.md
View File

@@ -4,30 +4,12 @@ Hi! Thank you for your interest in contributing, please refer to
[DOCUMENTATION/DEVELOPERS](https://notabug.org/diogo/gnu-social/src/nightly/DOCUMENTATION/DEVELOPERS) [DOCUMENTATION/DEVELOPERS](https://notabug.org/diogo/gnu-social/src/nightly/DOCUMENTATION/DEVELOPERS)
to learn how you can contribute. to learn how you can contribute.
## Pending Our roadmap is available in the following Kanban board:
[Kanban Board](https://kanban.diogo.site/?controller=BoardViewController&action=readonly&token=03795efb8138c4e7661a900c234c0df1bc3fc03cdfcda8619cd5d0e666de).
### [Core]
- Improve Cronish
- Run session garbage collection
- Cleanup Email Registration
- [Security] Review confirmation codes
```
<includeals> my guess is that the author intent was that the admin wouldn't have to verify his account, but has misread the User::register docblock
<xmpp-gnu> [XRevan86] https://notabug.org/diogo/gnu-social/src/nightly/plugins/EmailRegistration/EmailRegistrationPlugin.php#L114
<xmpp-gnu> [XRevan86] https://notabug.org/diogo/gnu-social/src/nightly/classes/Confirm_address.php#L52-L68
<xmpp-gnu> [XRevan86] Here's why 13 symbols
<xmpp-gnu> [XRevan86] https://notabug.org/diogo/gnu-social/src/nightly/classes/User.php#L343-L349 I wonder why parts of the code reinvent the wheel.
<xmpp-gnu> [XRevan86] $result = Confirm_address::saveNew($user->id, $email, 'email');
<xmpp-gnu> [XRevan86] I think it can be replaced with that.
<xmpp-gnu> [XRevan86] https://notabug.org/diogo/gnu-social/src/nightly/actions/emailsettings.php#L357-L364
<xmpp-gnu> [XRevan86] https://notabug.org/diogo/gnu-social/src/nightly/actions/imsettings.php#L316-L325
<xmpp-gnu> [XRevan86] The last one is a bit different, as it's not email. But I think it still applies.
<xmpp-gnu> [XRevan86] diogo: Maybe saveNew can be extended to accept variable bitsize (or better charsize).
<xmpp-gnu> [XRevan86] https://notabug.org/diogo/gnu-social/src/nightly/actions/smssettings.php#L320-L328 then this also can be altered
<xmpp-gnu> [XRevan86] but with keeping the original 40 bitsize
```
- [Database] Move from Pear DB to [PDO_DataObject](https://github.com/roojs/PDO_DataObject)
There are more pending tasks/ideas to implement in this There are more pending tasks/ideas to implement in this
[repo's issues](https://notabug.org/diogo/gnu-social/issues). [repo's issues](https://notabug.org/diogo/gnu-social/issues).
So consider the issue tracker to be the full backlog, in the kanban board it's just what the
[development team](https://notabug.org/diogo/gnu-social/src/nightly/CREDITS.md)
is working on.

View File

@@ -166,7 +166,6 @@ class ApiStatusesUpdateAction extends ApiAuthAction
parent::prepare($args); parent::prepare($args);
$this->status = $this->trimmed('status'); $this->status = $this->trimmed('status');
$this->source = $this->trimmed('source');
$this->lat = $this->trimmed('lat'); $this->lat = $this->trimmed('lat');
$this->lon = $this->trimmed('long'); $this->lon = $this->trimmed('long');
$matches = array(); $matches = array();
@@ -295,7 +294,6 @@ class ApiStatusesUpdateAction extends ApiAuthAction
$content = html_entity_decode($status_shortened, ENT_NOQUOTES, 'UTF-8'); $content = html_entity_decode($status_shortened, ENT_NOQUOTES, 'UTF-8');
$source = html_entity_decode($this->source, ENT_NOQUOTES, 'UTF-8');
$options = array('reply_to' => $reply_to); $options = array('reply_to' => $reply_to);

1313
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -8,8 +8,8 @@ people for %%site.name%%.
Bugs Bugs
---- ----
If you think you've found a bug in the underlying [GNU social](https://gnusocial.rocks/) software, If you think you've found a bug in the underlying [GNU social](https://gnu.io/social/) software,
or if there's a new feature you'd like to see, add it into the [GNU social task list](https://notabug.org/diogo/gnu-social/issues). or if there's a new feature you'd like to see, add it into the [GNU social task list](https://git.gnu.io/gnu/gnu-social/issues).
Don't forget to check the list of existing bugs to make sure it hasn't already been reported! Don't forget to check the list of existing bugs to make sure it hasn't already been reported!
Email Email

View File

@@ -326,10 +326,7 @@ class MediaFile
$original_name = preg_replace('/\.+.+$/i', ".{$ext}", $original_name); $original_name = preg_replace('/\.+.+$/i', ".{$ext}", $original_name);
} }
// Avoid unnecessarily large file names $enc_name = bin2hex($original_name);
$pretty_name = substr(trim($original_name), 0, 30); // 30 seems like a sensible limit for a file name
$enc_name = bin2hex($pretty_name);
return "{$enc_name}-{$filehash}"; return "{$enc_name}-{$filehash}";
} }

View File

@@ -31,11 +31,11 @@
defined('GNUSOCIAL') || die(); defined('GNUSOCIAL') || die();
define('GNUSOCIAL_ENGINE', 'GNU social'); define('GNUSOCIAL_ENGINE', 'GNU social');
define('GNUSOCIAL_ENGINE_URL', 'https://gnusocial.rocks/'); define('GNUSOCIAL_ENGINE_URL', 'https://gnusocial.network/'); // Change to https://gnu.io/social/
define('GNUSOCIAL_ENGINE_REPO_URL', 'https://notabug.org/diogo/gnu-social/'); // Change to https://git.gnu.io/gnu/gnu-social define('GNUSOCIAL_ENGINE_REPO_URL', 'https://notabug.org/diogo/gnu-social/'); // Change to https://git.gnu.io/gnu/gnu-social
define('GNUSOCIAL_BASE_VERSION', '2.0.0'); define('GNUSOCIAL_BASE_VERSION', '2.0.0');
define('GNUSOCIAL_LIFECYCLE', 'beta0'); // 'dev', 'alpha[0-9]+', 'beta[0-9]+', 'rc[0-9]+', 'release' define('GNUSOCIAL_LIFECYCLE', 'alpha0'); // 'dev', 'alpha[0-9]+', 'beta[0-9]+', 'rc[0-9]+', 'release'
define('GNUSOCIAL_VERSION', GNUSOCIAL_BASE_VERSION . '-' . GNUSOCIAL_LIFECYCLE); define('GNUSOCIAL_VERSION', GNUSOCIAL_BASE_VERSION . '-' . GNUSOCIAL_LIFECYCLE);
@@ -89,16 +89,15 @@ set_include_path(get_include_path() . PATH_SEPARATOR . INSTALLDIR . '/extlib/');
// global configuration object // global configuration object
// This is awful but system's PEAR always gives us issues, we've patched it require_once 'PEAR.php';
require_once INSTALLDIR . '/extlib/' . 'PEAR.php'; require_once 'PEAR/Exception.php';
require_once INSTALLDIR . '/extlib/' . 'PEAR/Exception.php';
global $_PEAR; global $_PEAR;
$_PEAR = new PEAR; $_PEAR = new PEAR;
$_PEAR->setErrorHandling(PEAR_ERROR_CALLBACK, 'PEAR_ErrorToPEAR_Exception'); $_PEAR->setErrorHandling(PEAR_ERROR_CALLBACK, 'PEAR_ErrorToPEAR_Exception');
require_once INSTALLDIR . '/extlib/' . 'MDB2.php'; require_once 'MDB2.php';
require_once INSTALLDIR . '/extlib/' . 'DB/DataObject.php'; require_once 'DB/DataObject.php';
require_once INSTALLDIR . '/extlib/' . 'DB/DataObject/Cast.php'; // for dates require_once 'DB/DataObject/Cast.php'; // for dates
require_once INSTALLDIR . '/lib/util/language.php'; require_once INSTALLDIR . '/lib/util/language.php';

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -42,7 +42,7 @@ const ACTIVITYPUB_PUBLIC_TO = ['https://www.w3.org/ns/activitystreams#Public',
]; ];
const ACTIVITYPUB_HTTP_CLIENT_HEADERS = [ const ACTIVITYPUB_HTTP_CLIENT_HEADERS = [
'Accept: application/ld+json; profile="https://www.w3.org/ns/activitystreams"', 'Accept: application/ld+json; profile="https://www.w3.org/ns/activitystreams"',
'User-Agent: GNUsocialBot ' . GNUSOCIAL_VERSION . ' - https://gnusocial.rocks' 'User-Agent: GNUsocialBot ' . GNUSOCIAL_VERSION . ' - https://gnusocial.network'
]; ];
/** /**

View File

@@ -265,6 +265,7 @@ class Activitypub_notice
} }
} }
$file->saveFile(); $file->saveFile();
$act->enclosures[] = $file->getEnclosure();
$attachments[] = $file; $attachments[] = $file;
} catch (Exception $e) { } catch (Exception $e) {
// Whatever. // Whatever.
@@ -276,7 +277,7 @@ class Activitypub_notice
$actobj = new ActivityObject(); $actobj = new ActivityObject();
$actobj->type = ActivityObject::NOTE; $actobj->type = ActivityObject::NOTE;
$actobj->content = strip_tags($content, '<p><b><i><u><a><ul><ol><li><br>'); $actobj->content = strip_tags($content, '<p><b><i><u><a><ul><ol><li>');
// Finally add the activity object to our activity // Finally add the activity object to our activity
$act->objects[] = $actobj; $act->objects[] = $actobj;

View File

@@ -87,7 +87,7 @@ class Activitypub_postman
* @param string $method request method * @param string $method request method
* @return GNUsocial_HTTPResponse * @return GNUsocial_HTTPResponse
* @throws HTTP_Request2_Exception * @throws HTTP_Request2_Exception
* @throws HTTP_Request2_LogicException * @throws Exception
* @author Diogo Cordeiro <diogo@fc.up.pt> * @author Diogo Cordeiro <diogo@fc.up.pt>
*/ */
public function send($data, $inbox, $method = 'POST') public function send($data, $inbox, $method = 'POST')
@@ -224,8 +224,8 @@ class Activitypub_postman
$data = json_encode($data, JSON_UNESCAPED_SLASHES); $data = json_encode($data, JSON_UNESCAPED_SLASHES);
foreach ($this->to_inbox() as $inbox) { foreach ($this->to_inbox() as $inbox) {
try {
$res = $this->send($data, $inbox); $res = $this->send($data, $inbox);
// accumulate errors for later use, if needed // accumulate errors for later use, if needed
if (!($res->getStatus() == 200 || $res->getStatus() == 202 || $res->getStatus() == 409)) { if (!($res->getStatus() == 200 || $res->getStatus() == 202 || $res->getStatus() == 409)) {
$res_body = json_decode($res->getBody(), true); $res_body = json_decode($res->getBody(), true);
@@ -233,9 +233,6 @@ class Activitypub_postman
$res_body['error'] : "An unknown error occurred."; $res_body['error'] : "An unknown error occurred.";
$to_failed[$inbox] = $notice; $to_failed[$inbox] = $notice;
} }
} catch (Exception $e){
$to_failed[$inbox] = $notice;
}
} }
if (!empty($errors)) { if (!empty($errors)) {
@@ -263,7 +260,6 @@ class Activitypub_postman
$data = json_encode($data, JSON_UNESCAPED_SLASHES); $data = json_encode($data, JSON_UNESCAPED_SLASHES);
foreach ($this->to_inbox() as $inbox) { foreach ($this->to_inbox() as $inbox) {
try {
$res = $this->send($data, $inbox); $res = $this->send($data, $inbox);
// accummulate errors for later use, if needed // accummulate errors for later use, if needed
@@ -273,9 +269,6 @@ class Activitypub_postman
$res_body['error'] : "An unknown error occurred."; $res_body['error'] : "An unknown error occurred.";
$to_failed[$inbox] = $notice; $to_failed[$inbox] = $notice;
} }
} catch (Exception $e) {
$to_failed[$inbox] = $notice;
}
} }
if (!empty($errors)) { if (!empty($errors)) {
@@ -303,7 +296,6 @@ class Activitypub_postman
$data = json_encode($data, JSON_UNESCAPED_SLASHES); $data = json_encode($data, JSON_UNESCAPED_SLASHES);
foreach ($this->to_inbox() as $inbox) { foreach ($this->to_inbox() as $inbox) {
try {
$res = $this->send($data, $inbox); $res = $this->send($data, $inbox);
// accummulate errors for later use, if needed // accummulate errors for later use, if needed
@@ -313,9 +305,6 @@ class Activitypub_postman
$res_body['error'] : "An unknown error occurred."; $res_body['error'] : "An unknown error occurred.";
$to_failed[$inbox] = $notice; $to_failed[$inbox] = $notice;
} }
} catch (Exception $e) {
$to_failed[$inbox] = $notice;
}
} }
if (!empty($errors)) { if (!empty($errors)) {
@@ -372,7 +361,6 @@ class Activitypub_postman
); );
foreach ($this->to_inbox() as $inbox) { foreach ($this->to_inbox() as $inbox) {
try {
$res = $this->send($data, $inbox); $res = $this->send($data, $inbox);
// accummulate errors for later use, if needed // accummulate errors for later use, if needed
@@ -382,9 +370,6 @@ class Activitypub_postman
$res_body['error'] : "An unknown error occurred."; $res_body['error'] : "An unknown error occurred.";
$to_failed[$inbox] = $notice; $to_failed[$inbox] = $notice;
} }
} catch (Exception $e) {
$to_failed[$inbox] = $notice;
}
} }
if (!empty($errors)) { if (!empty($errors)) {
@@ -407,7 +392,6 @@ class Activitypub_postman
$errors = []; $errors = [];
$data = json_encode($data, JSON_UNESCAPED_SLASHES); $data = json_encode($data, JSON_UNESCAPED_SLASHES);
foreach ($this->to_inbox() as $inbox) { foreach ($this->to_inbox() as $inbox) {
try {
$res = $this->send($data, $inbox); $res = $this->send($data, $inbox);
if (!($res->getStatus() == 200 || $res->getStatus() == 202 || $res->getStatus() == 409)) { if (!($res->getStatus() == 200 || $res->getStatus() == 202 || $res->getStatus() == 409)) {
$res_body = json_decode($res->getBody(), true); $res_body = json_decode($res->getBody(), true);
@@ -415,9 +399,6 @@ class Activitypub_postman
$res_body['error'] : "An unknown error occurred."; $res_body['error'] : "An unknown error occurred.";
$to_failed[$inbox] = $notice; $to_failed[$inbox] = $notice;
} }
} catch (Exception $e) {
$to_failed[$inbox] = $notice;
}
} }
if (!empty($errors)) { if (!empty($errors)) {
throw new Exception(json_encode($errors)); throw new Exception(json_encode($errors));
@@ -438,7 +419,6 @@ class Activitypub_postman
$errors = []; $errors = [];
foreach ($this->to_inbox() as $inbox) { foreach ($this->to_inbox() as $inbox) {
try {
$res = $this->send($data, $inbox); $res = $this->send($data, $inbox);
// accumulate errors for later use, if needed // accumulate errors for later use, if needed
@@ -447,9 +427,6 @@ class Activitypub_postman
$errors[] = isset($res_body['error']) ? $errors[] = isset($res_body['error']) ?
$res_body['error'] : "An unknown error occurred."; $res_body['error'] : "An unknown error occurred.";
} }
} catch (Exception $e) {
$to_failed[$inbox] = $notice;
}
} }
if (!empty($errors)) { if (!empty($errors)) {

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,63 +18,34 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#. TRANS: Exception. #. TRANS: Exception.
#: classes/Activitypub_profile.php:391 #: classes/Activitypub_profile.php:393
msgid "Not a valid WebFinger address (via cache)." msgid "Not a valid WebFinger address (via cache)."
msgstr "" msgstr ""
#. TRANS: Exception. #. TRANS: Exception.
#: classes/Activitypub_profile.php:412 #: classes/Activitypub_profile.php:414
msgid "Not a valid WebFinger address." msgid "Not a valid WebFinger address."
msgstr "" msgstr ""
#. TRANS: Exception. %s is a WebFinger address. #. TRANS: Exception. %s is a WebFinger address.
#: classes/Activitypub_profile.php:452 #: classes/Activitypub_profile.php:454
#, php-format #, php-format
msgid "Could not find a valid profile for \"%s\"." msgid "Could not find a valid profile for \"%s\"."
msgstr "" msgstr ""
#. TRANS: Client error displayed when trying to mark a notice as favorite that already is a favorite.
#: lib/models/Activitypub_like.php:75
msgid "You have already favorited this!"
msgstr ""
#: lib/models/Activitypub_like.php:83
msgid "Favor"
msgstr ""
#: lib/models/Activitypub_like.php:87
#, php-format
msgid "%1$s favorited something by %2$s: %3$s"
msgstr ""
#. TRANS: Client exception thrown when trying a view a notice the user has no access to.
#: actions/apnotice.php:88
msgid "Access restricted."
msgstr ""
#. TRANS: Server error displayed trying to show a notice without a connected profile.
#: actions/apnotice.php:95
msgid "Notice has no profile."
msgstr ""
#. TRANS: Client error displayed trying to show a deleted notice.
#: actions/apnotice.php:176
msgid "Notice deleted."
msgstr ""
#. TRANS: Plugin description. #. TRANS: Plugin description.
#: ActivityPubPlugin.php:255 #: ActivityPubPlugin.php:241
msgid "" msgid ""
"Follow people across social networks that implement <a href=\"https://" "Follow people across social networks that implement <a href=\"https://"
"activitypub.rocks/\">ActivityPub</a>." "activitypub.rocks/\">ActivityPub</a>."
msgstr "" msgstr ""
#: ActivityPubPlugin.php:431 #: ActivityPubPlugin.php:415
msgid "Remote Profile" msgid "Remote Profile"
msgstr "" msgstr ""
#. TRANS: Title. %s is a domain name. #. TRANS: Title. %s is a domain name.
#: ActivityPubPlugin.php:998 #: ActivityPubPlugin.php:920
#, php-format #, php-format
msgid "Sent from %s via ActivityPub" msgid "Sent from %s via ActivityPub"
msgstr "" msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -59,16 +59,16 @@ msgid "Add to favorites"
msgstr "" msgstr ""
#. TRANS: Label for tally for number of times a notice was favored. #. TRANS: Label for tally for number of times a notice was favored.
#: AnonymousFavePlugin.php:157 #: AnonymousFavePlugin.php:165
msgid "Favored" msgid "Favored"
msgstr "" msgstr ""
#. TRANS: Server exception. #. TRANS: Server exception.
#: AnonymousFavePlugin.php:206 AnonymousFavePlugin.php:217 #: AnonymousFavePlugin.php:198 AnonymousFavePlugin.php:209
msgid "Could not create anonymous user session." msgid "Could not create anonymous user session."
msgstr "" msgstr ""
#. TRANS: Plugin description. #. TRANS: Plugin description.
#: AnonymousFavePlugin.php:291 #: AnonymousFavePlugin.php:284
msgid "Allow anonymous users to favorite notices." msgid "Allow anonymous users to favorite notices."
msgstr "" msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,6 +17,48 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n" "Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#. TRANS: Field label in blacklist plugin administration panel.
#: forms/blacklistadminpanel.php:60
msgid "Nicknames"
msgstr ""
#. TRANS: Field title in blacklist plugin administration panel.
#: forms/blacklistadminpanel.php:63
msgid "Patterns of nicknames to block, one per line."
msgstr ""
#. TRANS: Field label in blacklist plugin administration panel.
#: forms/blacklistadminpanel.php:70
msgid "URLs"
msgstr ""
#. TRANS: Field title in blacklist plugin administration panel.
#: forms/blacklistadminpanel.php:73
msgid "Patterns of URLs to block, one per line."
msgstr ""
#. TRANS: Button text in blacklist plugin administration panel to save settings.
#: forms/blacklistadminpanel.php:88
msgctxt "BUTTON"
msgid "Save"
msgstr ""
#. TRANS: Button title in blacklist plugin administration panel to save settings.
#: forms/blacklistadminpanel.php:92
msgid "Save site settings."
msgstr ""
#. TRANS: Title of blacklist plugin administration panel.
#: actions/blacklistadminpanel.php:51
msgctxt "TITLE"
msgid "Blacklist"
msgstr ""
#. TRANS: Instructions for blacklist plugin administration panel.
#: actions/blacklistadminpanel.php:62
msgid "Blacklisted URLs and nicknames"
msgstr ""
#. TRANS: Exception thrown if the Blacklist plugin configuration is incorrect. #. TRANS: Exception thrown if the Blacklist plugin configuration is incorrect.
#. TRANS: %1$s is a configuration section, %2$s is a configuration setting. #. TRANS: %1$s is a configuration section, %2$s is a configuration setting.
#: BlacklistPlugin.php:110 #: BlacklistPlugin.php:110
@@ -87,45 +129,3 @@ msgstr ""
#, php-format #, php-format
msgid "Cannot subscribe to nickname \"%s\"." msgid "Cannot subscribe to nickname \"%s\"."
msgstr "" msgstr ""
#. TRANS: Title of blacklist plugin administration panel.
#: actions/blacklistadminpanel.php:51
msgctxt "TITLE"
msgid "Blacklist"
msgstr ""
#. TRANS: Instructions for blacklist plugin administration panel.
#: actions/blacklistadminpanel.php:62
msgid "Blacklisted URLs and nicknames"
msgstr ""
#. TRANS: Field label in blacklist plugin administration panel.
#: forms/blacklistadminpanel.php:60
msgid "Nicknames"
msgstr ""
#. TRANS: Field title in blacklist plugin administration panel.
#: forms/blacklistadminpanel.php:63
msgid "Patterns of nicknames to block, one per line."
msgstr ""
#. TRANS: Field label in blacklist plugin administration panel.
#: forms/blacklistadminpanel.php:70
msgid "URLs"
msgstr ""
#. TRANS: Field title in blacklist plugin administration panel.
#: forms/blacklistadminpanel.php:73
msgid "Patterns of URLs to block, one per line."
msgstr ""
#. TRANS: Button text in blacklist plugin administration panel to save settings.
#: forms/blacklistadminpanel.php:88
msgctxt "BUTTON"
msgid "Save"
msgstr ""
#. TRANS: Button title in blacklist plugin administration panel to save settings.
#: forms/blacklistadminpanel.php:92
msgid "Save site settings."
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,33 +18,36 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#. TRANS: Client exception thrown when a bookmark is formatted incorrectly. #. TRANS: Client exception thrown when a bookmark is formatted incorrectly.
#: classes/Bookmark.php:170 #: classes/Bookmark.php:172
msgid "Expected exactly 1 link rel=related in a Bookmark, got more than that." msgid "Expected exactly 1 link rel=related in a Bookmark, got more than that."
msgstr "" msgstr ""
#. TRANS: Client exception thrown when a bookmark is formatted incorrectly. #. TRANS: Client exception thrown when a bookmark is formatted incorrectly.
#: classes/Bookmark.php:175 #: classes/Bookmark.php:177
msgid "Expected exactly 1 link rel=related in a Bookmark, got 0." msgid "Expected exactly 1 link rel=related in a Bookmark, got 0."
msgstr "" msgstr ""
#: classes/Bookmark.php:179 #: classes/Bookmark.php:181
msgid "You must provide a non-empty title." msgid "You must provide a non-empty title."
msgstr "" msgstr ""
#: classes/Bookmark.php:182 #: classes/Bookmark.php:184
msgid "Only web bookmarks can be posted (HTTP or HTTPS)." msgid "Only web bookmarks can be posted (HTTP or HTTPS)."
msgstr "" msgstr ""
#: classes/Bookmark.php:187 #: classes/Bookmark.php:189
msgid "You have already bookmarked this URL." msgid "You have already bookmarked this URL."
msgstr "" msgstr ""
#. TRANS: Server exception thrown when a bookmark has multiple attachments. #. TRANS: Server exception thrown when a bookmark has multiple attachments.
#: classes/Bookmark.php:228 #: classes/Bookmark.php:230
msgid "Bookmark notice with the wrong number of attachments." msgid "Bookmark notice with the wrong number of attachments."
msgstr "" msgstr ""
#: classes/Bookmark.php:344 #. TRANS: Rendered bookmark content.
#. TRANS: %1$s is a URL, %2$s the bookmark title, %3$s is the bookmark description,
#. TRANS: %4$s is space separated list of hash tags.
#: classes/Bookmark.php:339
#, php-format #, php-format
msgid "" msgid ""
"<span class=\"xfolkentry\"><a class=\"taggedlink\" href=\"%1$s\">%2$s</a> " "<span class=\"xfolkentry\"><a class=\"taggedlink\" href=\"%1$s\">%2$s</a> "
@@ -52,6 +55,47 @@ msgid ""
"span>" "span>"
msgstr "" msgstr ""
#. TRANS: Field label on form for adding a new bookmark.
#: forms/initialbookmark.php:78 forms/bookmark.php:121
msgctxt "LABEL"
msgid "URL"
msgstr ""
#. TRANS: Button text for action to save a new bookmark.
#: forms/initialbookmark.php:92
msgctxt "BUTTON"
msgid "Add"
msgstr ""
#. TRANS: Field label on form for adding a new bookmark.
#: forms/bookmark.php:143
msgctxt "LABEL"
msgid "Title"
msgstr ""
#. TRANS: Field label on form for adding a new bookmark.
#: forms/bookmark.php:153
msgctxt "LABEL"
msgid "Notes"
msgstr ""
#. TRANS: Field label on form for adding a new bookmark.
#: forms/bookmark.php:162
msgctxt "LABEL"
msgid "Tags"
msgstr ""
#. TRANS: Field title on form for adding a new bookmark.
#: forms/bookmark.php:165
msgid "Comma- or space-separated list of tags."
msgstr ""
#. TRANS: Button text for action to save a new bookmark.
#: forms/bookmark.php:188
msgctxt "BUTTON"
msgid "Save"
msgstr ""
#. TRANS: Client exception thrown when a bookmark in an import file is incorrectly formatted. #. TRANS: Client exception thrown when a bookmark in an import file is incorrectly formatted.
#: lib/deliciousbackupimporter.php:181 #: lib/deliciousbackupimporter.php:181
msgid "No <A> tag in a <DT>." msgid "No <A> tag in a <DT>."
@@ -62,6 +106,39 @@ msgstr ""
msgid "Skipping private bookmark." msgid "Skipping private bookmark."
msgstr "" msgstr ""
#. TRANS: Exception thrown when a file upload cannot be found.
#. TRANS: %s is the file that could not be found.
#. TRANS: Server exception thrown when a file upload cannot be found.
#. TRANS: %s is the file that could not be found.
#: scripts/importbookmarks.php:64 actions/importdelicious.php:170
#, php-format
msgid "No such file \"%s\"."
msgstr ""
#. TRANS: Exception thrown when a file upload is incorrect.
#. TRANS: %s is the irregular file.
#. TRANS: Server exception thrown when a file upload is incorrect.
#. TRANS: %s is the irregular file.
#: scripts/importbookmarks.php:70 actions/importdelicious.php:176
#, php-format
msgid "Not a regular file: \"%s\"."
msgstr ""
#. TRANS: Exception thrown when a file upload is not readable.
#. TRANS: %s is the file that could not be read.
#. TRANS: Server exception thrown when a file upload is not readable.
#. TRANS: %s is the file that could not be read.
#: scripts/importbookmarks.php:76 actions/importdelicious.php:182
#, php-format
msgid "File \"%s\" not readable."
msgstr ""
#. TRANS: %s is the filename that contains a backup for a user.
#: scripts/importbookmarks.php:80
#, php-format
msgid "Getting backup from file \"%s\"."
msgstr ""
#. TRANS: Client exception thrown when referring to a non-existing bookmark. #. TRANS: Client exception thrown when referring to a non-existing bookmark.
#: actions/showbookmark.php:59 actions/showbookmark.php:67 #: actions/showbookmark.php:59 actions/showbookmark.php:67
msgid "No such bookmark." msgid "No such bookmark."
@@ -74,24 +151,6 @@ msgstr ""
msgid "%1$s's bookmark for \"%2$s\"" msgid "%1$s's bookmark for \"%2$s\""
msgstr "" msgstr ""
#. TRANS: Title for mini-posting window loaded from bookmarklet.
#. TRANS: %s is the StatusNet site name.
#: actions/bookmarkpopup.php:57
#, php-format
msgid "Bookmark on %s"
msgstr ""
#. TRANS: Page title for sample plugin.
#: actions/bookmarks.php:128
msgid "Log in"
msgstr ""
#. TRANS: Page title for sample plugin. %s is a user nickname.
#: actions/bookmarks.php:131
#, php-format
msgid "%s's bookmarks"
msgstr ""
#. TRANS: Client exception thrown when an unknown URL is provided. #. TRANS: Client exception thrown when an unknown URL is provided.
#: actions/noticebyurl.php:70 #: actions/noticebyurl.php:70
msgid "Unknown URL." msgid "Unknown URL."
@@ -111,6 +170,39 @@ msgstr ""
msgid "Notices linking to %1$s, page %2$d" msgid "Notices linking to %1$s, page %2$d"
msgstr "" msgstr ""
#. TRANS: Title for action to create a new bookmark.
#: actions/newbookmark.php:57
msgid "New bookmark"
msgstr ""
#. TRANS: Client exception thrown when trying to create a new bookmark without a title.
#: actions/newbookmark.php:79
msgid "Bookmark must have a title."
msgstr ""
#. TRANS: Client exception thrown when trying to create a new bookmark without a URL.
#: actions/newbookmark.php:84
msgid "Bookmark must have an URL."
msgstr ""
#. TRANS: Page title for sample plugin.
#: actions/bookmarks.php:128
msgid "Log in"
msgstr ""
#. TRANS: Page title for sample plugin. %s is a user nickname.
#: actions/bookmarks.php:131
#, php-format
msgid "%s's bookmarks"
msgstr ""
#. TRANS: Title for mini-posting window loaded from bookmarklet.
#. TRANS: %s is the StatusNet site name.
#: actions/bookmarkpopup.php:57
#, php-format
msgid "Bookmark on %s"
msgstr ""
#. TRANS: Title for page to import del.icio.us bookmark backups on. #. TRANS: Title for page to import del.icio.us bookmark backups on.
#. TRANS: Link text in proile leading to import form. #. TRANS: Link text in proile leading to import form.
#: actions/importdelicious.php:60 BookmarkPlugin.php:232 #: actions/importdelicious.php:60 BookmarkPlugin.php:232
@@ -170,33 +262,6 @@ msgstr ""
msgid "System error uploading file." msgid "System error uploading file."
msgstr "" msgstr ""
#. TRANS: Server exception thrown when a file upload cannot be found.
#. TRANS: %s is the file that could not be found.
#. TRANS: Exception thrown when a file upload cannot be found.
#. TRANS: %s is the file that could not be found.
#: actions/importdelicious.php:170 scripts/importbookmarks.php:64
#, php-format
msgid "No such file \"%s\"."
msgstr ""
#. TRANS: Server exception thrown when a file upload is incorrect.
#. TRANS: %s is the irregular file.
#. TRANS: Exception thrown when a file upload is incorrect.
#. TRANS: %s is the irregular file.
#: actions/importdelicious.php:176 scripts/importbookmarks.php:70
#, php-format
msgid "Not a regular file: \"%s\"."
msgstr ""
#. TRANS: Server exception thrown when a file upload is not readable.
#. TRANS: %s is the file that could not be read.
#. TRANS: Exception thrown when a file upload is not readable.
#. TRANS: %s is the file that could not be read.
#: actions/importdelicious.php:182 scripts/importbookmarks.php:76
#, php-format
msgid "File \"%s\" not readable."
msgstr ""
#. TRANS: Success message after importing bookmarks. #. TRANS: Success message after importing bookmarks.
#: actions/importdelicious.php:221 #: actions/importdelicious.php:221
msgid "" msgid ""
@@ -225,21 +290,6 @@ msgstr ""
msgid "Upload the file." msgid "Upload the file."
msgstr "" msgstr ""
#. TRANS: Title for action to create a new bookmark.
#: actions/newbookmark.php:57
msgid "New bookmark"
msgstr ""
#. TRANS: Client exception thrown when trying to create a new bookmark without a title.
#: actions/newbookmark.php:79
msgid "Bookmark must have a title."
msgstr ""
#. TRANS: Client exception thrown when trying to create a new bookmark without a URL.
#: actions/newbookmark.php:84
msgid "Bookmark must have an URL."
msgstr ""
#. TRANS: Plugin description. #. TRANS: Plugin description.
#: BookmarkPlugin.php:189 #: BookmarkPlugin.php:189
msgid "Plugin for posting bookmarks. " msgid "Plugin for posting bookmarks. "
@@ -260,50 +310,3 @@ msgstr ""
msgctxt "TITLE" msgctxt "TITLE"
msgid "Bookmark" msgid "Bookmark"
msgstr "" msgstr ""
#. TRANS: %s is the filename that contains a backup for a user.
#: scripts/importbookmarks.php:80
#, php-format
msgid "Getting backup from file \"%s\"."
msgstr ""
#. TRANS: Field label on form for adding a new bookmark.
#: forms/initialbookmark.php:78 forms/bookmark.php:118
msgctxt "LABEL"
msgid "URL"
msgstr ""
#. TRANS: Button text for action to save a new bookmark.
#: forms/initialbookmark.php:92
msgctxt "BUTTON"
msgid "Add"
msgstr ""
#. TRANS: Field label on form for adding a new bookmark.
#: forms/bookmark.php:144
msgctxt "LABEL"
msgid "Title"
msgstr ""
#. TRANS: Field label on form for adding a new bookmark.
#: forms/bookmark.php:156
msgctxt "LABEL"
msgid "Notes"
msgstr ""
#. TRANS: Field label on form for adding a new bookmark.
#: forms/bookmark.php:167
msgctxt "LABEL"
msgid "Tags"
msgstr ""
#. TRANS: Field title on form for adding a new bookmark.
#: forms/bookmark.php:170
msgid "Comma- or space-separated list of tags."
msgstr ""
#. TRANS: Button text for action to save a new bookmark.
#: forms/bookmark.php:196
msgctxt "BUTTON"
msgid "Save"
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,22 +17,6 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n" "Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#. TRANS: Client error displayed when trying to log in while already logged on.
#: actions/caslogin.php:29
msgid "Already logged in."
msgstr ""
#. TRANS: Server error displayed when trying to log in with incorrect username or password.
#. TRANS: Server error displayed when trying to log in with non-whitelisted user name (when whitelists are enabled.)
#: actions/caslogin.php:41 actions/caslogin.php:46
msgid "Incorrect username or password."
msgstr ""
#. TRANS: Server error displayed when login fails in CAS authentication plugin.
#: actions/caslogin.php:52
msgid "Error setting user. You are probably not authorized."
msgstr ""
#. TRANS: Menu item. CAS is Central Authentication Service. #. TRANS: Menu item. CAS is Central Authentication Service.
#: CasAuthenticationPlugin.php:65 #: CasAuthenticationPlugin.php:65
msgid "CAS" msgid "CAS"
@@ -72,3 +56,19 @@ msgid ""
"The CAS Authentication plugin allows for StatusNet to handle authentication " "The CAS Authentication plugin allows for StatusNet to handle authentication "
"through CAS (Central Authentication Service)." "through CAS (Central Authentication Service)."
msgstr "" msgstr ""
#. TRANS: Client error displayed when trying to log in while already logged on.
#: actions/caslogin.php:29
msgid "Already logged in."
msgstr ""
#. TRANS: Server error displayed when trying to log in with incorrect username or password.
#. TRANS: Server error displayed when trying to log in with non-whitelisted user name (when whitelists are enabled.)
#: actions/caslogin.php:41 actions/caslogin.php:46
msgid "Incorrect username or password."
msgstr ""
#. TRANS: Server error displayed when login fails in CAS authentication plugin.
#: actions/caslogin.php:52
msgid "Error setting user. You are probably not authorized."
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,22 +17,6 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n" "Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#. TRANS: Module description.
#: ChooseThemePlugin.php:44
msgid "Allowing user to select the preferred theme."
msgstr ""
#. TRANS: Poll plugin menu item on user settings page.
#: ChooseThemePlugin.php:63
msgctxt "MENU"
msgid "Theme"
msgstr ""
#. TRANS: Poll plugin tooltip for user settings menu item.
#: ChooseThemePlugin.php:65
msgid "Choose Theme"
msgstr ""
#. TRANS: Page title. #. TRANS: Page title.
#: actions/choosethemesettings.php:37 #: actions/choosethemesettings.php:37
msgid "Choose theme settings" msgid "Choose theme settings"
@@ -50,3 +34,19 @@ msgstr ""
#: actions/choosethemesettings.php:138 #: actions/choosethemesettings.php:138
msgid "Select a theme" msgid "Select a theme"
msgstr "" msgstr ""
#. TRANS: Module description.
#: ChooseThemePlugin.php:44
msgid "Allowing user to select the preferred theme."
msgstr ""
#. TRANS: Poll plugin menu item on user settings page.
#: ChooseThemePlugin.php:63
msgctxt "MENU"
msgid "Theme"
msgstr ""
#. TRANS: Poll plugin tooltip for user settings menu item.
#: ChooseThemePlugin.php:65
msgid "Choose Theme"
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -240,7 +240,7 @@ class DirectMessagePlugin extends Plugin
'name' => 'Direct Message', 'name' => 'Direct Message',
'version' => self::PLUGIN_VERSION, 'version' => self::PLUGIN_VERSION,
'author' => 'Mikael Nordfeldth, Bruno Casteleiro', 'author' => 'Mikael Nordfeldth, Bruno Casteleiro',
'homepage' => 'https://gnusocial.rocks/', 'homepage' => 'https://gnu.social/',
'rawdescription' => 'rawdescription' =>
// TRANS: Plugin description. // TRANS: Plugin description.
_m('Direct Message to other local users.') _m('Direct Message to other local users.')

View File

@@ -36,14 +36,14 @@ class MessageCommand extends Command
$this->text = $this->user->shortenLinks($this->text); $this->text = $this->user->shortenLinks($this->text);
if (MessageModel::contentTooLong($this->text)) { if (Message::contentTooLong($this->text)) {
// XXX: i18n. Needs plural support. // XXX: i18n. Needs plural support.
// TRANS: Message given if content is too long. %1$sd is used for plural. // TRANS: Message given if content is too long. %1$sd is used for plural.
// TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. // TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters.
$channel->error($this->user, sprintf(_m('Message too long - maximum is %1$d character, you sent %2$d.', $channel->error($this->user, sprintf(_m('Message too long - maximum is %1$d character, you sent %2$d.',
'Message too long - maximum is %1$d characters, you sent %2$d.', 'Message too long - maximum is %1$d characters, you sent %2$d.',
MessageModel::maxContent()), Message::maxContent()),
MessageModel::maxContent(), mb_strlen($this->text))); Message::maxContent(), mb_strlen($this->text)));
return; return;
} }
@@ -61,7 +61,7 @@ class MessageCommand extends Command
return; return;
} }
try { try {
$message = MessageModel::saveNew(Profile::getByID($this->user->id), $this->text, $channel->source()); $message = Message::saveNew($this->user->id, $other->id, $this->text, $channel->source());
$message->notify(); $message->notify();
// TRANS: Message given have sent a direct message to another user. // TRANS: Message given have sent a direct message to another user.
// TRANS: %s is the name of the other user. // TRANS: %s is the name of the other user.

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -95,6 +95,33 @@ msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d."
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#. TRANS: Form validation error displayed when message content is too long.
#. TRANS: %d is the maximum number of characters for a message.
#: actions/newmessage.php:99 actions/apidirectmessagenew.php:99
#, php-format
msgid "That's too long. Maximum message size is %d character."
msgid_plural "That's too long. Maximum message size is %d characters."
msgstr[0] ""
msgstr[1] ""
#. TRANS: Title for outbox for any but the fist page.
#. TRANS: %1$s is the user nickname, %2$d is the page number.
#: actions/outbox.php:50
#, php-format
msgid "Outbox for %1$s - page %2$d"
msgstr ""
#. TRANS: Title for first page of outbox.
#: actions/outbox.php:54
#, php-format
msgid "Outbox for %s"
msgstr ""
#. TRANS: Instructions for outbox.
#: actions/outbox.php:84
msgid "This is your outbox, which lists private messages you have sent."
msgstr ""
#. TRANS: Client error displayed requesting a single message that does not exist. #. TRANS: Client error displayed requesting a single message that does not exist.
#: actions/showmessage.php:63 #: actions/showmessage.php:63
msgid "No such message." msgid "No such message."
@@ -143,33 +170,6 @@ msgstr ""
msgid "This is your inbox, which lists your incoming private messages." msgid "This is your inbox, which lists your incoming private messages."
msgstr "" msgstr ""
#. TRANS: Title for outbox for any but the fist page.
#. TRANS: %1$s is the user nickname, %2$d is the page number.
#: actions/outbox.php:50
#, php-format
msgid "Outbox for %1$s - page %2$d"
msgstr ""
#. TRANS: Title for first page of outbox.
#: actions/outbox.php:54
#, php-format
msgid "Outbox for %s"
msgstr ""
#. TRANS: Instructions for outbox.
#: actions/outbox.php:84
msgid "This is your outbox, which lists private messages you have sent."
msgstr ""
#. TRANS: Form validation error displayed when message content is too long.
#. TRANS: %d is the maximum number of characters for a message.
#: actions/apidirectmessagenew.php:99 actions/newmessage.php:99
#, php-format
msgid "That's too long. Maximum message size is %d character."
msgid_plural "That's too long. Maximum message size is %d characters."
msgstr[0] ""
msgstr[1] ""
#. TRANS: Menu item in personal group navigation menu. #. TRANS: Menu item in personal group navigation menu.
#: DirectMessagePlugin.php:149 #: DirectMessagePlugin.php:149
msgctxt "MENU" msgctxt "MENU"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,32 +17,21 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n" "Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#. TRANS: Menu item text for user directory.
#: DirectoryPlugin.php:223
msgctxt "MENU"
msgid "People"
msgstr ""
#. TRANS: Menu item title for user directory.
#: DirectoryPlugin.php:225
msgid "People."
msgstr ""
#. TRANS: Plugin description.
#: DirectoryPlugin.php:244
msgid "Add a user directory."
msgstr ""
#. TRANS: Column header in table for user nickname. #. TRANS: Column header in table for user nickname.
#: lib/sortablesubscriptionlist.php:51 lib/sortablegrouplist.php:51 #: lib/sortablegrouplist.php:51 lib/sortablesubscriptionlist.php:51
msgid "Nickname" msgid "Nickname"
msgstr "" msgstr ""
#. TRANS: Column header in table for timestamp when user was created. #. TRANS: Column header in table for timestamp when user was created.
#: lib/sortablesubscriptionlist.php:53 lib/sortablegrouplist.php:53 #: lib/sortablegrouplist.php:53 lib/sortablesubscriptionlist.php:53
msgid "Created" msgid "Created"
msgstr "" msgstr ""
#. TRANS: Column header in table for members of a group.
#: lib/sortablegrouplist.php:99
msgid "Members"
msgstr ""
#. TRANS: Column header for number of subscriptions. #. TRANS: Column header for number of subscriptions.
#: lib/sortablesubscriptionlist.php:100 #: lib/sortablesubscriptionlist.php:100
msgid "Subscriptions" msgid "Subscriptions"
@@ -53,9 +42,85 @@ msgstr ""
msgid "Notices" msgid "Notices"
msgstr "" msgstr ""
#. TRANS: Column header in table for members of a group. #. TRANS: Title for group directory page. %d is a page number.
#: lib/sortablegrouplist.php:99 #: actions/groupdirectory.php:95
msgid "Members" #, php-format
msgid "Group Directory, page %d"
msgstr ""
#. TRANS: Title for group directory page.
#: actions/groupdirectory.php:98
msgid "Group directory"
msgstr ""
#. TRANS: Title for group directory page when it is filtered.
#. TRANS: %s is the filter string.
#: actions/groupdirectory.php:103
#, php-format
msgid "Group directory - %s"
msgstr ""
#. TRANS: Title for group directory page when it is filtered.
#. TRANS: %1$s is the filter string, %2$d is a page number.
#: actions/groupdirectory.php:110
#, php-format
msgid "Group directory - %1$s, page %2$d"
msgstr ""
#. TRANS: Page instructions.
#: actions/groupdirectory.php:125
msgid ""
"After you join a group you can send messages to all other members\n"
"using the syntax \"!groupname\".\n"
"\n"
"Browse groups, or search for groups by their name, location or topic.\n"
"Separate the terms by spaces; they must be three characters or more."
msgstr ""
#. TRANS: Link to create a new group on the group list page.
#: actions/groupdirectory.php:184
msgid "Create a new group"
msgstr ""
#. TRANS: Fieldset legend.
#: actions/groupdirectory.php:244
msgid "Search groups"
msgstr ""
#. TRANS: Field label for input of one or more keywords.
#. TRANS: Field label for user directory filter.
#: actions/groupdirectory.php:249 actions/userdirectory.php:241
msgid "Keyword(s)"
msgstr ""
#. TRANS: Button text for searching group directory.
#. TRANS: Button text.
#: actions/groupdirectory.php:252 actions/userdirectory.php:244
msgctxt "BUTTON"
msgid "Search"
msgstr ""
#. TRANS: Empty list message for searching group directory.
#. TRANS: %s is the search string.
#: actions/groupdirectory.php:355
#, php-format
msgid "No groups starting with %s."
msgstr ""
#. TRANS: Empty list message for searching group directory.
#. TRANS: Empty list message for user directory.
#: actions/groupdirectory.php:359 actions/userdirectory.php:353
msgid "No results."
msgstr ""
#. TRANS: Help text for searching group directory.
#. TRANS: Standard search suggestions shown when a search does not give any results.
#: actions/groupdirectory.php:361 actions/userdirectory.php:355
msgid ""
"* Make sure all words are spelled correctly.\n"
"* Try different keywords.\n"
"* Try more general keywords.\n"
"* Try fewer keywords."
msgstr "" msgstr ""
#. TRANS: Page title for user directory. %d is a page number. #. TRANS: Page title for user directory. %d is a page number.
@@ -95,89 +160,24 @@ msgstr ""
msgid "Search site" msgid "Search site"
msgstr "" msgstr ""
#. TRANS: Field label for user directory filter.
#. TRANS: Field label for input of one or more keywords.
#: actions/userdirectory.php:241 actions/groupdirectory.php:247
msgid "Keyword(s)"
msgstr ""
#. TRANS: Button text.
#. TRANS: Button text for searching group directory.
#: actions/userdirectory.php:244 actions/groupdirectory.php:250
msgctxt "BUTTON"
msgid "Search"
msgstr ""
#. TRANS: Empty list message for user directory. #. TRANS: Empty list message for user directory.
#: actions/userdirectory.php:349 #: actions/userdirectory.php:349
#, php-format #, php-format
msgid "No users starting with %s" msgid "No users starting with %s"
msgstr "" msgstr ""
#. TRANS: Empty list message for user directory. #. TRANS: Menu item text for user directory.
#. TRANS: Empty list message for searching group directory. #: DirectoryPlugin.php:223
#: actions/userdirectory.php:353 actions/groupdirectory.php:365 msgctxt "MENU"
msgid "No results." msgid "People"
msgstr "" msgstr ""
#. TRANS: Standard search suggestions shown when a search does not give any results. #. TRANS: Menu item title for user directory.
#. TRANS: Help text for searching group directory. #: DirectoryPlugin.php:225
#: actions/userdirectory.php:355 actions/groupdirectory.php:367 msgid "People."
msgid ""
"* Make sure all words are spelled correctly.\n"
"* Try different keywords.\n"
"* Try more general keywords.\n"
"* Try fewer keywords."
msgstr "" msgstr ""
#. TRANS: Title for group directory page. %d is a page number. #. TRANS: Plugin description.
#: actions/groupdirectory.php:89 #: DirectoryPlugin.php:244
#, php-format msgid "Add a user directory."
msgid "Group Directory, page %d"
msgstr ""
#. TRANS: Title for group directory page.
#: actions/groupdirectory.php:92
msgid "Group directory"
msgstr ""
#. TRANS: Title for group directory page when it is filtered.
#. TRANS: %s is the filter string.
#: actions/groupdirectory.php:97
#, php-format
msgid "Group directory - %s"
msgstr ""
#. TRANS: Title for group directory page when it is filtered.
#. TRANS: %1$s is the filter string, %2$d is a page number.
#: actions/groupdirectory.php:104
#, php-format
msgid "Group directory - %1$s, page %2$d"
msgstr ""
#. TRANS: Page instructions.
#: actions/groupdirectory.php:119
msgid ""
"After you join a group you can send messages to all other members\n"
"using the syntax \"!groupname\".\n"
"\n"
"Browse groups, or search for groups by their name, location or topic.\n"
"Separate the terms by spaces; they must be three characters or more."
msgstr ""
#. TRANS: Link to create a new group on the group list page.
#: actions/groupdirectory.php:180
msgid "Create a new group"
msgstr ""
#. TRANS: Fieldset legend.
#: actions/groupdirectory.php:242
msgid "Search groups"
msgstr ""
#. TRANS: Empty list message for searching group directory.
#. TRANS: %s is the search string.
#: actions/groupdirectory.php:360
#, php-format
msgid "No groups starting with %s."
msgstr "" msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,6 +18,6 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#. TRANS: Plugin description. #. TRANS: Plugin description.
#: DiskCachePlugin.php:170 #: DiskCachePlugin.php:169
msgid "Plugin to implement cache interface with disk files." msgid "Plugin to implement cache interface with disk files."
msgstr "" msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,42 +17,6 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n" "Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: DomainWhitelistPlugin.php:86
#, php-format
msgid "Email address must be in this domain: %s."
msgstr ""
#: DomainWhitelistPlugin.php:93
#, php-format
msgid "Email address must be in one of these domains: %s."
msgstr ""
#. TRANS: Separator for whitelisted domains.
#: DomainWhitelistPlugin.php:95
msgctxt "SEPARATOR"
msgid ", "
msgstr ""
#. TRANS: Exception thrown when an e-mail address does not match the site's domain whitelist.
#: DomainWhitelistPlugin.php:108
msgid "That email address is not allowed on this site."
msgstr ""
#. TRANS: Title for invitiation deletion dialog.
#: DomainWhitelistPlugin.php:237
msgid "Confirmation Required"
msgstr ""
#. TRANS: Confirmation text for invitation deletion dialog.
#: DomainWhitelistPlugin.php:240
msgid "Really delete this invitation?"
msgstr ""
#. TRANS: Plugin description.
#: DomainWhitelistPlugin.php:277
msgid "Restrict domains for email users."
msgstr ""
#. TRANS: Form legend. #. TRANS: Form legend.
#: forms/whitelistinvite.php:89 #: forms/whitelistinvite.php:89
msgid "Invite collegues" msgid "Invite collegues"
@@ -83,3 +47,43 @@ msgstr ""
#: forms/whitelistinvite.php:175 #: forms/whitelistinvite.php:175
msgid "Send invitations." msgid "Send invitations."
msgstr "" msgstr ""
#. TRANS: Client exception thrown when a given e-mailaddress is not in the domain whitelist.
#. TRANS: %s is a whitelisted e-mail domain.
#: DomainWhitelistPlugin.php:92
#, php-format
msgid "Email address must be in this domain: %s."
msgstr ""
#. TRANS: Client exception thrown when a given e-mailaddress is not in the domain whitelist.
#. TRANS: %s are whitelisted e-mail domains separated by comma's (localisable).
#: DomainWhitelistPlugin.php:97
#, php-format
msgid "Email address must be in one of these domains: %s."
msgstr ""
#. TRANS: Separator for whitelisted domains.
#: DomainWhitelistPlugin.php:99
msgctxt "SEPARATOR"
msgid ", "
msgstr ""
#. TRANS: Exception thrown when an e-mail address does not match the site's domain whitelist.
#: DomainWhitelistPlugin.php:111
msgid "That email address is not allowed on this site."
msgstr ""
#. TRANS: Title for invitiation deletion dialog.
#: DomainWhitelistPlugin.php:240
msgid "Confirmation Required"
msgstr ""
#. TRANS: Confirmation text for invitation deletion dialog.
#: DomainWhitelistPlugin.php:243
msgid "Really delete this invitation?"
msgstr ""
#. TRANS: Plugin description.
#: DomainWhitelistPlugin.php:280
msgid "Restrict domains for email users."
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#. TRANS: Plugin description. #. TRANS: Plugin description.
#: EmailAuthenticationPlugin.php:68 #: EmailAuthenticationPlugin.php:62
msgid "" msgid ""
"The Email Authentication plugin allows users to login using their email " "The Email Authentication plugin allows users to login using their email "
"address." "address."

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,6 +17,94 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n" "Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#. TRANS: Form instructions.
#: forms/emailregistration.php:61
msgid "Enter your email address to register for an account."
msgstr ""
#. TRANS: Field label on form for registering an account.
#: forms/emailregistration.php:69
msgctxt "LABEL"
msgid "E-mail address"
msgstr ""
#. TRANS: Button text for registering an account.
#. TRANS: Button text for action to register.
#: forms/emailregistration.php:93 forms/confirmregistration.php:164
msgctxt "BUTTON"
msgid "Register"
msgstr ""
#. TRANS: Form instructions.
#: forms/confirmregistration.php:67
msgid "Enter a password to confirm your new account."
msgstr ""
#. TRANS: Field label in e-mail registration form.
#: forms/confirmregistration.php:80
msgctxt "LABEL"
msgid "User name"
msgstr ""
#. TRANS: Field label.
#: forms/confirmregistration.php:92
msgid "Email address"
msgstr ""
#. TRANS: Field label on account registration page.
#: forms/confirmregistration.php:104
msgid "Password"
msgstr ""
#. TRANS: Field title on account registration page.
#: forms/confirmregistration.php:106
msgid "6 or more characters."
msgstr ""
#. TRANS: Field label on account registration page. In this field the password has to be entered a second time.
#: forms/confirmregistration.php:111
msgctxt "PASSWORD"
msgid "Confirm"
msgstr ""
#. TRANS: Field title on account registration page.
#: forms/confirmregistration.php:113
msgid "Same as password above."
msgstr ""
#: forms/confirmregistration.php:134
#, php-format
msgid ""
"I agree to the <a href=\"%1$s\">Terms of service</a> and <a href=\"%1$s"
"\">Privacy policy</a> of this site."
msgstr ""
#. TRANS: Error text when trying to register with an already registered e-mail address.
#. TRANS: %s is the URL to recover password at.
#: EmailRegistrationPlugin.php:94
#, php-format
msgid ""
"A user with that email address already exists. You can use the <a href=\"%s"
"\">password recovery</a> tool to recover a missing password."
msgstr ""
#. TRANS: Error text when trying to register with an invalid e-mail address.
#: EmailRegistrationPlugin.php:108
msgid "Not a valid email address."
msgstr ""
#. TRANS: Subject for confirmation e-mail.
#. TRANS: %s is the StatusNet sitename.
#: EmailRegistrationPlugin.php:152
#, php-format
msgid "Welcome to %s"
msgstr ""
#. TRANS: Plugin description.
#: EmailRegistrationPlugin.php:185
msgid "Use email only for registration."
msgstr ""
#. TRANS: Client exception trown when registration by e-mail is not allowed. #. TRANS: Client exception trown when registration by e-mail is not allowed.
#: actions/emailregister.php:84 #: actions/emailregister.php:84
msgid "Registration not allowed." msgid "Registration not allowed."
@@ -112,91 +200,3 @@ msgid ""
"%2$s\n" "%2$s\n"
"If it was not you, you can safely ignore this message." "If it was not you, you can safely ignore this message."
msgstr "" msgstr ""
#. TRANS: Form instructions.
#: forms/emailregistration.php:61
msgid "Enter your email address to register for an account."
msgstr ""
#. TRANS: Field label on form for registering an account.
#: forms/emailregistration.php:69
msgctxt "LABEL"
msgid "E-mail address"
msgstr ""
#. TRANS: Button text for registering an account.
#. TRANS: Button text for action to register.
#: forms/emailregistration.php:93 forms/confirmregistration.php:164
msgctxt "BUTTON"
msgid "Register"
msgstr ""
#. TRANS: Form instructions.
#: forms/confirmregistration.php:67
msgid "Enter a password to confirm your new account."
msgstr ""
#. TRANS: Field label in e-mail registration form.
#: forms/confirmregistration.php:80
msgctxt "LABEL"
msgid "User name"
msgstr ""
#. TRANS: Field label.
#: forms/confirmregistration.php:92
msgid "Email address"
msgstr ""
#. TRANS: Field label on account registration page.
#: forms/confirmregistration.php:104
msgid "Password"
msgstr ""
#. TRANS: Field title on account registration page.
#: forms/confirmregistration.php:106
msgid "6 or more characters."
msgstr ""
#. TRANS: Field label on account registration page. In this field the password has to be entered a second time.
#: forms/confirmregistration.php:111
msgctxt "PASSWORD"
msgid "Confirm"
msgstr ""
#. TRANS: Field title on account registration page.
#: forms/confirmregistration.php:113
msgid "Same as password above."
msgstr ""
#: forms/confirmregistration.php:134
#, php-format
msgid ""
"I agree to the <a href=\"%1$s\">Terms of service</a> and <a href=\"%1$s"
"\">Privacy policy</a> of this site."
msgstr ""
#. TRANS: Error text when trying to register with an already registered e-mail address.
#. TRANS: %s is the URL to recover password at.
#: EmailRegistrationPlugin.php:94
#, php-format
msgid ""
"A user with that email address already exists. You can use the <a href=\"%s"
"\">password recovery</a> tool to recover a missing password."
msgstr ""
#. TRANS: Error text when trying to register with an invalid e-mail address.
#: EmailRegistrationPlugin.php:108
msgid "Not a valid email address."
msgstr ""
#. TRANS: Subject for confirmation e-mail.
#. TRANS: %s is the StatusNet sitename.
#: EmailRegistrationPlugin.php:152
#, php-format
msgid "Welcome to %s"
msgstr ""
#. TRANS: Plugin description.
#: EmailRegistrationPlugin.php:185
msgid "Use email only for registration."
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -50,11 +50,11 @@ msgstr ""
msgid "Final reminder - you have been invited to join %s!" msgid "Final reminder - you have been invited to join %s!"
msgstr "" msgstr ""
#: scripts/sendemailreminder.php:68
msgid "Unknown reminder type: "
msgstr ""
#. TRANS: Plugin description. #. TRANS: Plugin description.
#: EmailReminderPlugin.php:192 #: EmailReminderPlugin.php:192
msgid "Send email reminders for various things." msgid "Send email reminders for various things."
msgstr "" msgstr ""
#: scripts/sendemailreminder.php:68
msgid "Unknown reminder type: "
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -23,11 +23,7 @@ msgstr ""
msgid "Could not GET URL %s." msgid "Could not GET URL %s."
msgstr "" msgstr ""
#: EmbedPlugin.php:557
msgid "Untitled attachment"
msgstr ""
#. TRANS: Plugin description. #. TRANS: Plugin description.
#: EmbedPlugin.php:722 #: EmbedPlugin.php:687
msgid "Plugin for using and representing oEmbed, OpenGraph and other data." msgid "Plugin for using and representing oEmbed, OpenGraph and other data."
msgstr "" msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -118,214 +118,6 @@ msgstr ""
msgid "No end date for event." msgid "No end date for event."
msgstr "" msgstr ""
#. TRANS: 0 minutes abbreviated. Used in a list.
#: lib/eventtimelist.php:85
msgid "(0 min)"
msgstr ""
#. TRANS: 30 minutes abbreviated. Used in a list.
#: lib/eventtimelist.php:89
msgid "(30 min)"
msgstr ""
#. TRANS: 1 hour. Used in a list.
#: lib/eventtimelist.php:93
msgid "(1 hour)"
msgstr ""
#: lib/eventtimelist.php:98
#, php-format
msgid "(%.1f hours)"
msgstr ""
#: lib/eventtimelist.php:99
#, php-format
msgid "(%d hours)"
msgstr ""
#. TRANS: Plugin description.
#: EventPlugin.php:110
msgid "Event invitations and RSVPs."
msgstr ""
#. TRANS: Title for event application.
#: EventPlugin.php:116
msgctxt "TITLE"
msgid "Event"
msgstr ""
#. TRANS: Exception thrown when event plugin comes across a unknown object type.
#: EventPlugin.php:213
msgid "Unknown object type."
msgstr ""
#. TRANS: Field label for event description.
#: EventPlugin.php:340
msgid "Time:"
msgstr ""
#. TRANS: Field label for event description.
#: EventPlugin.php:357
msgid "Location:"
msgstr ""
#. TRANS: Field label for event description.
#: EventPlugin.php:365
msgid "Description:"
msgstr ""
#. TRANS: Field label for event description.
#: EventPlugin.php:375
msgid "Attending:"
msgstr ""
#. TRANS: Content for a deleted RSVP list item (RSVP stands for "please respond").
#: EventPlugin.php:418
msgid "Deleted."
msgstr ""
#. TRANS: Menu item in sample plugin.
#: EventPlugin.php:431
msgid "Happenings"
msgstr ""
#. TRANS: Menu item title in sample plugin.
#: EventPlugin.php:433
msgid "A list of your events"
msgstr ""
#. TRANS: Title for new event form.
#: actions/newevent.php:55
msgctxt "TITLE"
msgid "New event"
msgstr ""
#. TRANS: Client exception thrown when trying to post an event without providing a title.
#: actions/newevent.php:64
msgid "Event must have a title."
msgstr ""
#. TRANS: Client exception thrown when trying to post an event without providing a start date.
#: actions/newevent.php:75
msgid "Start date required."
msgstr ""
#. TRANS: Client exception thrown when trying to post an event without providing a start time.
#: actions/newevent.php:80
msgid "Event must have a start time."
msgstr ""
#. TRANS: Client exception thrown when trying to post an event with a date that cannot be processed.
#. TRANS: %s is the data that could not be processed.
#: actions/newevent.php:87 actions/newevent.php:105
#, php-format
msgid "Could not parse date %s."
msgstr ""
#. TRANS: Client exception thrown when trying to post an event without providing an end date.
#: actions/newevent.php:93
msgid "End date required."
msgstr ""
#. TRANS: Client exception thrown when trying to post an event without providing an end time.
#: actions/newevent.php:98
msgid "Event must have an end time."
msgstr ""
#. TRANS: Client exception thrown when trying to post an event with an invalid (non-empty) URL.
#: actions/newevent.php:111
msgid "An event URL must be a valid HTTP/HTTPS link."
msgstr ""
#: actions/newevent.php:164
msgid "Saved the event."
msgstr ""
#. TRANS: Client exception thrown when referring to a non-existing RSVP.
#. TRANS: RSVP stands for "Please reply".
#: actions/showrsvp.php:61 actions/showrsvp.php:77
msgid "No such RSVP."
msgstr ""
#. TRANS: Client exception thrown when referring to a non-existing event.
#: actions/showrsvp.php:68
msgid "No such event."
msgstr ""
#. TRANS: Title for event.
#. TRANS: %1$s is a user nickname, %2$s is an event title.
#: actions/showrsvp.php:94
#, php-format
msgid "%1$s's RSVP for \"%2$s\""
msgstr ""
#. TRANS: Title for RSVP ("please respond") action.
#: actions/rsvp.php:52
msgctxt "TITLE"
msgid "New RSVP"
msgstr ""
#: actions/rsvp.php:81
msgid "Cancelled RSVP"
msgstr ""
#: actions/rsvp.php:91
msgid "RSVP"
msgstr ""
#: actions/rsvp.php:102
msgid "Saved RSVP"
msgstr ""
#. TRANS: Error message displayed when trying to perform an action that requires a logged in user.
#: actions/timelist.php:65
msgid "Not logged in."
msgstr ""
#. TRANS: Client error when submitting a form with unexpected information.
#: actions/timelist.php:72
msgid "Unexpected form submission."
msgstr ""
#. TRANS: Client error displayed when using an action in a non-AJAX way.
#: actions/timelist.php:80
msgid "This action is AJAX only."
msgstr ""
#. TRANS: Page title for sample plugin. %s is a user nickname.
#: actions/events.php:20
#, php-format
msgid "%s's happenings"
msgstr ""
#. TRANS: Field label on form to RSVP ("please respond") for an event.
#: forms/rsvp.php:98
msgid "RSVP:"
msgstr ""
#: forms/rsvp.php:116
msgctxt "BUTTON"
msgid "Cancel"
msgstr ""
#. TRANS: Button text for RSVP ("please respond") reply to confirm attendence.
#: forms/rsvp.php:119
msgctxt "BUTTON"
msgid "Yes"
msgstr ""
#. TRANS: Button text for RSVP ("please respond") reply to deny attendence.
#: forms/rsvp.php:121
msgctxt "BUTTON"
msgid "No"
msgstr ""
#. TRANS: Button text for RSVP ("please respond") reply to indicate one might attend.
#: forms/rsvp.php:123
msgctxt "BUTTON"
msgid "Maybe"
msgstr ""
#. TRANS: Field label on event form. #. TRANS: Field label on event form.
#: forms/event.php:103 #: forms/event.php:103
msgctxt "LABEL" msgctxt "LABEL"
@@ -420,3 +212,211 @@ msgstr ""
msgctxt "BUTTON" msgctxt "BUTTON"
msgid "Save" msgid "Save"
msgstr "" msgstr ""
#. TRANS: Field label on form to RSVP ("please respond") for an event.
#: forms/rsvp.php:98
msgid "RSVP:"
msgstr ""
#: forms/rsvp.php:116
msgctxt "BUTTON"
msgid "Cancel"
msgstr ""
#. TRANS: Button text for RSVP ("please respond") reply to confirm attendence.
#: forms/rsvp.php:119
msgctxt "BUTTON"
msgid "Yes"
msgstr ""
#. TRANS: Button text for RSVP ("please respond") reply to deny attendence.
#: forms/rsvp.php:121
msgctxt "BUTTON"
msgid "No"
msgstr ""
#. TRANS: Button text for RSVP ("please respond") reply to indicate one might attend.
#: forms/rsvp.php:123
msgctxt "BUTTON"
msgid "Maybe"
msgstr ""
#. TRANS: 0 minutes abbreviated. Used in a list.
#: lib/eventtimelist.php:85
msgid "(0 min)"
msgstr ""
#. TRANS: 30 minutes abbreviated. Used in a list.
#: lib/eventtimelist.php:89
msgid "(30 min)"
msgstr ""
#. TRANS: 1 hour. Used in a list.
#: lib/eventtimelist.php:93
msgid "(1 hour)"
msgstr ""
#: lib/eventtimelist.php:98
#, php-format
msgid "(%.1f hours)"
msgstr ""
#: lib/eventtimelist.php:99
#, php-format
msgid "(%d hours)"
msgstr ""
#. TRANS: Page title for sample plugin. %s is a user nickname.
#: actions/events.php:20
#, php-format
msgid "%s's happenings"
msgstr ""
#. TRANS: Title for new event form.
#: actions/newevent.php:55
msgctxt "TITLE"
msgid "New event"
msgstr ""
#. TRANS: Client exception thrown when trying to post an event without providing a title.
#: actions/newevent.php:64
msgid "Event must have a title."
msgstr ""
#. TRANS: Client exception thrown when trying to post an event without providing a start date.
#: actions/newevent.php:75
msgid "Start date required."
msgstr ""
#. TRANS: Client exception thrown when trying to post an event without providing a start time.
#: actions/newevent.php:80
msgid "Event must have a start time."
msgstr ""
#. TRANS: Client exception thrown when trying to post an event with a date that cannot be processed.
#. TRANS: %s is the data that could not be processed.
#: actions/newevent.php:87 actions/newevent.php:105
#, php-format
msgid "Could not parse date %s."
msgstr ""
#. TRANS: Client exception thrown when trying to post an event without providing an end date.
#: actions/newevent.php:93
msgid "End date required."
msgstr ""
#. TRANS: Client exception thrown when trying to post an event without providing an end time.
#: actions/newevent.php:98
msgid "Event must have an end time."
msgstr ""
#. TRANS: Client exception thrown when trying to post an event with an invalid (non-empty) URL.
#: actions/newevent.php:111
msgid "An event URL must be a valid HTTP/HTTPS link."
msgstr ""
#: actions/newevent.php:164
msgid "Saved the event."
msgstr ""
#. TRANS: Error message displayed when trying to perform an action that requires a logged in user.
#: actions/timelist.php:65
msgid "Not logged in."
msgstr ""
#. TRANS: Client error when submitting a form with unexpected information.
#: actions/timelist.php:72
msgid "Unexpected form submission."
msgstr ""
#. TRANS: Client error displayed when using an action in a non-AJAX way.
#: actions/timelist.php:80
msgid "This action is AJAX only."
msgstr ""
#. TRANS: Title for RSVP ("please respond") action.
#: actions/rsvp.php:52
msgctxt "TITLE"
msgid "New RSVP"
msgstr ""
#: actions/rsvp.php:81
msgid "Cancelled RSVP"
msgstr ""
#: actions/rsvp.php:91
msgid "RSVP"
msgstr ""
#: actions/rsvp.php:102
msgid "Saved RSVP"
msgstr ""
#. TRANS: Client exception thrown when referring to a non-existing RSVP.
#. TRANS: RSVP stands for "Please reply".
#: actions/showrsvp.php:61 actions/showrsvp.php:77
msgid "No such RSVP."
msgstr ""
#. TRANS: Client exception thrown when referring to a non-existing event.
#: actions/showrsvp.php:68
msgid "No such event."
msgstr ""
#. TRANS: Title for event.
#. TRANS: %1$s is a user nickname, %2$s is an event title.
#: actions/showrsvp.php:94
#, php-format
msgid "%1$s's RSVP for \"%2$s\""
msgstr ""
#. TRANS: Plugin description.
#: EventPlugin.php:110
msgid "Event invitations and RSVPs."
msgstr ""
#. TRANS: Title for event application.
#: EventPlugin.php:116
msgctxt "TITLE"
msgid "Event"
msgstr ""
#. TRANS: Exception thrown when event plugin comes across a unknown object type.
#: EventPlugin.php:213
msgid "Unknown object type."
msgstr ""
#. TRANS: Field label for event description.
#: EventPlugin.php:340
msgid "Time:"
msgstr ""
#. TRANS: Field label for event description.
#: EventPlugin.php:357
msgid "Location:"
msgstr ""
#. TRANS: Field label for event description.
#: EventPlugin.php:365
msgid "Description:"
msgstr ""
#. TRANS: Field label for event description.
#: EventPlugin.php:375
msgid "Attending:"
msgstr ""
#. TRANS: Content for a deleted RSVP list item (RSVP stands for "please respond").
#: EventPlugin.php:418
msgid "Deleted."
msgstr ""
#. TRANS: Menu item in sample plugin.
#: EventPlugin.php:431
msgid "Happenings"
msgstr ""
#. TRANS: Menu item title in sample plugin.
#: EventPlugin.php:433
msgid "A list of your events"
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,100 +17,12 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n" "Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: classes/GNUsocialProfileExtensionField.php:75
msgid "Error creating new field."
msgstr ""
#: classes/GNUsocialProfileExtensionResponse.php:74 #: classes/GNUsocialProfileExtensionResponse.php:74
msgid "Error creating new response." msgid "Error creating new response."
msgstr "" msgstr ""
#. TRANS: Title for extended profile entry deletion dialog. #: classes/GNUsocialProfileExtensionField.php:75
#: lib/extendedprofilewidget.php:84 msgid "Error creating new field."
msgid "Confirmation Required"
msgstr ""
#. TRANS: Confirmation text for extended profile entry deletion dialog.
#: lib/extendedprofilewidget.php:87
msgid "Really delete this entry?"
msgstr ""
#. TRANS: Value between parentheses (phone number, website, or IM address).
#: lib/extendedprofilewidget.php:171 lib/extendedprofilewidget.php:185
#: lib/extendedprofilewidget.php:206
#, php-format
msgid "(%s)"
msgstr ""
#. TRANS: Field label in experience area of extended profile.
#. TRANS: Field label in experience edit area of extended profile (which company does one work for).
#: lib/extendedprofilewidget.php:329 lib/extendedprofilewidget.php:380
msgid "Company"
msgstr ""
#. TRANS: Field label in extended profile (when did one start a position or education).
#: lib/extendedprofilewidget.php:335 lib/extendedprofilewidget.php:388
#: lib/extendedprofilewidget.php:434 lib/extendedprofilewidget.php:494
msgid "Start"
msgstr ""
#. TRANS: Field label in extended profile (when did one end a position or education).
#: lib/extendedprofilewidget.php:345 lib/extendedprofilewidget.php:396
#: lib/extendedprofilewidget.php:444 lib/extendedprofilewidget.php:503
msgid "End"
msgstr ""
#. TRANS: Field value in experience area of extended profile (one still holds a position).
#: lib/extendedprofilewidget.php:360
msgid "(Current)"
msgstr ""
#. TRANS: Checkbox label in experience edit area of extended profile (one still works at a company).
#: lib/extendedprofilewidget.php:411
msgid "Current"
msgstr ""
#. TRANS: Field label in education area of extended profile.
#. TRANS: Field label in education edit area of extended profile.
#. TRANS: Field label for extended profile properties.
#: lib/extendedprofilewidget.php:424 lib/extendedprofilewidget.php:469
#: lib/extendedprofile.php:254 lib/extendedprofile.php:267
msgid "Institution"
msgstr ""
#. TRANS: Field label in extended profile for specifying an academic degree.
#: lib/extendedprofilewidget.php:428 lib/extendedprofilewidget.php:477
msgid "Degree"
msgstr ""
#. TRANS: Field label in education area of extended profile.
#. TRANS: Field label in education edit area of extended profile.
#: lib/extendedprofilewidget.php:431 lib/extendedprofilewidget.php:485
#: actions/profilefieldsadminpanel.php:196
msgid "Description"
msgstr ""
#. TRANS: Link description in extended profile page to add another profile element.
#: lib/extendedprofilewidget.php:535
msgid "Add another item"
msgstr ""
#. TRANS: Field label for undefined field in extended profile.
#: lib/extendedprofilewidget.php:650
#, php-format
msgid "TYPE: %s"
msgstr ""
#. TRANS: Button text for saving extended profile properties.
#: lib/extendedprofilewidget.php:665 actions/profilefieldsadminpanel.php:224
msgctxt "BUTTON"
msgid "Save"
msgstr ""
#. TRANS: .
#. TRANS: Button title for saving extended profile properties.
#: lib/extendedprofilewidget.php:670
msgid "Save details"
msgstr "" msgstr ""
#. TRANS: Field label for extended profile properties. #. TRANS: Field label for extended profile properties.
@@ -133,6 +45,14 @@ msgstr ""
msgid "Employer" msgid "Employer"
msgstr "" msgstr ""
#. TRANS: Field label for extended profile properties.
#. TRANS: Field label in education area of extended profile.
#. TRANS: Field label in education edit area of extended profile.
#: lib/extendedprofile.php:254 lib/extendedprofile.php:267
#: lib/extendedprofilewidget.php:426 lib/extendedprofilewidget.php:471
msgid "Institution"
msgstr ""
#. TRANS: Field label for extended profile properties. #. TRANS: Field label for extended profile properties.
#: lib/extendedprofile.php:313 lib/extendedprofile.php:362 #: lib/extendedprofile.php:313 lib/extendedprofile.php:362
msgid "Personal" msgid "Personal"
@@ -202,58 +122,84 @@ msgstr ""
msgid "Additional information" msgid "Additional information"
msgstr "" msgstr ""
#. TRANS: Title for extended profile settings. #. TRANS: Title for extended profile entry deletion dialog.
#. TRANS: %%site.name%% is the name of the site. #: lib/extendedprofilewidget.php:85
#: actions/profiledetailsettings.php:35 msgid "Confirmation Required"
msgid "Extended profile settings"
msgstr "" msgstr ""
#. TRANS: Message given submitting a form with an unknown action. #. TRANS: Confirmation text for extended profile entry deletion dialog.
#: actions/profiledetailsettings.php:45 #: lib/extendedprofilewidget.php:88
msgid "Unexpected form submission." msgid "Really delete this entry?"
msgstr "" msgstr ""
#. TRANS: Success message after saving extended profile details. #. TRANS: Value between parentheses (phone number, website, or IM address).
#: actions/profiledetailsettings.php:86 #: lib/extendedprofilewidget.php:172 lib/extendedprofilewidget.php:185
msgid "Details saved." #: lib/extendedprofilewidget.php:209
msgstr ""
#. TRANS: Exception thrown when no date was entered in a required date field.
#. TRANS: %s is the field name.
#: actions/profiledetailsettings.php:96
#, php-format #, php-format
msgid "You must supply a date for \"%s\"." msgid "(%s)"
msgstr "" msgstr ""
#. TRANS: Exception thrown on incorrect data input. #. TRANS: Field label in experience area of extended profile.
#. TRANS: %1$s is a field name, %2$s is the incorrect input. #. TRANS: Field label in experience edit area of extended profile (which company does one work for).
#: actions/profiledetailsettings.php:108 #: lib/extendedprofilewidget.php:331 lib/extendedprofilewidget.php:382
msgid "Company"
msgstr ""
#. TRANS: Field label in extended profile (when did one start a position or education).
#: lib/extendedprofilewidget.php:337 lib/extendedprofilewidget.php:390
#: lib/extendedprofilewidget.php:436 lib/extendedprofilewidget.php:496
msgid "Start"
msgstr ""
#. TRANS: Field label in extended profile (when did one end a position or education).
#: lib/extendedprofilewidget.php:347 lib/extendedprofilewidget.php:398
#: lib/extendedprofilewidget.php:446 lib/extendedprofilewidget.php:505
msgid "End"
msgstr ""
#. TRANS: Field value in experience area of extended profile (one still holds a position).
#: lib/extendedprofilewidget.php:362
msgid "(Current)"
msgstr ""
#. TRANS: Checkbox label in experience edit area of extended profile (one still works at a company).
#: lib/extendedprofilewidget.php:413
msgid "Current"
msgstr ""
#. TRANS: Field label in extended profile for specifying an academic degree.
#: lib/extendedprofilewidget.php:430 lib/extendedprofilewidget.php:479
msgid "Degree"
msgstr ""
#. TRANS: Field label in education area of extended profile.
#. TRANS: Field label in education edit area of extended profile.
#: lib/extendedprofilewidget.php:433 lib/extendedprofilewidget.php:487
#: actions/profilefieldsadminpanel.php:196
msgid "Description"
msgstr ""
#. TRANS: Link description in extended profile page to add another profile element.
#: lib/extendedprofilewidget.php:537
msgid "Add another item"
msgstr ""
#. TRANS: Field label for undefined field in extended profile.
#: lib/extendedprofilewidget.php:652
#, php-format #, php-format
msgid "Invalid date entered for \"%1$s\": %2$s." msgid "TYPE: %s"
msgstr "" msgstr ""
#. TRANS: Exception thrown when entering an invalid URL. #. TRANS: Button text for saving extended profile properties.
#. TRANS: %s is the invalid URL. #: lib/extendedprofilewidget.php:667 actions/profilefieldsadminpanel.php:224
#: actions/profiledetailsettings.php:228 msgctxt "BUTTON"
#, php-format msgid "Save"
msgid "Invalid URL: %s."
msgstr "" msgstr ""
#. TRANS: Server error displayed when a field could not be saved in the database. #. TRANS: .
#: actions/profiledetailsettings.php:471 actions/profiledetailsettings.php:483 #. TRANS: Button title for saving extended profile properties.
msgid "Could not save profile details." #: lib/extendedprofilewidget.php:672
msgstr "" msgid "Save details"
#. TRANS: Validation error in form for profile settings.
#. TRANS: %s is an invalid tag.
#: actions/profiledetailsettings.php:525
#, php-format
msgid "Invalid tag: \"%s\"."
msgstr ""
#. TRANS: Server error thrown when user profile settings could not be saved.
#: actions/profiledetailsettings.php:564
msgid "Could not save profile."
msgstr "" msgstr ""
#: actions/profilefieldsadminpanel.php:39 #: actions/profilefieldsadminpanel.php:39
@@ -347,6 +293,60 @@ msgstr ""
msgid "Edit" msgid "Edit"
msgstr "" msgstr ""
#. TRANS: Title for extended profile settings.
#. TRANS: %%site.name%% is the name of the site.
#: actions/profiledetailsettings.php:35
msgid "Extended profile settings"
msgstr ""
#. TRANS: Message given submitting a form with an unknown action.
#: actions/profiledetailsettings.php:45
msgid "Unexpected form submission."
msgstr ""
#. TRANS: Success message after saving extended profile details.
#: actions/profiledetailsettings.php:86
msgid "Details saved."
msgstr ""
#. TRANS: Exception thrown when no date was entered in a required date field.
#. TRANS: %s is the field name.
#: actions/profiledetailsettings.php:96
#, php-format
msgid "You must supply a date for \"%s\"."
msgstr ""
#. TRANS: Exception thrown on incorrect data input.
#. TRANS: %1$s is a field name, %2$s is the incorrect input.
#: actions/profiledetailsettings.php:108
#, php-format
msgid "Invalid date entered for \"%1$s\": %2$s."
msgstr ""
#. TRANS: Exception thrown when entering an invalid URL.
#. TRANS: %s is the invalid URL.
#: actions/profiledetailsettings.php:228
#, php-format
msgid "Invalid URL: %s."
msgstr ""
#. TRANS: Server error displayed when a field could not be saved in the database.
#: actions/profiledetailsettings.php:471 actions/profiledetailsettings.php:483
msgid "Could not save profile details."
msgstr ""
#. TRANS: Validation error in form for profile settings.
#. TRANS: %s is an invalid tag.
#: actions/profiledetailsettings.php:525
#, php-format
msgid "Invalid tag: \"%s\"."
msgstr ""
#. TRANS: Server error thrown when user profile settings could not be saved.
#: actions/profiledetailsettings.php:564
msgid "Could not save profile."
msgstr ""
#. TRANS: Module description. #. TRANS: Module description.
#: ExtendedProfilePlugin.php:46 #: ExtendedProfilePlugin.php:46
msgid "UI extensions for additional profile fields." msgid "UI extensions for additional profile fields."

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-13 03:09+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,6 +18,6 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#. TRANS: Plugin description. #. TRANS: Plugin description.
#: FFmpegPlugin.php:155 #: FFmpegPlugin.php:104
msgid "Use PHP-FFMpeg for resizing animated GIFs" msgid "Use PHP-FFMpeg for resizing animated GIFs"
msgstr "" msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -98,16 +98,16 @@ class Group_message extends Managed_DataObject
// We use the same limits as for 'regular' private messages. // We use the same limits as for 'regular' private messages.
if (MessageModel::contentTooLong($text)) { if (Message::contentTooLong($text)) {
// TRANS: Exception thrown when trying to send group private message that is too long. // TRANS: Exception thrown when trying to send group private message that is too long.
// TRANS: %d is the maximum meggage length. // TRANS: %d is the maximum meggage length.
throw new Exception(sprintf( throw new Exception(sprintf(
_m( _m(
'That\'s too long. Maximum message size is %d character.', 'That\'s too long. Maximum message size is %d character.',
'That\'s too long. Maximum message size is %d characters.', 'That\'s too long. Maximum message size is %d characters.',
MessageModel::maxContent() Message::maxContent()
), ),
MessageModel::maxContent() Message::maxContent()
)); ));
} }

View File

@@ -133,7 +133,7 @@ class GroupMessageForm extends Form
'name' => 'content'), 'name' => 'content'),
($this->content) ? $this->content : ''); ($this->content) ? $this->content : '');
$contentLimit = MessageModel::maxContent(); $contentLimit = Message::maxContent();
if ($contentLimit > 0) { if ($contentLimit > 0) {
$this->out->elementStart('dl', 'form_note'); $this->out->elementStart('dl', 'form_note');

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,32 +18,6 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
#. TRANS: Subject for direct-message notification email.
#. TRANS: %1$s is the sending user's nickname, %2$s is the group nickname.
#: classes/Group_message_profile.php:111
#, php-format
msgid "New private message from %1$s to group %2$s"
msgstr ""
#: classes/Group_message_profile.php:118
#, php-format
msgid ""
"%1$s (%2$s) sent a private message to group %3$s:\n"
"\n"
"------------------------------------------------------\n"
"%4$s\n"
"------------------------------------------------------\n"
"\n"
"You can reply to their message here:\n"
"\n"
"%5$s\n"
"\n"
"Do not reply to this email; it will not get to them.\n"
"\n"
"With kind regards,\n"
"%6$s"
msgstr ""
#. TRANS: Exception thrown when trying to set group privacy setting if group %s does not allow private messages. #. TRANS: Exception thrown when trying to set group privacy setting if group %s does not allow private messages.
#: classes/Group_privacy_settings.php:110 #: classes/Group_privacy_settings.php:110
#, php-format #, php-format
@@ -78,13 +52,43 @@ msgstr ""
msgid "Unknown privacy settings for group %s." msgid "Unknown privacy settings for group %s."
msgstr "" msgstr ""
#. TRANS: Subject for direct-message notification email.
#. TRANS: %1$s is the sending user's nickname, %2$s is the group nickname.
#: classes/Group_message_profile.php:111
#, php-format
msgid "New private message from %1$s to group %2$s"
msgstr ""
#: classes/Group_message_profile.php:118
#, php-format
msgid ""
"%1$s (%2$s) sent a private message to group %3$s:\n"
"\n"
"------------------------------------------------------\n"
"%4$s\n"
"------------------------------------------------------\n"
"\n"
"You can reply to their message here:\n"
"\n"
"%5$s\n"
"\n"
"Do not reply to this email; it will not get to them.\n"
"\n"
"With kind regards,\n"
"%6$s"
msgstr ""
#. TRANS: Exception thrown when trying to send group private message without having the right to do that.
#. TRANS: %s is a user nickname.
#. TRANS: Exception thrown when user %s is not allowed to send a private group message. #. TRANS: Exception thrown when user %s is not allowed to send a private group message.
#: classes/Group_message.php:90 actions/newgroupmessage.php:75 #: classes/Group_message.php:96 actions/newgroupmessage.php:75
#, php-format #, php-format
msgid "User %s is not allowed to send private messages." msgid "User %s is not allowed to send private messages."
msgstr "" msgstr ""
#: classes/Group_message.php:106 #. TRANS: Exception thrown when trying to send group private message that is too long.
#. TRANS: %d is the maximum meggage length.
#: classes/Group_message.php:109
#, php-format #, php-format
msgid "That's too long. Maximum message size is %d character." msgid "That's too long. Maximum message size is %d character."
msgid_plural "That's too long. Maximum message size is %d characters." msgid_plural "That's too long. Maximum message size is %d characters."
@@ -92,21 +96,131 @@ msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#. TRANS: Exception thrown when trying to send group private message to a non-existing group. #. TRANS: Exception thrown when trying to send group private message to a non-existing group.
#: classes/Group_message.php:152 #: classes/Group_message.php:153
msgid "No group for group message." msgid "No group for group message."
msgstr "" msgstr ""
#. TRANS: Exception thrown when trying to send group private message without having a sender. #. TRANS: Exception thrown when trying to send group private message without having a sender.
#: classes/Group_message.php:162 #: classes/Group_message.php:163
msgid "No sender for group message." msgid "No sender for group message."
msgstr "" msgstr ""
#. TRANS: Form legend for sending private message to group %s.
#: forms/groupmessage.php:89
#, php-format
msgid "Message to %s"
msgstr ""
#. TRANS: Field label for private group message to group %s.
#: forms/groupmessage.php:128
#, php-format
msgid "Direct message to %s"
msgstr ""
#. TRANS: Indicator for number of chatacters still available for notice.
#: forms/groupmessage.php:141
msgid "Available characters"
msgstr ""
#. TRANS: Send button text for sending private group notice.
#: forms/groupmessage.php:162
msgctxt "Send button for sending notice"
msgid "Send"
msgstr ""
#. TRANS: Succes message after sending private group message to group %s. #. TRANS: Succes message after sending private group message to group %s.
#: lib/groupmessagecommand.php:79 #: lib/groupmessagecommand.php:79
#, php-format #, php-format
msgid "Direct message to group %s sent." msgid "Direct message to group %s sent."
msgstr "" msgstr ""
#. TRANS: Menu item in group page.
#: GroupPrivateMessagePlugin.php:114
msgctxt "MENU"
msgid "Inbox"
msgstr ""
#. TRANS: Menu title in group page.
#: GroupPrivateMessagePlugin.php:116
msgid "Private messages for this group."
msgstr ""
#. TRANS: Dropdown label in group settings page for if group allows private messages.
#: GroupPrivateMessagePlugin.php:162
msgid "Private messages"
msgstr ""
#. TRANS: Dropdown option in group settings page for allowing private messages.
#: GroupPrivateMessagePlugin.php:164
msgid "Sometimes"
msgstr ""
#. TRANS: Dropdown option in group settings page for allowing private messages.
#: GroupPrivateMessagePlugin.php:166
msgid "Always"
msgstr ""
#. TRANS: Dropdown option in group settings page for allowing private messages.
#: GroupPrivateMessagePlugin.php:168
msgid "Never"
msgstr ""
#. TRANS: Dropdown title in group settings page for if group allows private messages.
#: GroupPrivateMessagePlugin.php:170
msgid "Whether to allow private messages to this group."
msgstr ""
#. TRANS: Dropdown label in group settings page for who can send private messages to the group.
#: GroupPrivateMessagePlugin.php:177
msgid "Private senders"
msgstr ""
#. TRANS: Dropdown option in group settings page for who can send private messages.
#: GroupPrivateMessagePlugin.php:179
msgid "Everyone"
msgstr ""
#. TRANS: Dropdown option in group settings page for who can send private messages.
#: GroupPrivateMessagePlugin.php:181
msgid "Member"
msgstr ""
#. TRANS: Dropdown option in group settings page for who can send private messages.
#: GroupPrivateMessagePlugin.php:183
msgid "Admin"
msgstr ""
#. TRANS: Dropdown title in group settings page for who can send private messages to the group.
#: GroupPrivateMessagePlugin.php:185
msgid "Who can send private messages to the group."
msgstr ""
#. TRANS: Title for action in group actions list.
#: GroupPrivateMessagePlugin.php:290
msgid "Send a direct message to this group."
msgstr ""
#. TRANS: Link text for action in group actions list to send a private message to a group.
#: GroupPrivateMessagePlugin.php:292
msgctxt "LINKTEXT"
msgid "Message"
msgstr ""
#. TRANS: Client exception thrown when a private group message has to be forced.
#: GroupPrivateMessagePlugin.php:370
msgid "Forced notice to private group message."
msgstr ""
#. TRANS: Indicator on the group page that the group is (essentially) private.
#: GroupPrivateMessagePlugin.php:392
msgid "Private"
msgstr ""
#. TRANS: Plugin description.
#: GroupPrivateMessagePlugin.php:418
msgid "Allow posting private messages to groups."
msgstr ""
#. TRANS: Client exception thrown when trying to send a private group message while not logged in. #. TRANS: Client exception thrown when trying to send a private group message while not logged in.
#: actions/newgroupmessage.php:70 #: actions/newgroupmessage.php:70
msgid "Must be logged in." msgid "Must be logged in."
@@ -202,113 +316,3 @@ msgid ""
"This is the group inbox, which lists all incoming private messages for this " "This is the group inbox, which lists all incoming private messages for this "
"group." "group."
msgstr "" msgstr ""
#. TRANS: Menu item in group page.
#: GroupPrivateMessagePlugin.php:114
msgctxt "MENU"
msgid "Inbox"
msgstr ""
#. TRANS: Menu title in group page.
#: GroupPrivateMessagePlugin.php:116
msgid "Private messages for this group."
msgstr ""
#. TRANS: Dropdown label in group settings page for if group allows private messages.
#: GroupPrivateMessagePlugin.php:162
msgid "Private messages"
msgstr ""
#. TRANS: Dropdown option in group settings page for allowing private messages.
#: GroupPrivateMessagePlugin.php:164
msgid "Sometimes"
msgstr ""
#. TRANS: Dropdown option in group settings page for allowing private messages.
#: GroupPrivateMessagePlugin.php:166
msgid "Always"
msgstr ""
#. TRANS: Dropdown option in group settings page for allowing private messages.
#: GroupPrivateMessagePlugin.php:168
msgid "Never"
msgstr ""
#. TRANS: Dropdown title in group settings page for if group allows private messages.
#: GroupPrivateMessagePlugin.php:170
msgid "Whether to allow private messages to this group."
msgstr ""
#. TRANS: Dropdown label in group settings page for who can send private messages to the group.
#: GroupPrivateMessagePlugin.php:177
msgid "Private senders"
msgstr ""
#. TRANS: Dropdown option in group settings page for who can send private messages.
#: GroupPrivateMessagePlugin.php:179
msgid "Everyone"
msgstr ""
#. TRANS: Dropdown option in group settings page for who can send private messages.
#: GroupPrivateMessagePlugin.php:181
msgid "Member"
msgstr ""
#. TRANS: Dropdown option in group settings page for who can send private messages.
#: GroupPrivateMessagePlugin.php:183
msgid "Admin"
msgstr ""
#. TRANS: Dropdown title in group settings page for who can send private messages to the group.
#: GroupPrivateMessagePlugin.php:185
msgid "Who can send private messages to the group."
msgstr ""
#. TRANS: Title for action in group actions list.
#: GroupPrivateMessagePlugin.php:290
msgid "Send a direct message to this group."
msgstr ""
#. TRANS: Link text for action in group actions list to send a private message to a group.
#: GroupPrivateMessagePlugin.php:292
msgctxt "LINKTEXT"
msgid "Message"
msgstr ""
#. TRANS: Client exception thrown when a private group message has to be forced.
#: GroupPrivateMessagePlugin.php:370
msgid "Forced notice to private group message."
msgstr ""
#. TRANS: Indicator on the group page that the group is (essentially) private.
#: GroupPrivateMessagePlugin.php:392
msgid "Private"
msgstr ""
#. TRANS: Plugin description.
#: GroupPrivateMessagePlugin.php:418
msgid "Allow posting private messages to groups."
msgstr ""
#. TRANS: Form legend for sending private message to group %s.
#: forms/groupmessage.php:89
#, php-format
msgid "Message to %s"
msgstr ""
#. TRANS: Field label for private group message to group %s.
#: forms/groupmessage.php:128
#, php-format
msgid "Direct message to %s"
msgstr ""
#. TRANS: Indicator for number of chatacters still available for notice.
#: forms/groupmessage.php:141
msgid "Available characters"
msgstr ""
#. TRANS: Send button text for sending private group notice.
#: forms/groupmessage.php:162
msgctxt "Send button for sending notice"
msgid "Send"
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,6 +18,6 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#. TRANS: Plugin description. #. TRANS: Plugin description.
#: ImageMagickPlugin.php:78 #: ImageMagickPlugin.php:145
msgid "Use ImageMagick for some more image support." msgid "Use ImageMagick for some more image support."
msgstr "" msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,6 +17,11 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n" "Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#. TRANS: E-mail subject in case of an error.
#: lib/imapmailhandler.php:31
msgid "Error"
msgstr ""
#. TRANS: Exception thrown when the ImapManager is used incorrectly in the code. #. TRANS: Exception thrown when the ImapManager is used incorrectly in the code.
#: lib/imapmanager.php:52 #: lib/imapmanager.php:52
msgid "" msgid ""
@@ -24,11 +29,6 @@ msgid ""
"\"get()\" method." "\"get()\" method."
msgstr "" msgstr ""
#. TRANS: E-mail subject in case of an error.
#: lib/imapmailhandler.php:31
msgid "Error"
msgstr ""
#. TRANS: Exception thrown when configuration of the IMAP plugin is incorrect. #. TRANS: Exception thrown when configuration of the IMAP plugin is incorrect.
#: ImapPlugin.php:57 #: ImapPlugin.php:57
msgid "A mailbox must be specified." msgid "A mailbox must be specified."

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,6 +17,11 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n" "Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#. TRANS: Plugin description.
#: LinkPreviewPlugin.php:42
msgid "UI extension for previewing thumbnails from links."
msgstr ""
#. TRANS: Client error displayed when the session token does not match or is not given. #. TRANS: Client error displayed when the session token does not match or is not given.
#: actions/oembedproxy.php:58 #: actions/oembedproxy.php:58
msgid "There was a problem with your session token. Try again, please." msgid "There was a problem with your session token. Try again, please."
@@ -31,8 +36,3 @@ msgstr ""
#: actions/oembedproxy.php:71 #: actions/oembedproxy.php:71
msgid "Invalid URL." msgid "Invalid URL."
msgstr "" msgstr ""
#. TRANS: Plugin description.
#: LinkPreviewPlugin.php:42
msgid "UI extension for previewing thumbnails from links."
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,6 +17,62 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n" "Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: lib/util.php:211
msgid "linked to this from <a href=\""
msgstr ""
#: lib/util.php:426
msgid "Favor"
msgstr ""
#. TRANS: Title of Linkback settings page for a user.
#: actions/linkbacksettings.php:47
msgctxt "TITLE"
msgid "Linkback settings"
msgstr ""
#. TRANS: Form instructions for Linkback settings.
#: actions/linkbacksettings.php:58
msgid ""
"Linkbacks inform post authors when you link to them. You can disable this "
"feature here."
msgstr ""
#: actions/linkbacksettings.php:71
msgctxt "LEGEND"
msgid "Preferences"
msgstr ""
#. TRANS: Button text to save OpenID prefs
#: actions/linkbacksettings.php:74
msgctxt "BUTTON"
msgid "Save"
msgstr ""
#: actions/linkbacksettings.php:89
msgid "Linkback preferences saved."
msgstr ""
#: actions/webmention.php:42 actions/webmention.php:43
msgid "\"source\" is missing"
msgstr ""
#: actions/webmention.php:47 actions/webmention.php:48
msgid "\"target\" is missing"
msgstr ""
#: actions/webmention.php:53 actions/webmention.php:54
msgid "Source does not link to target."
msgstr ""
#: actions/webmention.php:59 actions/webmention.php:60
msgid "Target not found"
msgstr ""
#: actions/webmention.php:65 actions/webmention.php:66
msgid "An error occured while saving."
msgstr ""
#. TRANS: Trackback title. #. TRANS: Trackback title.
#. TRANS: %1$s is a profile nickname, %2$s is a timestamp. #. TRANS: %1$s is a profile nickname, %2$s is a timestamp.
#: LinkbackPlugin.php:318 #: LinkbackPlugin.php:318
@@ -49,59 +105,3 @@ msgstr ""
#, php-format #, php-format
msgid "Sent from %s via Linkback" msgid "Sent from %s via Linkback"
msgstr "" msgstr ""
#: lib/util.php:276
msgid "linked to this from <a href=\""
msgstr ""
#: lib/util.php:522
msgid "Favor"
msgstr ""
#: actions/webmention.php:42 actions/webmention.php:43
msgid "\"source\" is missing"
msgstr ""
#: actions/webmention.php:47 actions/webmention.php:48
msgid "\"target\" is missing"
msgstr ""
#: actions/webmention.php:53 actions/webmention.php:54
msgid "Source does not link to target."
msgstr ""
#: actions/webmention.php:59 actions/webmention.php:60
msgid "Target not found"
msgstr ""
#: actions/webmention.php:65 actions/webmention.php:66
msgid "An error occured while saving."
msgstr ""
#. TRANS: Title of Linkback settings page for a user.
#: actions/linkbacksettings.php:47
msgctxt "TITLE"
msgid "Linkback settings"
msgstr ""
#. TRANS: Form instructions for Linkback settings.
#: actions/linkbacksettings.php:58
msgid ""
"Linkbacks inform post authors when you link to them. You can disable this "
"feature here."
msgstr ""
#: actions/linkbacksettings.php:71
msgctxt "LEGEND"
msgid "Preferences"
msgstr ""
#. TRANS: Button text to save OpenID prefs
#: actions/linkbacksettings.php:74
msgctxt "BUTTON"
msgid "Save"
msgstr ""
#: actions/linkbacksettings.php:89
msgid "Linkback preferences saved."
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,23 +17,6 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n" "Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#. TRANS: Title for map widget.
#. TRANS: %s is a user name.
#: actions/usermap.php:66
#, php-format
msgid "%s map"
msgstr ""
#. TRANS: Client error displayed when referring to a non-existing user.
#: actions/map.php:72
msgid "No such user."
msgstr ""
#. TRANS: Error message displayed when referring to a user without a profile.
#: actions/map.php:79
msgid "User has no profile."
msgstr ""
#. TRANS: Page title. #. TRANS: Page title.
#. TRANS: %s is a user nickname. #. TRANS: %s is a user nickname.
#: actions/allmap.php:66 #: actions/allmap.php:66
@@ -48,6 +31,23 @@ msgstr ""
msgid "%1$s friends map, page %2$d" msgid "%1$s friends map, page %2$d"
msgstr "" msgstr ""
#. TRANS: Client error displayed when referring to a non-existing user.
#: actions/map.php:72
msgid "No such user."
msgstr ""
#. TRANS: Error message displayed when referring to a user without a profile.
#: actions/map.php:79
msgid "User has no profile."
msgstr ""
#. TRANS: Title for map widget.
#. TRANS: %s is a user name.
#: actions/usermap.php:66
#, php-format
msgid "%s map"
msgstr ""
#. TRANS: Header for Map widget that displays a map with geodata for notices. #. TRANS: Header for Map widget that displays a map with geodata for notices.
#: MapstractionPlugin.php:151 #: MapstractionPlugin.php:151
msgid "Map" msgid "Map"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#. TRANS: Plugin description. #. TRANS: Plugin description.
#: MemcachedPlugin.php:278 #: MemcachedPlugin.php:270
msgid "" msgid ""
"Use <a href=\"http://memcached.org/\">Memcached</a> to cache query results." "Use <a href=\"http://memcached.org/\">Memcached</a> to cache query results."
msgstr "" msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,6 +18,6 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#. TRANS: Client exception thrown when notice content triggers the spam filter. #. TRANS: Client exception thrown when notice content triggers the spam filter.
#: MollomPlugin.php:85 #: MollomPlugin.php:87
msgid "Spam Detected." msgid "Spam Detected."
msgstr "" msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

File diff suppressed because it is too large Load Diff

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,239 +17,6 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n" "Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#. TRANS: Client exception thrown when an action is not available.
#: OpenIDPlugin.php:143
msgid "Unavailable action."
msgstr ""
#. TRANS: Tooltip for main menu option "Login"
#: OpenIDPlugin.php:192
msgctxt "TOOLTIP"
msgid "Login to the site."
msgstr ""
#. TRANS: Main menu option when not logged in to log in
#: OpenIDPlugin.php:195
msgctxt "MENU"
msgid "Login"
msgstr ""
#. TRANS: Tooltip for main menu option "Help"
#: OpenIDPlugin.php:200
msgctxt "TOOLTIP"
msgid "Help me!"
msgstr ""
#. TRANS: Main menu option for help on the StatusNet site
#: OpenIDPlugin.php:203
msgctxt "MENU"
msgid "Help"
msgstr ""
#. TRANS: Tooltip for main menu option "Search"
#: OpenIDPlugin.php:209
msgctxt "TOOLTIP"
msgid "Search for people or text."
msgstr ""
#. TRANS: Main menu option when logged in or when the StatusNet instance is not private
#: OpenIDPlugin.php:212
msgctxt "MENU"
msgid "Search"
msgstr ""
#. TRANS: OpenID plugin menu item on site logon page.
#. TRANS: OpenID plugin menu item on user settings page.
#. TRANS: OpenID configuration menu item.
#: OpenIDPlugin.php:269 OpenIDPlugin.php:305 OpenIDPlugin.php:479
#: OpenIDPlugin.php:559
msgctxt "MENU"
msgid "OpenID"
msgstr ""
#. TRANS: OpenID plugin tooltip for logon menu item.
#: OpenIDPlugin.php:271
msgid "Login or register with OpenID."
msgstr ""
#. TRANS: OpenID plugin tooltip for user settings menu item.
#: OpenIDPlugin.php:307
msgid "Add or remove OpenIDs."
msgstr ""
#. TRANS: Page notice for logged in users to try and get them to add an OpenID account to their StatusNet account.
#. TRANS: This message contains Markdown links in the form (description)[link].
#: OpenIDPlugin.php:421
#, php-format
msgid ""
"(Have an [OpenID](http://openid.net/)? [Add an OpenID to your account]"
"(%%action.openidsettings%%)!"
msgstr ""
#. TRANS: Page notice for anonymous users to try and get them to register with an OpenID account.
#. TRANS: This message contains Markdown links in the form (description)[link].
#: OpenIDPlugin.php:426
#, php-format
msgid ""
"(Have an [OpenID](http://openid.net/)? Try our [OpenID registration]"
"(%%action.openidlogin%%)!)"
msgstr ""
#. TRANS: Page notice on the login page to try and get them to log on with an OpenID account.
#. TRANS: This message contains Markdown links in the form (description)[link].
#: OpenIDPlugin.php:434
#, php-format
msgid ""
"(Have an [OpenID](http://openid.net/)? Try our [OpenID login](%%action."
"openidlogin%%)!)"
msgstr ""
#. TRANS: Tooltip for OpenID configuration menu item.
#: OpenIDPlugin.php:561
msgid "OpenID configuration."
msgstr ""
#. TRANS: Plugin description.
#: OpenIDPlugin.php:607
msgid "Use <a href=\"http://openid.net/\">OpenID</a> to login to the site."
msgstr ""
#. TRANS: button label for OAuth authorization page when needing OpenID authentication first.
#. TRANS: Button text to continue OpenID identity verification.
#: OpenIDPlugin.php:617 actions/openidtrust.php:136
msgctxt "BUTTON"
msgid "Continue"
msgstr ""
#. TRANS: OpenID plugin logon form legend.
#: OpenIDPlugin.php:634 actions/openidlogin.php:132
msgctxt "LEGEND"
msgid "OpenID login"
msgstr ""
#. TRANS: Field label.
#: OpenIDPlugin.php:642
msgid "OpenID provider"
msgstr ""
#. TRANS: Form guide.
#: OpenIDPlugin.php:651 actions/openidlogin.php:149
msgid "Enter your username."
msgstr ""
#. TRANS: Form guide.
#: OpenIDPlugin.php:653 actions/openidlogin.php:151
msgid "You will be sent to the provider's site for authentication."
msgstr ""
#. TRANS: OpenID plugin logon form field label.
#: OpenIDPlugin.php:657 actions/openidlogin.php:155
#: actions/openidsettings.php:97
msgid "OpenID URL"
msgstr ""
#. TRANS: OpenID plugin logon form field instructions.
#. TRANS: OpenID plugin logon form field title.
#: OpenIDPlugin.php:660 actions/openidlogin.php:158
msgid "Your OpenID URL."
msgstr ""
#. TRANS: Title for OpenID bridge administration page.
#: actions/openidadminpanel.php:47
msgctxt "TITLE"
msgid "OpenID Settings"
msgstr ""
#. TRANS: Page instructions.
#: actions/openidadminpanel.php:58
msgid "OpenID settings"
msgstr ""
#. TRANS: Client error displayed when OpenID provider URL is too long.
#: actions/openidadminpanel.php:139
msgid "Invalid provider URL. Maximum length is 255 characters."
msgstr ""
#. TRANS: Client error displayed when Launchpad team name is too long.
#: actions/openidadminpanel.php:146
msgid "Invalid team name. Maximum length is 255 characters."
msgstr ""
#. TRANS: Fieldset legend.
#: actions/openidadminpanel.php:200
msgctxt "LEGEND"
msgid "Trusted provider"
msgstr ""
#. TRANS: Form guide.
#: actions/openidadminpanel.php:205
msgid ""
"By default, users are allowed to authenticate with any OpenID provider. If "
"you are using your own OpenID service for shared sign-in, you can restrict "
"access to only your own users here."
msgstr ""
#. TRANS: Field label.
#: actions/openidadminpanel.php:215
msgid "Provider URL"
msgstr ""
#. TRANS: Field title.
#: actions/openidadminpanel.php:217
msgid ""
"All OpenID logins will be sent to this URL; other providers may not be used."
msgstr ""
#: actions/openidadminpanel.php:226
msgid "Append a username to base URL"
msgstr ""
#. TRANS: Checkbox title.
#: actions/openidadminpanel.php:229
msgid ""
"Login form will show the base URL and prompt for a username to add at the "
"end. Use when OpenID provider URL should be the profile page for individual "
"users."
msgstr ""
#. TRANS: Field label.
#: actions/openidadminpanel.php:238
msgid "Required team"
msgstr ""
#. TRANS: Field title.
#: actions/openidadminpanel.php:240
msgid "Only allow logins from users in the given team (Launchpad extension)."
msgstr ""
#. TRANS: Fieldset legend.
#: actions/openidadminpanel.php:253
msgctxt "LEGEND"
msgid "Options"
msgstr ""
#: actions/openidadminpanel.php:262
msgid "Enable OpenID-only mode"
msgstr ""
#. TRANS: Checkbox title.
#: actions/openidadminpanel.php:265
msgid ""
"Require all users to login via OpenID. Warning: disables password "
"authentication for all users!"
msgstr ""
#. TRANS: Button text to save OpenID prefs
#: actions/openidadminpanel.php:285 actions/openidsettings.php:248
msgctxt "BUTTON"
msgid "Save"
msgstr ""
#. TRANS: Button title to save OpenID settings.
#: actions/openidadminpanel.php:289
msgid "Save OpenID settings."
msgstr ""
#. TRANS: Client error message trying to log on with OpenID while already logged on. #. TRANS: Client error message trying to log on with OpenID while already logged on.
#: actions/openidlogin.php:33 actions/finishopenidlogin.php:37 #: actions/openidlogin.php:33 actions/finishopenidlogin.php:37
msgid "Already logged in." msgid "Already logged in."
@@ -277,12 +44,40 @@ msgctxt "TITLE"
msgid "OpenID Login" msgid "OpenID Login"
msgstr "" msgstr ""
#. TRANS: OpenID plugin logon form legend.
#: actions/openidlogin.php:132 OpenIDPlugin.php:634
msgctxt "LEGEND"
msgid "OpenID login"
msgstr ""
#. TRANS: Field label. #. TRANS: Field label.
#: actions/openidlogin.php:140 #: actions/openidlogin.php:140
msgctxt "LABEL" msgctxt "LABEL"
msgid "OpenID provider" msgid "OpenID provider"
msgstr "" msgstr ""
#. TRANS: Form guide.
#: actions/openidlogin.php:149 OpenIDPlugin.php:651
msgid "Enter your username."
msgstr ""
#. TRANS: Form guide.
#: actions/openidlogin.php:151 OpenIDPlugin.php:653
msgid "You will be sent to the provider's site for authentication."
msgstr ""
#. TRANS: OpenID plugin logon form field label.
#: actions/openidlogin.php:155 actions/openidsettings.php:97
#: OpenIDPlugin.php:657
msgid "OpenID URL"
msgstr ""
#. TRANS: OpenID plugin logon form field title.
#. TRANS: OpenID plugin logon form field instructions.
#: actions/openidlogin.php:158 OpenIDPlugin.php:660
msgid "Your OpenID URL."
msgstr ""
#. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. #. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie.
#: actions/openidlogin.php:163 #: actions/openidlogin.php:163
msgid "Remember me" msgid "Remember me"
@@ -299,70 +94,6 @@ msgctxt "BUTTON"
msgid "Login" msgid "Login"
msgstr "" msgstr ""
#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403).
#. TRANS: %s is a request identity.
#: actions/openidserver.php:113
#, php-format
msgid "You are not authorized to use the identity %s."
msgstr ""
#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500).
#: actions/openidserver.php:136
msgid "Just an OpenID provider. Nothing to see here, move along..."
msgstr ""
#. TRANS: Error message displayed when trying to perform an action that requires a logged in user.
#: actions/finishaddopenid.php:60 actions/finishsynchopenid.php:55
msgid "Not logged in."
msgstr ""
#. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled.
#: actions/finishaddopenid.php:81 actions/finishopenidlogin.php:254
#: actions/finishsynchopenid.php:76
msgid "OpenID authentication cancelled."
msgstr ""
#. TRANS: OpenID authentication failed; display the error message. %s is the error message.
#: actions/finishaddopenid.php:87 actions/finishopenidlogin.php:258
#: actions/finishsynchopenid.php:82
#, php-format
msgid "OpenID authentication failed: %s."
msgstr ""
#. TRANS: OpenID authentication error.
#. TRANS: Message displayed when OpenID authentication is aborted.
#. TRANS: OpenID authentication error.
#: actions/finishaddopenid.php:104 actions/finishopenidlogin.php:279
#: actions/finishsynchopenid.php:99
msgid ""
"OpenID authentication aborted: You are not allowed to login to this site."
msgstr ""
#. TRANS: Message in case a user tries to add an OpenID that is already connected to them.
#: actions/finishaddopenid.php:115
msgid "You already have this OpenID!"
msgstr ""
#. TRANS: Message in case a user tries to add an OpenID that is already used by another user.
#: actions/finishaddopenid.php:118
msgid "Someone else already has this OpenID."
msgstr ""
#. TRANS: Message in case the OpenID object cannot be connected to the user.
#: actions/finishaddopenid.php:131
msgid "Error connecting user."
msgstr ""
#. TRANS: Message in case the user or the user profile cannot be saved in StatusNet.
#: actions/finishaddopenid.php:139 actions/finishsynchopenid.php:112
msgid "Error updating profile."
msgstr ""
#. TRANS: Title after getting the status of the OpenID authorisation request.
#: actions/finishaddopenid.php:181
msgid "OpenID Login"
msgstr ""
#. TRANS: Message given when there is a problem with the user's session token. #. TRANS: Message given when there is a problem with the user's session token.
#: actions/finishopenidlogin.php:42 #: actions/finishopenidlogin.php:42
msgid "There was a problem with your session token. Try again, please." msgid "There was a problem with your session token. Try again, please."
@@ -474,6 +205,27 @@ msgctxt "BUTTON"
msgid "Connect" msgid "Connect"
msgstr "" msgstr ""
#. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled.
#: actions/finishopenidlogin.php:254 actions/finishaddopenid.php:81
#: actions/finishsynchopenid.php:76
msgid "OpenID authentication cancelled."
msgstr ""
#. TRANS: OpenID authentication failed; display the error message. %s is the error message.
#: actions/finishopenidlogin.php:258 actions/finishaddopenid.php:87
#: actions/finishsynchopenid.php:82
#, php-format
msgid "OpenID authentication failed: %s."
msgstr ""
#. TRANS: Message displayed when OpenID authentication is aborted.
#. TRANS: OpenID authentication error.
#: actions/finishopenidlogin.php:279 actions/finishaddopenid.php:104
#: actions/finishsynchopenid.php:99
msgid ""
"OpenID authentication aborted: You are not allowed to login to this site."
msgstr ""
#. TRANS: OpenID plugin message. No new user registration is allowed on the site. #. TRANS: OpenID plugin message. No new user registration is allowed on the site.
#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided. #. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided.
#: actions/finishopenidlogin.php:335 actions/finishopenidlogin.php:344 #: actions/finishopenidlogin.php:335 actions/finishopenidlogin.php:344
@@ -506,6 +258,182 @@ msgstr ""
msgid "Error connecting user to OpenID." msgid "Error connecting user to OpenID."
msgstr "" msgstr ""
#. TRANS: Error message displayed when trying to perform an action that requires a logged in user.
#: actions/finishaddopenid.php:60 actions/finishsynchopenid.php:55
msgid "Not logged in."
msgstr ""
#. TRANS: Message in case a user tries to add an OpenID that is already connected to them.
#: actions/finishaddopenid.php:115
msgid "You already have this OpenID!"
msgstr ""
#. TRANS: Message in case a user tries to add an OpenID that is already used by another user.
#: actions/finishaddopenid.php:118
msgid "Someone else already has this OpenID."
msgstr ""
#. TRANS: Message in case the OpenID object cannot be connected to the user.
#: actions/finishaddopenid.php:131
msgid "Error connecting user."
msgstr ""
#. TRANS: Message in case the user or the user profile cannot be saved in StatusNet.
#: actions/finishaddopenid.php:139 actions/finishsynchopenid.php:112
msgid "Error updating profile."
msgstr ""
#. TRANS: Title after getting the status of the OpenID authorisation request.
#: actions/finishaddopenid.php:181
msgid "OpenID Login"
msgstr ""
#. TRANS: Title after getting the status of the OpenID authorisation request.
#. TODO update after understanding the function ^
#: actions/finishsynchopenid.php:152
msgid "OpenID Synchronization"
msgstr ""
#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403).
#. TRANS: %s is a request identity.
#: actions/openidserver.php:113
#, php-format
msgid "You are not authorized to use the identity %s."
msgstr ""
#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500).
#: actions/openidserver.php:134
msgid "Just an OpenID provider. Nothing to see here, move along..."
msgstr ""
#. TRANS: Title for OpenID bridge administration page.
#: actions/openidadminpanel.php:47
msgctxt "TITLE"
msgid "OpenID Settings"
msgstr ""
#. TRANS: Page instructions.
#: actions/openidadminpanel.php:58
msgid "OpenID settings"
msgstr ""
#. TRANS: Client error displayed when OpenID provider URL is too long.
#: actions/openidadminpanel.php:139
msgid "Invalid provider URL. Maximum length is 255 characters."
msgstr ""
#. TRANS: Client error displayed when Launchpad team name is too long.
#: actions/openidadminpanel.php:146
msgid "Invalid team name. Maximum length is 255 characters."
msgstr ""
#. TRANS: Fieldset legend.
#: actions/openidadminpanel.php:200
msgctxt "LEGEND"
msgid "Trusted provider"
msgstr ""
#. TRANS: Form guide.
#: actions/openidadminpanel.php:205
msgid ""
"By default, users are allowed to authenticate with any OpenID provider. If "
"you are using your own OpenID service for shared sign-in, you can restrict "
"access to only your own users here."
msgstr ""
#. TRANS: Field label.
#: actions/openidadminpanel.php:215
msgid "Provider URL"
msgstr ""
#. TRANS: Field title.
#: actions/openidadminpanel.php:217
msgid ""
"All OpenID logins will be sent to this URL; other providers may not be used."
msgstr ""
#: actions/openidadminpanel.php:226
msgid "Append a username to base URL"
msgstr ""
#. TRANS: Checkbox title.
#: actions/openidadminpanel.php:229
msgid ""
"Login form will show the base URL and prompt for a username to add at the "
"end. Use when OpenID provider URL should be the profile page for individual "
"users."
msgstr ""
#. TRANS: Field label.
#: actions/openidadminpanel.php:238
msgid "Required team"
msgstr ""
#. TRANS: Field title.
#: actions/openidadminpanel.php:240
msgid "Only allow logins from users in the given team (Launchpad extension)."
msgstr ""
#. TRANS: Fieldset legend.
#: actions/openidadminpanel.php:253
msgctxt "LEGEND"
msgid "Options"
msgstr ""
#: actions/openidadminpanel.php:262
msgid "Enable OpenID-only mode"
msgstr ""
#. TRANS: Checkbox title.
#: actions/openidadminpanel.php:265
msgid ""
"Require all users to login via OpenID. Warning: disables password "
"authentication for all users!"
msgstr ""
#. TRANS: Button text to save OpenID prefs
#: actions/openidadminpanel.php:285 actions/openidsettings.php:248
msgctxt "BUTTON"
msgid "Save"
msgstr ""
#. TRANS: Button title to save OpenID settings.
#: actions/openidadminpanel.php:289
msgid "Save OpenID settings."
msgstr ""
#. TRANS: Title for identity verification page.
#: actions/openidtrust.php:51
msgid "OpenID Identity Verification"
msgstr ""
#. TRANS: Client error when visiting page directly.
#: actions/openidtrust.php:69
msgid ""
"This page should only be reached during OpenID processing, not directly."
msgstr ""
#. TRANS: Page notice. %s is a trustroot name.
#: actions/openidtrust.php:118
#, php-format
msgid ""
"%s has asked to verify your identity. Click Continue to verify your identity "
"and login without creating a new password."
msgstr ""
#. TRANS: Button text to continue OpenID identity verification.
#. TRANS: button label for OAuth authorization page when needing OpenID authentication first.
#: actions/openidtrust.php:136 OpenIDPlugin.php:617
msgctxt "BUTTON"
msgid "Continue"
msgstr ""
#. TRANS: Button text to cancel OpenID identity verification.
#: actions/openidtrust.php:138
msgctxt "BUTTON"
msgid "Cancel"
msgstr ""
#. TRANS: Title of OpenID settings page for a user. #. TRANS: Title of OpenID settings page for a user.
#: actions/openidsettings.php:49 #: actions/openidsettings.php:49
msgctxt "TITLE" msgctxt "TITLE"
@@ -634,100 +562,171 @@ msgstr ""
msgid "OpenID preferences saved." msgid "OpenID preferences saved."
msgstr "" msgstr ""
#. TRANS: Title for identity verification page. #: openid.php:165
#: actions/openidtrust.php:51
msgid "OpenID Identity Verification"
msgstr ""
#. TRANS: Client error when visiting page directly.
#: actions/openidtrust.php:69
msgid ""
"This page should only be reached during OpenID processing, not directly."
msgstr ""
#. TRANS: Page notice. %s is a trustroot name.
#: actions/openidtrust.php:118
#, php-format
msgid ""
"%s has asked to verify your identity. Click Continue to verify your identity "
"and login without creating a new password."
msgstr ""
#. TRANS: Button text to cancel OpenID identity verification.
#: actions/openidtrust.php:138
msgctxt "BUTTON"
msgid "Cancel"
msgstr ""
#. TRANS: Title after getting the status of the OpenID authorisation request.
#. TODO update after understanding the function ^
#: actions/finishsynchopenid.php:152
msgid "OpenID Synchronization"
msgstr ""
#: openid.php:162
msgid "No valid URL provided for OpenID." msgid "No valid URL provided for OpenID."
msgstr "" msgstr ""
#. TRANS: OpenID plugin server error. #. TRANS: OpenID plugin server error.
#: openid.php:169 #: openid.php:172
msgid "Cannot instantiate OpenID consumer object." msgid "Cannot instantiate OpenID consumer object."
msgstr "" msgstr ""
#. TRANS: OpenID plugin message. Given when an OpenID is not valid. #. TRANS: OpenID plugin message. Given when an OpenID is not valid.
#: openid.php:180 #: openid.php:183
msgid "Not a valid OpenID." msgid "Not a valid OpenID."
msgstr "" msgstr ""
#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. #. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails.
#. TRANS: %s is the failure message. #. TRANS: %s is the failure message.
#: openid.php:185 #: openid.php:188
#, php-format #, php-format
msgid "OpenID failure: %s." msgid "OpenID failure: %s."
msgstr "" msgstr ""
#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. #. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected.
#. TRANS: %s is the failure message. #. TRANS: %s is the failure message.
#: openid.php:240 #: openid.php:243
#, php-format #, php-format
msgid "Could not redirect to server: %s." msgid "Could not redirect to server: %s."
msgstr "" msgstr ""
#. TRANS: OpenID plugin user instructions. #. TRANS: OpenID plugin user instructions.
#: openid.php:284 #: openid.php:283
msgid "" msgid ""
"This form should automatically submit itself. If not, click the submit " "This form should automatically submit itself. If not, click the submit "
"button to go to your OpenID provider." "button to go to your OpenID provider."
msgstr "" msgstr ""
#. TRANS: OpenID plugin server error. #. TRANS: OpenID plugin server error.
#: openid.php:321 #: openid.php:320
msgid "Error saving the profile." msgid "Error saving the profile."
msgstr "" msgstr ""
#. TRANS: OpenID plugin server error. #. TRANS: OpenID plugin server error.
#: openid.php:333 #: openid.php:332
msgid "Error saving the user." msgid "Error saving the user."
msgstr "" msgstr ""
#. TRANS: OpenID plugin client exception (403). #. TRANS: OpenID plugin client exception (403).
#: openid.php:363 #: openid.php:362
msgid "Unauthorized URL used for OpenID login." msgid "Unauthorized URL used for OpenID login."
msgstr "" msgstr ""
#. TRANS: Title #. TRANS: Title
#: openid.php:411 #: openid.php:410
msgid "OpenID Login Submission" msgid "OpenID Login Submission"
msgstr "" msgstr ""
#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. #. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider.
#: openid.php:422 #: openid.php:421
msgid "Requesting authorization from your login provider..." msgid "Requesting authorization from your login provider..."
msgstr "" msgstr ""
#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. #. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider.
#: openid.php:426 #: openid.php:425
msgid "" msgid ""
"If you are not redirected to your login provider in a few seconds, try " "If you are not redirected to your login provider in a few seconds, try "
"pushing the button below." "pushing the button below."
msgstr "" msgstr ""
#. TRANS: Client exception thrown when an action is not available.
#: OpenIDPlugin.php:143
msgid "Unavailable action."
msgstr ""
#. TRANS: Tooltip for main menu option "Login"
#: OpenIDPlugin.php:192
msgctxt "TOOLTIP"
msgid "Login to the site."
msgstr ""
#. TRANS: Main menu option when not logged in to log in
#: OpenIDPlugin.php:195
msgctxt "MENU"
msgid "Login"
msgstr ""
#. TRANS: Tooltip for main menu option "Help"
#: OpenIDPlugin.php:200
msgctxt "TOOLTIP"
msgid "Help me!"
msgstr ""
#. TRANS: Main menu option for help on the StatusNet site
#: OpenIDPlugin.php:203
msgctxt "MENU"
msgid "Help"
msgstr ""
#. TRANS: Tooltip for main menu option "Search"
#: OpenIDPlugin.php:209
msgctxt "TOOLTIP"
msgid "Search for people or text."
msgstr ""
#. TRANS: Main menu option when logged in or when the StatusNet instance is not private
#: OpenIDPlugin.php:212
msgctxt "MENU"
msgid "Search"
msgstr ""
#. TRANS: OpenID plugin menu item on site logon page.
#. TRANS: OpenID plugin menu item on user settings page.
#. TRANS: OpenID configuration menu item.
#: OpenIDPlugin.php:269 OpenIDPlugin.php:305 OpenIDPlugin.php:479
#: OpenIDPlugin.php:559
msgctxt "MENU"
msgid "OpenID"
msgstr ""
#. TRANS: OpenID plugin tooltip for logon menu item.
#: OpenIDPlugin.php:271
msgid "Login or register with OpenID."
msgstr ""
#. TRANS: OpenID plugin tooltip for user settings menu item.
#: OpenIDPlugin.php:307
msgid "Add or remove OpenIDs."
msgstr ""
#. TRANS: Page notice for logged in users to try and get them to add an OpenID account to their StatusNet account.
#. TRANS: This message contains Markdown links in the form (description)[link].
#: OpenIDPlugin.php:421
#, php-format
msgid ""
"(Have an [OpenID](http://openid.net/)? [Add an OpenID to your account]"
"(%%action.openidsettings%%)!"
msgstr ""
#. TRANS: Page notice for anonymous users to try and get them to register with an OpenID account.
#. TRANS: This message contains Markdown links in the form (description)[link].
#: OpenIDPlugin.php:426
#, php-format
msgid ""
"(Have an [OpenID](http://openid.net/)? Try our [OpenID registration]"
"(%%action.openidlogin%%)!)"
msgstr ""
#. TRANS: Page notice on the login page to try and get them to log on with an OpenID account.
#. TRANS: This message contains Markdown links in the form (description)[link].
#: OpenIDPlugin.php:434
#, php-format
msgid ""
"(Have an [OpenID](http://openid.net/)? Try our [OpenID login](%%action."
"openidlogin%%)!)"
msgstr ""
#. TRANS: Tooltip for OpenID configuration menu item.
#: OpenIDPlugin.php:561
msgid "OpenID configuration."
msgstr ""
#. TRANS: Plugin description.
#: OpenIDPlugin.php:607
msgid "Use <a href=\"http://openid.net/\">OpenID</a> to login to the site."
msgstr ""
#. TRANS: Field label.
#: OpenIDPlugin.php:642
msgid "OpenID provider"
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -42,6 +42,35 @@ msgstr ""
msgid "Poll: %s" msgid "Poll: %s"
msgstr "" msgstr ""
#. TRANS: Field label on the page to create a poll.
#: forms/newpoll.php:109
msgid "Question"
msgstr ""
#. TRANS: Field title on the page to create a poll.
#: forms/newpoll.php:112
msgid "What question are people answering?"
msgstr ""
#. TRANS: Field label for an answer option on the page to create a poll.
#. TRANS: %d is the option number.
#: forms/newpoll.php:134
#, php-format
msgid "Option %d"
msgstr ""
#. TRANS: Button text for saving a new poll.
#: forms/newpoll.php:163
msgctxt "BUTTON"
msgid "Save"
msgstr ""
#. TRANS: Button text for submitting a poll response.
#: forms/pollresponse.php:126
msgctxt "BUTTON"
msgid "Submit"
msgstr ""
#. TRANS: Title for poll page. #. TRANS: Title for poll page.
#: actions/newpoll.php:64 #: actions/newpoll.php:64
msgid "New poll" msgid "New poll"
@@ -66,6 +95,25 @@ msgstr ""
msgid "Notice posted" msgid "Notice posted"
msgstr "" msgstr ""
#. TRANS: Page title for poll response.
#: actions/respondpoll.php:64
msgid "Poll response"
msgstr ""
#: actions/respondpoll.php:89
msgid "You must be logged in to respond to a poll."
msgstr ""
#. TRANS: Client exception thrown trying to respond to a non-existing poll.
#: actions/respondpoll.php:102
msgid "Invalid or missing poll."
msgstr ""
#. TRANS: Page title after sending a poll response.
#: actions/respondpoll.php:162
msgid "Poll results"
msgstr ""
#. TRANS: Client exception thrown trying to view a non-existing poll. #. TRANS: Client exception thrown trying to view a non-existing poll.
#: actions/showpoll.php:59 #: actions/showpoll.php:59
msgid "No such poll." msgid "No such poll."
@@ -91,25 +139,6 @@ msgstr ""
msgid "Set your poll preferences" msgid "Set your poll preferences"
msgstr "" msgstr ""
#. TRANS: Page title for poll response.
#: actions/respondpoll.php:64
msgid "Poll response"
msgstr ""
#: actions/respondpoll.php:89
msgid "You must be logged in to respond to a poll."
msgstr ""
#. TRANS: Client exception thrown trying to respond to a non-existing poll.
#: actions/respondpoll.php:102
msgid "Invalid or missing poll."
msgstr ""
#. TRANS: Page title after sending a poll response.
#: actions/respondpoll.php:162
msgid "Poll results"
msgstr ""
#. TRANS: Plugin description. #. TRANS: Plugin description.
#: PollPlugin.php:132 #: PollPlugin.php:132
msgid "Simple extension for supporting basic polls." msgid "Simple extension for supporting basic polls."
@@ -157,32 +186,3 @@ msgstr ""
#: PollPlugin.php:471 #: PollPlugin.php:471
msgid "Poll data is missing" msgid "Poll data is missing"
msgstr "" msgstr ""
#. TRANS: Field label on the page to create a poll.
#: forms/newpoll.php:109
msgid "Question"
msgstr ""
#. TRANS: Field title on the page to create a poll.
#: forms/newpoll.php:112
msgid "What question are people answering?"
msgstr ""
#. TRANS: Field label for an answer option on the page to create a poll.
#. TRANS: %d is the option number.
#: forms/newpoll.php:134
#, php-format
msgid "Option %d"
msgstr ""
#. TRANS: Button text for saving a new poll.
#: forms/newpoll.php:163
msgctxt "BUTTON"
msgid "Save"
msgstr ""
#. TRANS: Button text for submitting a poll response.
#: forms/pollresponse.php:126
msgctxt "BUTTON"
msgid "Submit"
msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,36 +18,6 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
#. TRANS: Exception trown when getting a profile for a non-existing ID.
#. TRANS: %s is the provided profile ID.
#. TRANS: Exception thown when getting a profile with a non-existing ID.
#. TRANS: %s is the non-existing profile ID.
#: classes/QnA_Question.php:113 classes/QnA_Answer.php:151
#, php-format
msgid "No profile with ID %s"
msgstr ""
#. TRANS: Number of given answers to a question.
#. TRANS: %s is the number of given answers.
#: classes/QnA_Question.php:200
#, php-format
msgid "%s answer"
msgid_plural "%s answers"
msgstr[0] ""
msgstr[1] ""
#. TRANS: Notification that a question cannot be answered anymore because it is closed.
#: classes/QnA_Question.php:207
msgid "This question is closed."
msgstr ""
#. TRANS: Rendered version of the notice content creating a question.
#. TRANS: %s a link to the question as link description.
#: classes/QnA_Question.php:271
#, php-format
msgid "Question: %s"
msgstr ""
#. TRANS: Exception thown when getting a question with a non-existing ID. #. TRANS: Exception thown when getting a question with a non-existing ID.
#. TRANS: %s is the non-existing question ID. #. TRANS: %s is the non-existing question ID.
#: classes/QnA_Answer.php:140 #: classes/QnA_Answer.php:140
@@ -55,6 +25,15 @@ msgstr ""
msgid "No question with ID %s" msgid "No question with ID %s"
msgstr "" msgstr ""
#. TRANS: Exception thown when getting a profile with a non-existing ID.
#. TRANS: %s is the non-existing profile ID.
#. TRANS: Exception trown when getting a profile for a non-existing ID.
#. TRANS: %s is the provided profile ID.
#: classes/QnA_Answer.php:151 classes/QnA_Question.php:113
#, php-format
msgid "No profile with ID %s"
msgstr ""
#. TRANS: %s is the number of answer revisions. #. TRANS: %s is the number of answer revisions.
#: classes/QnA_Answer.php:196 #: classes/QnA_Answer.php:196
#, php-format #, php-format
@@ -80,6 +59,110 @@ msgstr ""
msgid "answered \"%s\"" msgid "answered \"%s\""
msgstr "" msgstr ""
#. TRANS: Number of given answers to a question.
#. TRANS: %s is the number of given answers.
#: classes/QnA_Question.php:200
#, php-format
msgid "%s answer"
msgid_plural "%s answers"
msgstr[0] ""
msgstr[1] ""
#. TRANS: Notification that a question cannot be answered anymore because it is closed.
#: classes/QnA_Question.php:207
msgid "This question is closed."
msgstr ""
#. TRANS: Rendered version of the notice content creating a question.
#. TRANS: %s a link to the question as link description.
#: classes/QnA_Question.php:271
#, php-format
msgid "Question: %s"
msgstr ""
#. TRANS: Form legend for revising the answer.
#: forms/qnashowquestion.php:106
msgctxt "LEGEND"
msgid "Question"
msgstr ""
#. TRANS: Button text for closing a question.
#: forms/qnashowquestion.php:151
msgctxt "BUTTON"
msgid "Close"
msgstr ""
#. TRANS: Title for button text for closing a question.
#: forms/qnashowquestion.php:155
msgid "Close the question to no one can answer it anymore."
msgstr ""
#. TRANS: Form legend for showing the answer.
#. TRANS: Page title for and answer to a question.
#. TRANS: Page title after sending an answer.
#: forms/qnashowanswer.php:113 actions/qnanewanswer.php:62
#: actions/qnavote.php:63 actions/qnareviseanswer.php:190
#: actions/qnareviseanswer.php:226
msgid "Answer"
msgstr ""
#. TRANS: Button text for marking an answer as "best".
#: forms/qnashowanswer.php:150
msgctxt "BUTTON"
msgid "Best"
msgstr ""
#. TRANS: Title for button text marking an answer as "best".
#: forms/qnashowanswer.php:154
msgid "Mark this answer as the best answer."
msgstr ""
#. TRANS: Field label.
#: forms/qnanewanswer.php:114
msgid "Enter your answer"
msgstr ""
#. TRANS: Button text for submitting a poll response.
#: forms/qnanewanswer.php:125
msgctxt "BUTTON"
msgid "Answer"
msgstr ""
#. TRANS: Button text for submitting a poll response.
#. TRANS: Button text for submitting a revised answer.
#: forms/qnavote.php:118 forms/qnareviseanswer.php:119
msgctxt "BUTTON"
msgid "Submit"
msgstr ""
#. TRANS: Field label for a new question.
#: forms/qnanewquestion.php:110
msgctxt "LABEL"
msgid "Title"
msgstr ""
#. TRANS: Field title for a new question.
#: forms/qnanewquestion.php:113
msgid "The title of your question."
msgstr ""
#. TRANS: Field label for question details.
#: forms/qnanewquestion.php:122
msgctxt "LABEL"
msgid "Description"
msgstr ""
#. TRANS: Field title for question details.
#: forms/qnanewquestion.php:125
msgid "Your question in detail."
msgstr ""
#. TRANS: Button text for saving a new question.
#: forms/qnanewquestion.php:149
msgctxt "BUTTON"
msgid "Save"
msgstr ""
#. TRANS: Exception thrown when performing an unexpected action on a question. #. TRANS: Exception thrown when performing an unexpected action on a question.
#. TRANS: %s is the unpexpected object type. #. TRANS: %s is the unpexpected object type.
#: lib/qnalistitem.php:67 #: lib/qnalistitem.php:67
@@ -98,70 +181,6 @@ msgstr ""
msgid "Answer data is missing." msgid "Answer data is missing."
msgstr "" msgstr ""
#. TRANS: Title for Question page.
#: actions/qnanewquestion.php:62
msgid "New question"
msgstr ""
#. TRANS: Client exception thrown trying to create a Question while not logged in.
#: actions/qnanewquestion.php:82
msgid "You must be logged in to post a question."
msgstr ""
#. TRANS: Client exception thrown trying to create a question without a title.
#: actions/qnanewquestion.php:128
msgid "Question must have a title."
msgstr ""
#. TRANS: Page title after sending a notice.
#: actions/qnanewquestion.php:153
msgid "Question posted"
msgstr ""
#. TRANS: Page title for revising a question
#: actions/qnareviseanswer.php:51
msgid "Revise answer"
msgstr ""
#. TRANS: Client exception thrown trying to answer a question while not logged in.
#: actions/qnareviseanswer.php:74 actions/qnavote.php:85
#: actions/qnanewanswer.php:85
msgid "You must be logged in to answer to a question."
msgstr ""
#. TRANS: Client exception thrown trying to respond to a non-existing question.
#: actions/qnareviseanswer.php:87
msgid "Invalid or missing answer."
msgstr ""
#. TRANS: Form title for sending an answer.
#: actions/qnareviseanswer.php:151
msgctxt "TITLE"
msgid "Answer"
msgstr ""
#. TRANS: Page title after sending an answer.
#. TRANS: Page title for and answer to a question.
#. TRANS: Form legend for showing the answer.
#: actions/qnareviseanswer.php:190 actions/qnareviseanswer.php:226
#: actions/qnavote.php:63 actions/qnanewanswer.php:62
#: forms/qnashowanswer.php:113
msgid "Answer"
msgstr ""
#. TRANS: Client exception thrown trying to respond to a non-existing question.
#: actions/qnavote.php:97 actions/qnaclosequestion.php:88
#: actions/qnanewanswer.php:101
msgid "Invalid or missing question."
msgstr ""
#. TRANS: Page title after sending in a vote for a question or answer.
#. TRANS: Page title after sending an answer.
#: actions/qnavote.php:147 actions/qnaclosequestion.php:140
#: actions/qnanewanswer.php:156
msgid "Answers"
msgstr ""
#. TRANS: Client exception thrown trying to view a non-existing question. #. TRANS: Client exception thrown trying to view a non-existing question.
#: actions/qnashowquestion.php:70 #: actions/qnashowquestion.php:70
msgid "No such question." msgid "No such question."
@@ -209,19 +228,24 @@ msgstr ""
msgid "%1$s's answer to \"%2$s\"" msgid "%1$s's answer to \"%2$s\""
msgstr "" msgstr ""
#. TRANS: Page title for close a question #. TRANS: Client exception thrown trying to answer a question while not logged in.
#: actions/qnaclosequestion.php:52 #: actions/qnanewanswer.php:85 actions/qnavote.php:85
msgid "Close question" #: actions/qnareviseanswer.php:74
msgid "You must be logged in to answer to a question."
msgstr "" msgstr ""
#. TRANS: Client exception thrown trying to close a question when not logged in #. TRANS: Client exception thrown trying to respond to a non-existing question.
#: actions/qnaclosequestion.php:75 #: actions/qnanewanswer.php:101 actions/qnavote.php:97
msgid "You must be logged in to close a question." #: actions/qnaclosequestion.php:88
msgid "Invalid or missing question."
msgstr "" msgstr ""
#. TRANS: Exception thrown trying to close another user's question. #. TRANS: Page title after sending an answer.
#: actions/qnaclosequestion.php:124 #. TRANS: Page title after sending in a vote for a question or answer.
msgid "You did not ask this question." #. TRANS: Page title after sending an answer.
#: actions/qnanewanswer.php:156 actions/qnavote.php:147
#: actions/qnaclosequestion.php:140
msgid "Answers"
msgstr "" msgstr ""
#. TRANS: Page title after an AJAX error occurs on the post answer page. #. TRANS: Page title after an AJAX error occurs on the post answer page.
@@ -235,80 +259,57 @@ msgctxt "TITLE"
msgid "Your answer" msgid "Your answer"
msgstr "" msgstr ""
#. TRANS: Field label for a new question. #. TRANS: Page title for revising a question
#: forms/qnanewquestion.php:110 #: actions/qnareviseanswer.php:51
msgctxt "LABEL" msgid "Revise answer"
msgid "Title"
msgstr "" msgstr ""
#. TRANS: Field title for a new question. #. TRANS: Client exception thrown trying to respond to a non-existing question.
#: forms/qnanewquestion.php:113 #: actions/qnareviseanswer.php:87
msgid "The title of your question." msgid "Invalid or missing answer."
msgstr "" msgstr ""
#. TRANS: Field label for question details. #. TRANS: Form title for sending an answer.
#: forms/qnanewquestion.php:122 #: actions/qnareviseanswer.php:151
msgctxt "LABEL" msgctxt "TITLE"
msgid "Description"
msgstr ""
#. TRANS: Field title for question details.
#: forms/qnanewquestion.php:125
msgid "Your question in detail."
msgstr ""
#. TRANS: Button text for saving a new question.
#: forms/qnanewquestion.php:149
msgctxt "BUTTON"
msgid "Save"
msgstr ""
#. TRANS: Button text for submitting a revised answer.
#. TRANS: Button text for submitting a poll response.
#: forms/qnareviseanswer.php:119 forms/qnavote.php:118
msgctxt "BUTTON"
msgid "Submit"
msgstr ""
#. TRANS: Form legend for revising the answer.
#: forms/qnashowquestion.php:106
msgctxt "LEGEND"
msgid "Question"
msgstr ""
#. TRANS: Button text for closing a question.
#: forms/qnashowquestion.php:151
msgctxt "BUTTON"
msgid "Close"
msgstr ""
#. TRANS: Title for button text for closing a question.
#: forms/qnashowquestion.php:155
msgid "Close the question to no one can answer it anymore."
msgstr ""
#. TRANS: Button text for marking an answer as "best".
#: forms/qnashowanswer.php:150
msgctxt "BUTTON"
msgid "Best"
msgstr ""
#. TRANS: Title for button text marking an answer as "best".
#: forms/qnashowanswer.php:154
msgid "Mark this answer as the best answer."
msgstr ""
#. TRANS: Field label.
#: forms/qnanewanswer.php:114
msgid "Enter your answer"
msgstr ""
#. TRANS: Button text for submitting a poll response.
#: forms/qnanewanswer.php:125
msgctxt "BUTTON"
msgid "Answer" msgid "Answer"
msgstr "" msgstr ""
#. TRANS: Title for Question page.
#: actions/qnanewquestion.php:62
msgid "New question"
msgstr ""
#. TRANS: Client exception thrown trying to create a Question while not logged in.
#: actions/qnanewquestion.php:82
msgid "You must be logged in to post a question."
msgstr ""
#. TRANS: Client exception thrown trying to create a question without a title.
#: actions/qnanewquestion.php:128
msgid "Question must have a title."
msgstr ""
#. TRANS: Page title after sending a notice.
#: actions/qnanewquestion.php:153
msgid "Question posted"
msgstr ""
#. TRANS: Page title for close a question
#: actions/qnaclosequestion.php:52
msgid "Close question"
msgstr ""
#. TRANS: Client exception thrown trying to close a question when not logged in
#: actions/qnaclosequestion.php:75
msgid "You must be logged in to close a question."
msgstr ""
#. TRANS: Exception thrown trying to close another user's question.
#: actions/qnaclosequestion.php:124
msgid "You did not ask this question."
msgstr ""
#. TRANS: Plugin description. #. TRANS: Plugin description.
#: QnAPlugin.php:130 #: QnAPlugin.php:130
msgid "Question and Answers micro-app." msgid "Question and Answers micro-app."

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,71 +17,73 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n" "Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#. TRANS: Form validation error displayed when a URL parameter is missing.
#: actions/loggingaggregator.php:86
msgid "A URL parameter is required."
msgstr ""
#. TRANS: Form validation error displayed when HTTP GET is not used.
#: actions/loggingaggregator.php:94
msgid "This resource requires an HTTP GET."
msgstr ""
#. TRANS: Form validation error displayed when HTTP POST is not used.
#: actions/loggingaggregator.php:104
msgid "This resource requires an HTTP POST."
msgstr ""
#. TRANS: Form validation error displayed when POST is not used. #. TRANS: Form validation error displayed when POST is not used.
#: actions/rsscloudrequestnotify.php:84 #: actions/rsscloudrequestnotify.php:91
msgid "Request must be POST." msgid "Request must be POST."
msgstr "" msgstr ""
#. TRANS: Form validation error displayed when HTTP POST is not used. #. TRANS: Form validation error displayed when HTTP POST is not used.
#: actions/rsscloudrequestnotify.php:102 #: actions/rsscloudrequestnotify.php:109
msgid "Only HTTP POST notifications are supported at this time." msgid "Only HTTP POST notifications are supported at this time."
msgstr "" msgstr ""
#. TRANS: List separator. #. TRANS: List separator.
#: actions/rsscloudrequestnotify.php:113 #: actions/rsscloudrequestnotify.php:120
msgctxt "SEPARATOR" msgctxt "SEPARATOR"
msgid ", " msgid ", "
msgstr "" msgstr ""
#: actions/rsscloudrequestnotify.php:117 #. TRANS: Form validation error displayed when a request body is missing expected parameters.
#. TRANS: %s is a list of parameters separated by a list separator (default: ", ").
#: actions/rsscloudrequestnotify.php:123
#, php-format #, php-format
msgid "The following parameters were missing from the request body: %s." msgid "The following parameters were missing from the request body: %s."
msgstr "" msgstr ""
#. TRANS: Form validation error displayed when not providing any valid profile feed URLs. #. TRANS: Form validation error displayed when not providing any valid profile feed URLs.
#: actions/rsscloudrequestnotify.php:126 #: actions/rsscloudrequestnotify.php:130
msgid "" msgid ""
"You must provide at least one valid profile feed URL (url1, url2, url3 ... " "You must provide at least one valid profile feed URL (url1, url2, url3 ... "
"urlN)." "urlN)."
msgstr "" msgstr ""
#. TRANS: Form validation error displayed when not providing a valid feed URL. #. TRANS: Form validation error displayed when not providing a valid feed URL.
#: actions/rsscloudrequestnotify.php:144 #: actions/rsscloudrequestnotify.php:146
msgid "Feed subscription failed: Not a valid feed." msgid "Feed subscription failed: Not a valid feed."
msgstr "" msgstr ""
#. TRANS: Form validation error displayed when feed subscription failed. #. TRANS: Form validation error displayed when feed subscription failed.
#: actions/rsscloudrequestnotify.php:151 #: actions/rsscloudrequestnotify.php:153
msgid "" msgid ""
"Feed subscription failed: Notification handler does not respond correctly." "Feed subscription failed: Notification handler does not respond correctly."
msgstr "" msgstr ""
#. TRANS: Success message after subscribing to one or more feeds. #. TRANS: Success message after subscribing to one or more feeds.
#: actions/rsscloudrequestnotify.php:166 #: actions/rsscloudrequestnotify.php:168
msgid "" msgid ""
"Thanks for the subscription. When the feed(s) update(s), you will be " "Thanks for the subscription. When the feed(s) update(s), you will be "
"notified." "notified."
msgstr "" msgstr ""
#. TRANS: Form validation error displayed when a URL parameter is missing.
#: actions/loggingaggregator.php:80
msgid "A URL parameter is required."
msgstr ""
#. TRANS: Form validation error displayed when HTTP GET is not used.
#: actions/loggingaggregator.php:88
msgid "This resource requires an HTTP GET."
msgstr ""
#. TRANS: Form validation error displayed when HTTP POST is not used.
#: actions/loggingaggregator.php:98
msgid "This resource requires an HTTP POST."
msgstr ""
#. TRANS: Plugin description. #. TRANS: Plugin description.
#: RSSCloudPlugin.php:223 #: RSSCloudPlugin.php:209
msgid "" msgid ""
"The RSSCloud plugin enables your GNU social instance to publish real-time " "The RSSCloud plugin enables your StatusNet instance to publish real-time "
"updates for profile RSS feeds using the <a href=\"http://rsscloud.co/" "updates for profile RSS feeds using the <a href=\"http://rsscloud.org/"
"\">rssCloud protocol</a>." "\">RSSCloud protocol</a>."
msgstr "" msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,6 +18,6 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#. TRANS: Plugin description. #. TRANS: Plugin description.
#: RedisCachePlugin.php:188 #: RedisCachePlugin.php:144
msgid "Plugin implementing Redis as a backend for GNU social caching" msgid "Plugin implementing Redis as a backend for GNU social caching"
msgstr "" msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,21 +18,21 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#. TRANS: Server exception thrown when no IP address can be found for a registation attempt. #. TRANS: Server exception thrown when no IP address can be found for a registation attempt.
#: RegisterThrottlePlugin.php:114 #: RegisterThrottlePlugin.php:117
msgid "Cannot find IP address." msgid "Cannot find IP address."
msgstr "" msgstr ""
#. TRANS: Exception thrown when too many user have registered from one IP address within a given time frame. #. TRANS: Exception thrown when too many user have registered from one IP address within a given time frame.
#: RegisterThrottlePlugin.php:129 #: RegisterThrottlePlugin.php:133
msgid "Too many registrations. Take a break and try again later." msgid "Too many registrations. Take a break and try again later."
msgstr "" msgstr ""
#. TRANS: Exception thrown when attempting to register from an IP address from which silenced users have registered. #. TRANS: Exception thrown when attempting to register from an IP address from which silenced users have registered.
#: RegisterThrottlePlugin.php:142 #: RegisterThrottlePlugin.php:146
msgid "A banned user has registered from this address." msgid "A banned user has registered from this address."
msgstr "" msgstr ""
#. TRANS: Plugin description. #. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:251 #: RegisterThrottlePlugin.php:249
msgid "Throttles excessive registration from a single IP address." msgid "Throttles excessive registration from a single IP address."
msgstr "" msgstr ""

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-18 12:38+0100\n" "POT-Creation-Date: 2020-08-04 01:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,6 +17,21 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n" "Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#. TRANS: Link text for the follow button
#: RemoteFollowPlugin.php:71
msgid "Subscribe"
msgstr ""
#. TRANS: Plugin description.
#: RemoteFollowPlugin.php:128
msgid "Add remote-follow button support to GNU social"
msgstr ""
#. TRANS: Link text for link to remote subscribe.
#: RemoteFollowPlugin.php:154
msgid "Remote"
msgstr ""
#. TRANS: Client error displayed when the user is logged in. #. TRANS: Client error displayed when the user is logged in.
#: actions/remotefollowinit.php:47 #: actions/remotefollowinit.php:47
msgid "You can use the local subscription!" msgid "You can use the local subscription!"
@@ -147,18 +162,3 @@ msgid ""
"You can subscribe to users from other supported sites. Paste their address " "You can subscribe to users from other supported sites. Paste their address "
"or profile URI below:" "or profile URI below:"
msgstr "" msgstr ""
#. TRANS: Link text for the follow button
#: RemoteFollowPlugin.php:71
msgid "Subscribe"
msgstr ""
#. TRANS: Plugin description.
#: RemoteFollowPlugin.php:128
msgid "Add remote-follow button support to GNU social"
msgstr ""
#. TRANS: Link text for link to remote subscribe.
#: RemoteFollowPlugin.php:154
msgid "Remote"
msgstr ""

Some files were not shown because too many files have changed in this diff Show More