feat: finalize strings, change app id, generate po files (#75)

warning: The app id change might prevent Tooth from running if you already have it installed. Please uninstall it before installing this one. If it still doesn't work, open seahorse (Passwords and Keys) and remove all "Mastodon Account" entries.

- changes app id to dev.geopjr.Tooth
- finalizes strings
- generates new potfile
- msgmerges the old translations
- removes some unused/unfinished features (like multiple timelines)
This commit is contained in:
GeopJr 2023-02-24 22:40:20 +02:00 committed by GitHub
commit 08d84a4ff4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
51 changed files with 5712 additions and 5693 deletions

View File

@ -29,7 +29,7 @@ jobs:
platforms: arm64
- uses: flatpak/flatpak-github-actions/flatpak-builder@v5
with:
bundle: "dev.geopjr.tooth.Devel.flatpak"
manifest-path: "dev.geopjr.tooth.Devel.json"
bundle: "dev.geopjr.Tooth.Devel.flatpak"
manifest-path: "dev.geopjr.Tooth.Devel.json"
cache-key: flatpak-builder-${{ github.sha }}
arch: ${{ matrix.arch }}

View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<id>dev.geopjr.Tooth</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0-only</project_license>
<name>Tooth</name>
<summary>Browse the Fediverse</summary>
<description>
<p>
Explore the federated social web with Tooth for GNOME. Stay connected to your favorite communities, family and friends with support for popular Fediverse platforms like Mastodon, GoToSocial, Pleroma &amp; more!
</p>
<p>
The Fediverse is a decentralized social network that consists of multiple interconnected platforms and communities, allowing users to communicate and share content across different networks and servers. It promotes user privacy and data ownership, and offers an alternative to centralized social media platforms.
</p>
</description>
<provides>
<binary>dev.geopjr.Tooth</binary>
</provides>
<developer_name translatable="no">Evangelos "GeopJr" Paterakis</developer_name>
<url type="homepage">https://github.com/bleakgrey</url>
<url type="bugtracker">https://github.com/GeopJr/Tooth/issues</url>
<url type="donation">https://liberapay.com/bleakgrey/donate</url>
<content_rating type="oars-1.1">
<content_attribute id="social-chat">moderate</content_attribute>
<content_attribute id="social-audio">moderate</content_attribute>
<content_attribute id="social-contacts">intense</content_attribute>
</content_rating>
<custom>
<value key="Purism::form_factor">workstation</value>
<value key="Purism::form_factor">mobile</value>
</custom>
<releases>
<release version="1.0.0" date="2021-02-02">
<description>
<ul>
<li>Initial release</li>
</ul>
</description>
</release>
</releases>
</component>

View File

@ -1,15 +1,15 @@
[Desktop Entry]
Type=Application
Name=Tooth
Comment=Mastodon Client
GenericName=Mastodon Client
Exec=dev.geopjr.tooth %u
Icon=dev.geopjr.tooth
Comment=Browse the Fediverse
GenericName=Fediverse Client
Exec=dev.geopjr.Tooth %u
Icon=dev.geopjr.Tooth
Terminal=false
Categories=GNOME;GTK;Network;
Keywords=toot;mastodon;social;network;post;
X-GNOME-Gettext-Domain=dev.geopjr.tooth
X-GNOME-UsesNotifications=true
Keywords=toot;mastodon;fediverse;gotosocial;pleroma;
X-GNOME-Gettext-Domain=dev.geopjr.Tooth
X-GNOME-UsesNotifications=true
MimeType=x-scheme-handler/tooth;
# Translators: Do NOT translate or transliterate this text (these are enum types)!
X-Purism-FormFactor=Workstation;Mobile;

View File

@ -1,18 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<schemalist>
<enum id="dev.geopjr.tooth.ColorScheme">
<enum id="dev.geopjr.Tooth.ColorScheme">
<value value="0" nick="system"/>
<value value="1" nick="light"/>
<value value="2" nick="dark"/>
</enum>
<schema path="/dev/geopjr/tooth/" id="dev.geopjr.tooth" gettext-domain="dev.geopjr.tooth">
<schema path="/dev/geopjr/Tooth/" id="dev.geopjr.Tooth" gettext-domain="dev.geopjr.Tooth">
<key name="active-account" type="s">
<default>''</default>
</key>
<key name="color-scheme" enum="dev.geopjr.tooth.ColorScheme">
<key name="color-scheme" enum="dev.geopjr.Tooth.ColorScheme">
<default>'system'</default>
</key>
<key name="autostart" type="b">
@ -24,9 +24,6 @@
<key name="timeline-page-size" type="i">
<default>12</default>
</key>
<key name="post-text-size" type="i">
<default>100</default>
</key>
<key name="live-updates" type="b">
<default>true</default>
</key>

View File

@ -1,72 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2020 Bleak Grey -->
<component type="desktop">
<id>dev.geopjr.tooth</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0-only</project_license>
<name>Tooth</name>
<summary>Lightning fast client for Mastodon</summary>
<description>
<p>
Tooth is a GTK client for the world's largest, decentralized, microblogging platform, Mastodon. With the user experience in mind, it provides a clean, native interface that allows you to integrate Mastodon's social experience seamlessly with your desktop environment.
</p>
<p>
Mastodon is a free and open source microblogging platform similar to Twitter, but with user privacy and decentralization in mind. It is one of many protocols that interacts with the Fediverse of protocols like Pleroma, GNU Social, and others. The power of federated microblogging that Mastodon brings and the agility of Tooth creates a fantastic duo for all of your social media needs.
</p>
</description>
<provides>
<binary>dev.geopjr.tooth</binary>
</provides>
<developer_name>bleak_grey</developer_name>
<url type="homepage">https://github.com/bleakgrey</url>
<url type="bugtracker">https://github.com/GeopJr/tooth/issues</url>
<url type="donation">https://liberapay.com/bleakgrey/donate</url>
<content_rating type="oars-1.1">
<content_attribute id="violence-cartoon">none</content_attribute>
<content_attribute id="violence-fantasy">none</content_attribute>
<content_attribute id="violence-realistic">none</content_attribute>
<content_attribute id="violence-bloodshed">none</content_attribute>
<content_attribute id="violence-sexual">none</content_attribute>
<content_attribute id="violence-desecration">none</content_attribute>
<content_attribute id="violence-slavery">none</content_attribute>
<content_attribute id="violence-worship">none</content_attribute>
<content_attribute id="drugs-alcohol">none</content_attribute>
<content_attribute id="drugs-narcotics">none</content_attribute>
<content_attribute id="drugs-tobacco">none</content_attribute>
<content_attribute id="sex-nudity">none</content_attribute>
<content_attribute id="sex-themes">none</content_attribute>
<content_attribute id="sex-homosexuality">none</content_attribute>
<content_attribute id="sex-prostitution">none</content_attribute>
<content_attribute id="sex-adultery">none</content_attribute>
<content_attribute id="sex-appearance">none</content_attribute>
<content_attribute id="language-profanity">none</content_attribute>
<content_attribute id="language-humor">none</content_attribute>
<content_attribute id="language-discrimination">none</content_attribute>
<content_attribute id="social-chat">moderate</content_attribute>
<content_attribute id="social-info">none</content_attribute>
<content_attribute id="social-audio">moderate</content_attribute>
<content_attribute id="social-location">none</content_attribute>
<content_attribute id="social-contacts">intense</content_attribute>
<content_attribute id="money-purchasing">none</content_attribute>
<content_attribute id="money-gambling">none</content_attribute>
</content_rating>
<custom>
<value key="Purism::form_factor">workstation</value>
<value key="Purism::form_factor">mobile</value>
</custom>
<releases>
<release version="1.0.0" date="2021-02-02">
<description>
<ul>
<li>Initial release</li>
</ul>
</description>
</release>
</releases>
</component>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/dev/geopjr/tooth/">
<gresource prefix="/dev/geopjr/Tooth/">
<file>style.css</file>
<file>style-dark.css</file>

View File

@ -46,7 +46,8 @@
<property name="vexpand">1</property>
<property name="icon_name">tooth-network-server-symbolic</property>
<property name="title" translatable="yes">What is your Server?</property>
<property name="description" translatable="yes">If you don&apos;t have one yet, you can register &lt;a href=&quot;https://joinmastodon.org/servers&quot;&gt;here&lt;/a&gt;.</property>
<!-- translators: Please replace the joinmastodon.org link with the one for your language if available -->
<property name="description" translatable="yes">If you don&apos;t have an account yet, &lt;a href=&quot;https://joinmastodon.org/servers&quot;&gt;choose a server and register one&lt;/a&gt;.</property>
<style>
<class name="compact"/>
</style>
@ -205,7 +206,7 @@
<property name="vexpand">1</property>
<property name="icon_name">tooth-check-round-outline-symbolic</property>
<property name="title">Hello!</property>
<property name="description" translatable="true">Your account is connected and ready to use.</property>
<property name="description" translatable="true">Your account is connected and ready to use!</property>
<style>
<class name="compact"/>
</style>

View File

@ -36,12 +36,11 @@
</child>
<child>
<object class="AdwActionRow">
<property name="title" translatable="yes">Multiple Columns</property>
<property name="subtitle" translatable="yes">Warning: Expirimental and highly flammable</property>
<property name="activatable_widget">multiple_columns</property>
<property name="sensitive">0</property>
<property name="title" translatable="yes">Larger font size</property>
<property name="activatable_widget">larger_font_size</property>
<property name="subtitle" translatable="yes">Makes the font larger for posts</property>
<child>
<object class="GtkSwitch" id="multiple_columns">
<object class="GtkSwitch" id="larger_font_size">
<property name="valign">center</property>
</object>
</child>
@ -49,16 +48,12 @@
</child>
<child>
<object class="AdwActionRow">
<property name="visible">0</property>
<property name="title" translatable="yes">Text scale (%)</property>
<property name="activatable_widget">post_text_size</property>
<property name="title" translatable="yes">Larger line height</property>
<property name="activatable_widget">larger_line_height</property>
<property name="subtitle" translatable="yes">Makes the line height larger for posts</property>
<child>
<object class="GtkSpinButton" id="post_text_size">
<object class="GtkSwitch" id="larger_line_height">
<property name="valign">center</property>
<property name="text" translatable="yes">100</property>
<property name="climb_rate">0.05</property>
<property name="adjustment">font_adjustment</property>
<property name="value">100</property>
</object>
</child>
</object>
@ -105,26 +100,13 @@
<child>
<object class="GtkSpinButton" id="timeline_page_size">
<property name="valign">center</property>
<property name="text" translatable="yes">10</property>
<property name="text">10</property>
<property name="adjustment">page_adjustment</property>
<property name="value">10</property>
</object>
</child>
</object>
</child>
<child>
<object class="AdwActionRow">
<property name="visible">0</property>
<property name="title" translatable="yes">Infinite scrolling</property>
<property name="activatable_widget">infinite_scrolling</property>
<property name="subtitle" translatable="yes">Warning: This will increase memory usage</property>
<child>
<object class="GtkSwitch" id="infinite_scrolling">
<property name="valign">center</property>
</object>
</child>
</object>
</child>
<child>
<object class="AdwActionRow" id="live_updates_row">
<property name="title" translatable="yes">Stream timelines</property>
@ -161,38 +143,6 @@
</child>
</object>
</child>
<child>
<placeholder/>
</child>
</object>
</child>
<child>
<object class="AdwPreferencesGroup">
<property name="title" translatable="yes">Status</property>
<child>
<object class="AdwActionRow">
<property name="title" translatable="yes">Larger font size</property>
<property name="activatable_widget">larger_font_size</property>
<property name="subtitle" translatable="yes">Makes the status font larger</property>
<child>
<object class="GtkSwitch" id="larger_font_size">
<property name="valign">center</property>
</object>
</child>
</object>
</child>
<child>
<object class="AdwActionRow">
<property name="title" translatable="yes">Larger line height</property>
<property name="activatable_widget">larger_line_height</property>
<property name="subtitle" translatable="yes">Makes the status line height larger</property>
<child>
<object class="GtkSwitch" id="larger_line_height">
<property name="valign">center</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>

View File

@ -7,13 +7,13 @@
<attribute name="display-hint">circular-buttons</attribute>
<!-- <attribute name="label" translatable="yes">Interaction</attribute> -->
<item>
<attribute name="label" translatable="yes">Mention</attribute>
<attribute name="label" translatable="yes">Mention</attribute>
<attribute name="action">view.mention</attribute>
<attribute name="target">public</attribute>
<attribute name="verb-icon">tooth-online-symbolic</attribute>
</item>
<item>
<attribute name="label" translatable="yes">Direct Message</attribute>
<attribute name="label" translatable="yes">Direct Message</attribute>
<attribute name="action">view.mention</attribute>
<attribute name="target">direct</attribute>
<attribute name="verb-icon">tooth-mail-symbolic</attribute>
@ -26,7 +26,6 @@
</section>
<section>
<!-- <submenu> -->
<attribute name="label" translatable="yes">Moderation</attribute>
<item>
<attribute name="label" translatable="yes">Hide Boosts</attribute>
@ -54,7 +53,6 @@
<!-- <attribute name="hidden-when">action-disabled</attribute> -->
</item>
</section>
<!-- </submenu> -->
</section>
<section>
@ -79,12 +77,12 @@
<!-- <section> -->
<item>
<attribute name="label" translatable="yes">With Replies</attribute>
<attribute name="label" translatable="yes">Include Replies</attribute>
<attribute name="action">view.include-replies</attribute>
<attribute name="hidden-when">action-disabled</attribute>
</item>
<item>
<attribute name="label" translatable="yes">With Media</attribute>
<attribute name="label" translatable="yes">Include Media</attribute>
<attribute name="action">view.only-media</attribute>
<attribute name="hidden-when">action-disabled</attribute>
</item>

View File

@ -58,7 +58,7 @@
<property name="width_request">128</property>
<property name="height_request">128</property>
<property name="pixel_size">128</property>
<property name="icon_name">dev.geopjr.tooth-symbolic</property>
<property name="icon_name">dev.geopjr.Tooth-symbolic</property>
<style>
<class name="dim-label"/>
</style>

View File

@ -13,7 +13,7 @@
<object class="GtkButton" id="compose_button">
<property name="icon-name">tooth-edit-symbolic</property>
<property name="action-name">app.compose</property>
<property name="tooltip_text" translatable="yes">Toot</property>
<property name="tooltip_text" translatable="yes">Compose</property>
</object>
</child>
<child type="end">

View File

@ -237,13 +237,13 @@
<property name="visible">0</property>
<child>
<object class="GtkLabel" id="reblog_count_label">
<property name="label">Reblogs</property>
<property name="label">Boosts</property>
<property name="use_markup">1</property>
</object>
</child>
<child>
<object class="GtkLabel" id="fav_count_label">
<property name="label">Favourites</property>
<property name="label">Favorites</property>
<property name="use_markup">1</property>
</object>
</child>

View File

@ -1,5 +1,5 @@
{
"app-id": "dev.geopjr.tooth",
"app-id": "dev.geopjr.Tooth",
"runtime": "org.gnome.Platform",
"runtime-version": "43",
"sdk": "org.gnome.Sdk",
@ -8,7 +8,7 @@
"prepend-path" : "/usr/lib/sdk/vala/bin/",
"prepend-ld-library-path" : "/usr/lib/sdk/vala/lib"
},
"command": "dev.geopjr.tooth",
"command": "dev.geopjr.Tooth",
"finish-args": [
"--device=dri",
"--share=ipc",

View File

@ -1,5 +1,5 @@
{
"app-id": "dev.geopjr.tooth",
"app-id": "dev.geopjr.Tooth",
"runtime": "org.gnome.Platform",
"runtime-version": "43",
"sdk": "org.gnome.Sdk",
@ -8,7 +8,7 @@
"prepend-path" : "/usr/lib/sdk/vala/bin/",
"prepend-ld-library-path" : "/usr/lib/sdk/vala/lib"
},
"command": "dev.geopjr.tooth",
"command": "dev.geopjr.Tooth",
"finish-args": [
"--device=dri",
"--share=ipc",

View File

@ -1,5 +1,5 @@
{
description = "A GTK Mastodon client, forked from the now-archived Tootle";
description = "Browse the Fediverse";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/master";
@ -58,7 +58,7 @@
gappsWrapperArgs+=(
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS" \
--prefix XDG_DATA_DIRS : "$out/share" \
--prefix XDG_DATA_DIRS : "$out/share/gsettings-schemas/dev.geopjr.tooth" \
--prefix XDG_DATA_DIRS : "$out/share/gsettings-schemas/dev.geopjr.Tooth" \
--prefix XDG_DATA_DIRS : "${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}" \
--prefix XDG_DATA_DIRS : "${hicolor-icon-theme}/share" \
--prefix GI_TYPELIB_PATH : "${lib.makeSearchPath "lib/girepository-1.0" [ pango json-glib ]}"

View File

@ -6,5 +6,5 @@ meson configure build -Ddevel=true
cd build
ninja
sudo ninja install
# gdb dev.geopjr.tooth
dev.geopjr.tooth
# gdb dev.geopjr.Tooth
dev.geopjr.Tooth

View File

@ -1,5 +1,5 @@
project(
'dev.geopjr.tooth',
'dev.geopjr.Tooth',
['c', 'vala'],
version: '2.1.0',
meson_version: '>= 0.56.0',
@ -21,8 +21,8 @@ config.set_quoted('RESOURCES', '/' + '/'.join(meson.project_name().split('.')) +
config.set_quoted('VERSION', meson.project_version())
config.set_quoted('PREFIX', get_option('prefix'))
config.set_quoted('NAME', 'Tooth')
config.set_quoted('WEBSITE', 'https://github.com/GeopJr/tooth')
config.set_quoted('SUPPORT_WEBSITE', 'https://github.com/GeopJr/tooth/issues')
config.set_quoted('WEBSITE', 'https://github.com/GeopJr/Tooth')
config.set_quoted('SUPPORT_WEBSITE', 'https://github.com/GeopJr/Tooth/issues')
config.set_quoted('PROFILE', devel ? 'development' : 'production')
if devel

View File

@ -3,4 +3,3 @@ es
fr
nl
pt_BR
ru_RU

View File

@ -1,53 +1,112 @@
data/dev.geopjr.tooth.appdata.xml.in
data/dev.geopjr.tooth.desktop.in
data/dev.geopjr.Tooth.appdata.xml.in
data/dev.geopjr.Tooth.desktop.in
data/ui/menus.ui
data/ui/dialogs/compose.ui
data/ui/dialogs/list_editor.ui
data/ui/dialogs/main.ui
data/ui/dialogs/new_account.ui
data/ui/dialogs/preferences.ui
data/ui/views/new_account.ui
data/ui/views/base.ui
data/ui/views/profile_header.ui
data/ui/views/sidebar/account.ui
data/ui/views/sidebar/item.ui
data/ui/views/sidebar/view.ui
data/ui/widgets/accounts_button_item.ui
data/ui/widgets/compose_attachment.ui
data/ui/widgets/list_item.ui
data/ui/widgets/status.ui
data/ui/widgets/timeline_footer.ui
data/ui/widgets/votebox.ui
src/Application.vala
src/Build.vala.in
src/API/SearchResults.vala
src/Dialogs/ListEditor.vala
src/Dialogs/NewAccount.vala
src/Dialogs/Composer/AttachmentsPage.vala
src/Dialogs/Composer/Dialog.vala
src/Dialogs/Composer/EditorPage.vala
src/Dialogs/Composer/PollPage.vala
src/Services/Accounts/Mastodon/Account.vala
src/Services/Accounts/SecretAccountStore.vala
src/Utils/DateTime.vala
src/Utils/Host.vala
src/Utils/Html.vala
src/Views/Base.vala
src/Views/Conversations.vala
src/Views/Lists.vala
src/Views/Main.vala
src/Views/Notifications.vala
src/Views/Profile.vala
src/Views/Search.vala
src/Views/Sidebar.vala
src/Views/Thread.vala
src/Widgets/Status.vala
src/Widgets/Widgetizable.vala
src/Widgets/VoteCheckButton.vala
src/Widgets/VoteBox.vala
src/Widgets/Attachment/Item.vala
src/Widgets/RelationshipButton.vala
src/Widgets/StatusActionButton.vala
src/Widgets/Status.vala
src/Widgets/RichLabelContainer.vala
src/Widgets/RichLabel.vala
src/Widgets/RelationshipButton.vala
src/Widgets/Notification.vala
src/Widgets/MarkupView.vala
src/Widgets/LockableToggleButton.vala
src/Widgets/EmojiLabel.vala
src/Widgets/Emoji.vala
src/Widgets/Conversation.vala
src/Widgets/Background.vala
src/Widgets/Avatar.vala
src/Widgets/Attachment/Item.vala
src/Widgets/Attachment/Image.vala
src/Widgets/Attachment/Box.vala
src/Views/Timeline.vala
src/Views/Thread.vala
src/Views/TabbedBase.vala
src/Views/Sidebar.vala
src/Views/Search.vala
src/Views/Profile.vala
src/Views/Notifications.vala
src/Views/Main.vala
src/Views/Local.vala
src/Views/Lists.vala
src/Views/List.vala
src/Views/Home.vala
src/Views/Hashtag.vala
src/Views/FollowRequests.vala
src/Views/Federated.vala
src/Views/Favorites.vala
src/Views/EditHistory.vala
src/Views/Conversations.vala
src/Views/ContentBase.vala
src/Views/Bookmarks.vala
src/Views/Base.vala
src/Utils/Html.vala
src/Utils/Host.vala
src/Utils/DateTime.vala
src/Services/Settings.vala
src/Services/Network/Streams.vala
src/Services/Network/Streamable.vala
src/Services/Network/Request.vala
src/Services/Network/Network.vala
src/Services/Cache/ImageCache.vala
src/Services/Cache/EntityCache.vala
src/Services/Cache/AbstractCache.vala
src/Services/Accounts/SecretAccountStore.vala
src/Services/Accounts/Places.vala
src/Services/Accounts/Mastodon/Account.vala
src/Services/Accounts/InstanceAccount.vala
src/Services/Accounts/AccountStore.vala
src/Services/Accounts/AccountHolder.vala
src/Dialogs/Saveable.vala
src/Dialogs/Preferences.vala
src/Dialogs/NewAccount.vala
src/Dialogs/MainWindow.vala
src/Dialogs/Composer/PollPage.vala
src/Dialogs/Composer/Page.vala
src/Dialogs/Composer/EditorPage.vala
src/Dialogs/Composer/Dialog.vala
src/Dialogs/Composer/AttachmentsPageAttachment.vala
src/Dialogs/Composer/AttachmentsPage.vala
src/Application.vala
src/API/TagHistory.vala
src/API/Tag.vala
src/API/Status.vala
src/API/SearchResults.vala
src/API/Relationship.vala
src/API/PollOption.vala
src/API/Poll.vala
src/API/Pleroma.vala
src/API/Notification.vala
src/API/Mention.vala
src/API/List.vala
src/API/Instance/Mastodon/Configuration/Statuses.vala
src/API/Instance/Mastodon/Configuration/Reactions.vala
src/API/Instance/Mastodon/Configuration/Polls.vala
src/API/Instance/Mastodon/Configuration/MediaAttachments.vala
src/API/Instance/Mastodon/Configuration.vala
src/API/Instance.vala
src/API/Entity.vala
src/API/EmojiReaction.vala
src/API/Emoji.vala
src/API/Conversation.vala
src/API/Attachment.vala
src/API/AccountField.vala
src/API/Account.vala

File diff suppressed because it is too large Load Diff

934
po/dev.geopjr.Tooth.pot Normal file
View File

@ -0,0 +1,934 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-02-24 06:04+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: data/dev.geopjr.Tooth.appdata.xml.in:6 data/dev.geopjr.Tooth.desktop.in:4
msgid "Tooth"
msgstr ""
#: data/dev.geopjr.Tooth.appdata.xml.in:7 data/dev.geopjr.Tooth.desktop.in:5
msgid "Browse the Fediverse"
msgstr ""
#: data/dev.geopjr.Tooth.appdata.xml.in:9
msgid ""
"Explore the federated social web with Tooth for GNOME. Stay connected to "
"your favorite communities, family and friends with support for popular "
"Fediverse platforms like Mastodon, GoToSocial, Pleroma &amp; more!"
msgstr ""
#: data/dev.geopjr.Tooth.appdata.xml.in:12
msgid ""
"The Fediverse is a decentralized social network that consists of multiple "
"interconnected platforms and communities, allowing users to communicate and "
"share content across different networks and servers. It promotes user "
"privacy and data ownership, and offers an alternative to centralized social "
"media platforms."
msgstr ""
#: data/dev.geopjr.Tooth.desktop.in:6
msgid "Fediverse Client"
msgstr ""
#: data/ui/menus.ui:10
msgid "Mention"
msgstr ""
#: data/ui/menus.ui:16
msgid "Direct Message"
msgstr ""
#: data/ui/menus.ui:22
msgid "Copy Handle"
msgstr ""
#: data/ui/menus.ui:29
msgid "Moderation"
msgstr ""
#: data/ui/menus.ui:31
msgid "Hide Boosts"
msgstr ""
#: data/ui/menus.ui:36
msgid "Mute"
msgstr ""
#: data/ui/menus.ui:41
msgid "Report"
msgstr ""
#: data/ui/menus.ui:47 src/Views/Profile.vala:266 src/Views/Profile.vala:290
msgid "Block"
msgstr ""
#: data/ui/menus.ui:51
msgid "Block Domain"
msgstr ""
#: data/ui/menus.ui:59
msgid "Timeline"
msgstr ""
#: data/ui/menus.ui:61
msgid "Filter"
msgstr ""
#: data/ui/menus.ui:80
msgid "Include Replies"
msgstr ""
#: data/ui/menus.ui:85
msgid "Include Media"
msgstr ""
#: data/ui/menus.ui:108 src/Views/Lists.vala:283
#: src/Services/Accounts/Mastodon/Account.vala:68
msgid "Lists"
msgstr ""
#: data/ui/menus.ui:113
msgid "Refresh"
msgstr ""
#: data/ui/dialogs/compose.ui:29 data/ui/dialogs/new_account.ui:27
#: src/Application.vala:278
msgid "Cancel"
msgstr ""
#: data/ui/dialogs/compose.ui:35 src/Dialogs/Composer/Dialog.vala:57
msgid "_Publish"
msgstr ""
#: data/ui/dialogs/new_account.ui:8 src/Views/Sidebar.vala:195
msgid "Add Account"
msgstr ""
#: data/ui/dialogs/new_account.ui:34 data/ui/dialogs/new_account.ui:119
msgid "Next"
msgstr ""
#: data/ui/dialogs/new_account.ui:48
msgid "What is your Server?"
msgstr ""
#. translators: Please replace the joinmastodon.org link with the one for your language if available
#: data/ui/dialogs/new_account.ui:50
msgid ""
"If you don't have an account yet, <a href=\"https://joinmastodon.org/"
"servers\">choose a server and register one</a>."
msgstr ""
#: data/ui/dialogs/new_account.ui:71
msgid "Server URL"
msgstr ""
#: data/ui/dialogs/new_account.ui:112
msgid "Back"
msgstr ""
#: data/ui/dialogs/new_account.ui:133
msgid "Confirm Authorization"
msgstr ""
#: data/ui/dialogs/new_account.ui:154
msgid "Authorization Code"
msgstr ""
#: data/ui/dialogs/new_account.ui:194
msgid "Done"
msgstr ""
#: data/ui/dialogs/new_account.ui:209
msgid "Your account is connected and ready to use!"
msgstr ""
#: data/ui/dialogs/preferences.ui:19 src/Views/Lists.vala:91
msgid "General"
msgstr ""
#: data/ui/dialogs/preferences.ui:22
msgid "Appearance"
msgstr ""
#: data/ui/dialogs/preferences.ui:25
msgid "Color Scheme"
msgstr ""
#: data/ui/dialogs/preferences.ui:39
msgid "Larger font size"
msgstr ""
#: data/ui/dialogs/preferences.ui:41
msgid "Makes the font larger for posts"
msgstr ""
#: data/ui/dialogs/preferences.ui:51
msgid "Larger line height"
msgstr ""
#: data/ui/dialogs/preferences.ui:53
msgid "Makes the line height larger for posts"
msgstr ""
#: data/ui/dialogs/preferences.ui:65
msgid "Behavior"
msgstr ""
#: data/ui/dialogs/preferences.ui:68
msgid "Autostart"
msgstr ""
#: data/ui/dialogs/preferences.ui:70
msgid "Start minimized at boot"
msgstr ""
#: data/ui/dialogs/preferences.ui:81
msgid "Background work"
msgstr ""
#: data/ui/dialogs/preferences.ui:83
msgid "Receive notifications even when the app is closed"
msgstr ""
#: data/ui/dialogs/preferences.ui:95
msgid "Timelines"
msgstr ""
#: data/ui/dialogs/preferences.ui:98
msgid "Posts per page"
msgstr ""
#: data/ui/dialogs/preferences.ui:112
msgid "Stream timelines"
msgstr ""
#: data/ui/dialogs/preferences.ui:114
msgid "Receive new posts and notifications in real-time"
msgstr ""
#: data/ui/dialogs/preferences.ui:125
msgid "Stream public timelines"
msgstr ""
#: data/ui/dialogs/preferences.ui:127
msgid "Warning: This will increase memory usage"
msgstr ""
#: data/ui/dialogs/preferences.ui:137
msgid "Reveal spoilers by default"
msgstr ""
#: data/ui/views/sidebar/view.ui:16
msgid "Compose"
msgstr ""
#: data/ui/views/sidebar/view.ui:23
msgid "Switch Account"
msgstr ""
#: data/ui/widgets/status.ui:100
msgid "Pinned"
msgstr ""
#: data/ui/widgets/status.ui:111
msgid "Edited"
msgstr ""
#: data/ui/widgets/status.ui:178 src/Widgets/Status.vala:271
msgid "Show More"
msgstr ""
#: data/ui/widgets/status.ui:278 data/ui/widgets/status.ui:279
msgid "Decline"
msgstr ""
#: data/ui/widgets/status.ui:291 data/ui/widgets/status.ui:292
msgid "Accept"
msgstr ""
#: src/Widgets/VoteBox.vala:20
msgid "Vote"
msgstr ""
#: src/Widgets/VoteBox.vala:141
#, c-format
msgid "%lld voted"
msgstr ""
#: src/Widgets/StatusActionButton.vala:123
msgid "Network Error"
msgstr ""
#: src/Widgets/Status.vala:104
#, c-format
msgid "React with %s"
msgstr ""
#: src/Widgets/Status.vala:201 src/Widgets/Attachment/Item.vala:166
msgid "Open in Browser"
msgstr ""
#: src/Widgets/Status.vala:202 src/Widgets/Attachment/Item.vala:167
msgid "Copy URL"
msgstr ""
#: src/Widgets/Status.vala:204
msgid "View Edit History"
msgstr ""
#: src/Widgets/Status.vala:209 src/Widgets/Status.vala:233
#: src/Views/Lists.vala:63
msgid "Delete"
msgstr ""
#: src/Widgets/Status.vala:230
msgid "Are you sure you want to delete this post?"
msgstr ""
#: src/Widgets/Status.vala:278
msgid "Sensitive"
msgstr ""
#: src/Widgets/Status.vala:370
msgid "Boosts"
msgstr ""
#: src/Widgets/Status.vala:375 src/Views/Favorites.vala:6
#: src/Services/Accounts/Mastodon/Account.vala:60
msgid "Favorites"
msgstr ""
#: src/Widgets/Status.vala:414
msgid "Reply"
msgstr ""
#: src/Widgets/Status.vala:422
msgid "This post can't be boosted"
msgstr ""
#: src/Widgets/Status.vala:427 src/Widgets/Status.vala:461
msgid "Boost"
msgstr ""
#: src/Widgets/Status.vala:472
msgid "Favorite"
msgstr ""
#: src/Widgets/Status.vala:483
msgid "Bookmark"
msgstr ""
#: src/Widgets/RelationshipButton.vala:31
#: src/Widgets/RelationshipButton.vala:64 src/Views/Hashtag.vala:20
#: src/Views/Hashtag.vala:35
msgid "Follow"
msgstr ""
#: src/Widgets/RelationshipButton.vala:41 src/Views/Profile.vala:266
#: src/Views/Profile.vala:290
msgid "Unblock"
msgstr ""
#: src/Widgets/RelationshipButton.vala:54 src/Views/Hashtag.vala:23
#: src/Views/Hashtag.vala:39
msgid "Unfollow"
msgstr ""
#: src/Widgets/Attachment/Item.vala:32
msgid "Save Attachment"
msgstr ""
#: src/Widgets/Attachment/Item.vala:60 src/Widgets/Attachment/Item.vala:64
#: src/Widgets/Attachment/Item.vala:185 src/Views/Sidebar.vala:224
#: src/Services/Accounts/SecretAccountStore.vala:94
#: src/Services/Accounts/AccountStore.vala:43 src/Application.vala:120
msgid "Error"
msgstr ""
#: src/Widgets/Attachment/Item.vala:100
msgid "View Alt Text"
msgstr ""
#: src/Widgets/Attachment/Item.vala:168
msgid "Save Media"
msgstr ""
#: src/Views/Thread.vala:13
msgid "Conversation"
msgstr ""
#: src/Views/Sidebar.vala:24
msgid "Preferences"
msgstr ""
#: src/Views/Sidebar.vala:33
msgid "About"
msgstr ""
#: src/Views/Sidebar.vala:110
msgid "Anonymous"
msgstr ""
#: src/Views/Sidebar.vala:111
msgid "No account selected"
msgstr ""
#: src/Views/Sidebar.vala:210
#, c-format
msgid "Forget %s?"
msgstr ""
#: src/Views/Sidebar.vala:211
msgid "This account will be removed from the application."
msgstr ""
#: src/Views/Sidebar.vala:213
msgid "Forget"
msgstr ""
#: src/Views/Search.vala:15 src/Views/Main.vala:19
msgid "Search"
msgstr ""
#: src/Views/Search.vala:38
msgid "Accounts"
msgstr ""
#: src/Views/Search.vala:39
msgid "Statuses"
msgstr ""
#: src/Views/Search.vala:40
msgid "Hashtags"
msgstr ""
#: src/Views/Search.vala:55
msgid "Enter Query"
msgstr ""
#: src/Views/Profile.vala:35
msgid "Profile"
msgstr ""
#: src/Views/Profile.vala:130
msgid "Posts"
msgstr ""
#: src/Views/Profile.vala:134
msgid "Following"
msgstr ""
#: src/Views/Profile.vala:138
msgid "Followers"
msgstr ""
#: src/Views/Profile.vala:259
#, c-format
msgid "Block \"%s\"?"
msgstr ""
#: src/Views/Profile.vala:259
#, c-format
msgid "Unblock \"%s\"?"
msgstr ""
#: src/Views/Profile.vala:284
#, c-format
msgid "Block Entire \"%s\"?"
msgstr ""
#: src/Views/Profile.vala:284
#, c-format
msgid "Unblock Entire \"%s\"?"
msgstr ""
#: src/Views/Profile.vala:288
msgid ""
"Blocking a domain will:\n"
"\n"
"• Remove its public posts and notifications from your timelines\n"
"• Remove its followers from your account\n"
"• Prevent you from following its users"
msgstr ""
#: src/Views/Profile.vala:337
msgid "Sent follow request"
msgstr ""
#: src/Views/Profile.vala:339
msgid "Mutuals"
msgstr ""
#: src/Views/Profile.vala:341
msgid "Follows you"
msgstr ""
#: src/Views/Profile.vala:394
#, c-format
msgid "Add or remove \"%s\" to or from a list"
msgstr ""
#: src/Views/Profile.vala:405
#, c-format
msgid "Select the list to add or remove \"%s\" to or from:"
msgstr ""
#: src/Views/Profile.vala:411
msgid "You don't have any lists"
msgstr ""
#. translators: First variable is a handle, second variable is a list name
#: src/Views/Profile.vala:438 src/Views/Profile.vala:500
#, c-format
msgid "Remove \"%s\" from \"%s\""
msgstr ""
#. translators: First variable is a handle, second variable is a list name
#: src/Views/Profile.vala:438 src/Views/Profile.vala:494
#, c-format
msgid "Add \"%s\" to \"%s\""
msgstr ""
#. translators: First variable is a handle, second variable is a list name
#: src/Views/Profile.vala:491
#, c-format
msgid "User \"%s\" got removed from \"%s\""
msgstr ""
#. translators: First variable is a handle, second variable is a list name
#: src/Views/Profile.vala:497
#, c-format
msgid "User \"%s\" got added to \"%s\""
msgstr ""
#: src/Views/Notifications.vala:11
msgid "Notifications"
msgstr ""
#: src/Views/Local.vala:4 src/Services/Accounts/Mastodon/Account.vala:84
msgid "Local"
msgstr ""
#: src/Views/Lists.vala:60
#, c-format
msgid "Delete \"%s\"?"
msgstr ""
#: src/Views/Lists.vala:61
msgid "This action cannot be reverted."
msgstr ""
#: src/Views/Lists.vala:86
#, c-format
msgid "Edit \"%s\""
msgstr ""
#: src/Views/Lists.vala:94
msgid "Info"
msgstr ""
#: src/Views/Lists.vala:98
msgid "List Name"
msgstr ""
#: src/Views/Lists.vala:107
msgid "Replies Policy"
msgstr ""
#: src/Views/Lists.vala:108
msgid "Show member replies to"
msgstr ""
#: src/Views/Lists.vala:112
msgid "Nobody"
msgstr ""
#: src/Views/Lists.vala:124
msgid "Other members of the list"
msgstr ""
#: src/Views/Lists.vala:136
msgid "Any followed user"
msgstr ""
#: src/Views/Lists.vala:171
msgid "Members"
msgstr ""
#: src/Views/Lists.vala:175
msgid "Remove Members"
msgstr ""
#: src/Views/Lists.vala:309
msgid "New list title"
msgstr ""
#: src/Views/Lists.vala:318
msgid "Add list"
msgstr ""
#: src/Views/Home.vala:6 src/Services/Accounts/Mastodon/Account.vala:26
msgid "Home"
msgstr ""
#: src/Views/FollowRequests.vala:4
#: src/Services/Accounts/Mastodon/Account.vala:100
msgid "Follow Requests"
msgstr ""
#: src/Views/Federated.vala:7 src/Services/Accounts/Mastodon/Account.vala:92
msgid "Federated"
msgstr ""
#: src/Views/EditHistory.vala:5
msgid "Edit History"
msgstr ""
#: src/Views/Conversations.vala:6
msgid "Conversations"
msgstr ""
#: src/Views/Bookmarks.vala:6 src/Services/Accounts/Mastodon/Account.vala:52
msgid "Bookmarks"
msgstr ""
#: src/Views/Base.vala:6
msgid "Nothing to see here"
msgstr ""
#: src/Views/Base.vala:41
msgid "Reload"
msgstr ""
#: src/Views/Base.vala:108
msgid "An Error Occurred"
msgstr ""
#: src/Utils/DateTime.vala:12
msgid "expires soon"
msgstr ""
#. translators: %b is Month name (short)
#. %-e is the Day number
#. %Y is the year (with century)
#: src/Utils/DateTime.vala:26
msgid "expires on %b %-e, %Y"
msgstr ""
#. translators: %b is Month name (short)
#. %-e is the Day number
#. %Y is the year (with century)
#. %H is the hours (24h format)
#. %m is the minutes
#: src/Utils/DateTime.vala:40
msgid "expires on %b %-e, %Y %H:%m"
msgstr ""
#: src/Utils/DateTime.vala:42
msgid "expired on just now"
msgstr ""
#: src/Utils/DateTime.vala:52
msgid "expired yesterday"
msgstr ""
#. translators: %b is Month name (short)
#. %-e is the Day number
#: src/Utils/DateTime.vala:57
msgid "expired on %b %-e"
msgstr ""
#. translators: %b is Month name (short)
#. %-e is the Day number
#. %Y is the year (with century)
#: src/Utils/DateTime.vala:63
msgid "expired on %b %-e, %Y"
msgstr ""
#. translators: %b is Month name (short)
#. %-e is the Day number
#. %Y is the year (with century)
#. %H is the hours (24h format)
#. %m is the minutes
#: src/Utils/DateTime.vala:77
msgid "%b %-e, %Y %H:%m"
msgstr ""
#: src/Utils/DateTime.vala:79
msgid "Just now"
msgstr ""
#: src/Utils/DateTime.vala:89
msgid "Yesterday"
msgstr ""
#. translators: %b is Month name (short)
#. %-e is the Day number
#: src/Utils/DateTime.vala:94
msgid "%b %-e"
msgstr ""
#. translators: %b is Month name (short)
#. %-e is the Day number
#. %Y is the year (with century)
#: src/Utils/DateTime.vala:100
msgid "%b %-e, %Y"
msgstr ""
#. translators: Follow System's dark mode preference
#: src/Services/Settings.vala:46
msgid "Follow System"
msgstr ""
#. translators: Light mode theme
#: src/Services/Settings.vala:49
msgid "Light"
msgstr ""
#. translators: Dark mode theme
#: src/Services/Settings.vala:52
msgid "Dark"
msgstr ""
#. translators: The variable is the backend like "Mastodon"
#: src/Services/Accounts/SecretAccountStore.vala:80
#, c-format
msgid "%s Account"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:44
msgid "Direct Messages"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:127
msgid "Public"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:129
msgid "Post to public timelines"
msgstr ""
#. translators: Probably follow Mastodon's translation
#: src/Services/Accounts/Mastodon/Account.vala:134
msgid "Unlisted"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:136
msgid "Don't post to public timelines"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:140
msgid "Followers Only"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:142
msgid "Post to followers only"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:146
msgid "Direct"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:148
msgid "Post to mentioned users only"
msgstr ""
#: src/Services/Accounts/InstanceAccount.vala:131
#, c-format
msgid "%s mentioned you"
msgstr ""
#: src/Services/Accounts/InstanceAccount.vala:136
#, c-format
msgid "%s boosted your post"
msgstr ""
#: src/Services/Accounts/InstanceAccount.vala:141
#, c-format
msgid "%s boosted"
msgstr ""
#: src/Services/Accounts/InstanceAccount.vala:146
#, c-format
msgid "%s favorited your post"
msgstr ""
#: src/Services/Accounts/InstanceAccount.vala:151
#, c-format
msgid "%s now follows you"
msgstr ""
#: src/Services/Accounts/InstanceAccount.vala:156
#, c-format
msgid "%s wants to follow you"
msgstr ""
#: src/Services/Accounts/InstanceAccount.vala:161
msgid "Poll results"
msgstr ""
#: src/Dialogs/NewAccount.vala:6
msgid ""
"Allow access to your account in the browser. If something went wrong, <a "
"href=\"tooth://manual_auth\">try manual authorization</a>."
msgstr ""
#: src/Dialogs/NewAccount.vala:7
msgid "Copy the authorization code from the browser and paste it below."
msgstr ""
#: src/Dialogs/NewAccount.vala:106
msgid "Please enter a valid instance URL"
msgstr ""
#: src/Dialogs/NewAccount.vala:139
msgid "Please enter a valid authorization code"
msgstr ""
#: src/Dialogs/NewAccount.vala:155
msgid "Instance failed to authorize the access token"
msgstr ""
#: src/Dialogs/NewAccount.vala:164
#, c-format
msgid "Hello, %s!"
msgstr ""
#: src/Dialogs/NewAccount.vala:221
msgid "Server returned an error"
msgstr ""
#: src/Dialogs/Composer/PollPage.vala:5
msgid "Options"
msgstr ""
#. translators: "Text" as in text-based input
#: src/Dialogs/Composer/EditorPage.vala:11
msgid "Text"
msgstr ""
#: src/Dialogs/Composer/EditorPage.vala:109
#: src/Dialogs/Composer/AttachmentsPageAttachment.vala:87
msgid "Characters Left"
msgstr ""
#: src/Dialogs/Composer/EditorPage.vala:121
msgid "What's on your mind?"
msgstr ""
#: src/Dialogs/Composer/EditorPage.vala:146
msgid "Emoji Picker"
msgstr ""
#: src/Dialogs/Composer/EditorPage.vala:163
msgid "Write your warning here"
msgstr ""
#: src/Dialogs/Composer/EditorPage.vala:178
msgid "Content Warning"
msgstr ""
#: src/Dialogs/Composer/EditorPage.vala:199
msgid "Post Privacy"
msgstr ""
#: src/Dialogs/Composer/Dialog.vala:65
msgid "_Redraft"
msgstr ""
#: src/Dialogs/Composer/Dialog.vala:81
msgid "_Reply"
msgstr ""
#: src/Dialogs/Composer/AttachmentsPageAttachment.vala:22
msgid "Edit Alt Text"
msgstr ""
#: src/Dialogs/Composer/AttachmentsPageAttachment.vala:34
msgid "Remove Attachment"
msgstr ""
#: src/Dialogs/Composer/AttachmentsPageAttachment.vala:92
msgid "Save"
msgstr ""
#: src/Dialogs/Composer/AttachmentsPage.vala:39
msgid "Media"
msgstr ""
#: src/Dialogs/Composer/AttachmentsPage.vala:55
#: src/Dialogs/Composer/AttachmentsPage.vala:79
msgid "Add Media"
msgstr ""
#: src/Dialogs/Composer/AttachmentsPage.vala:64
msgid "No Media"
msgstr ""
#. translators: sensitive as in not safe for work or similar
#: src/Dialogs/Composer/AttachmentsPage.vala:89
#: src/Dialogs/Composer/AttachmentsPage.vala:97
msgid "Mark media as sensitive"
msgstr ""
#. translators: sensitive as in not safe for work or similar
#: src/Dialogs/Composer/AttachmentsPage.vala:97
msgid "Unmark media as sensitive"
msgstr ""
#: src/Dialogs/Composer/AttachmentsPage.vala:152
msgid "All Supported Files"
msgstr ""
#. translators: Open file
#: src/Dialogs/Composer/AttachmentsPage.vala:164
msgid "Open"
msgstr ""
#: src/Dialogs/Composer/AttachmentsPage.vala:196
#, c-format
msgid "File \"%s\" is bigger than the instance limit"
msgstr ""
#. translators: Name <email@domain.com> or Name https://website.example
#: src/Application.vala:253
msgid "translator-credits"
msgstr ""
#: src/Application.vala:278
msgid "Yes"
msgstr ""
#: src/API/Tag.vala:26
msgid "yesterday"
msgstr ""
#: src/API/Tag.vala:32
msgid "in the past 2 days"
msgstr ""
#. translators: the first two are numbers, the last one is either "yesterday" or "in the past 2 days"
#: src/API/Tag.vala:36
#, c-format
msgid "Used %d times by %d people %s"
msgstr ""
#: src/API/SearchResults.vala:21
msgid "Search returned no results"
msgstr ""

View File

@ -1,791 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the dev.geopjr.tooth package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: dev.geopjr.tooth\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-12-20 10:12-0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: data/dev.geopjr.tooth.appdata.xml.in:7 data/dev.geopjr.tooth.desktop.in:4
msgid "Tooth"
msgstr ""
#: data/dev.geopjr.tooth.appdata.xml.in:8
msgid "Lightning fast client for Mastodon"
msgstr ""
#: data/dev.geopjr.tooth.appdata.xml.in:11
msgid ""
"Tooth is a GTK client for the world's largest, decentralized, microblogging "
"platform, Mastodon. With the user experience in mind, it provides a clean, "
"native interface that allows you to integrate Mastodon's social experience "
"seamlessly with your desktop environment."
msgstr ""
#: data/dev.geopjr.tooth.appdata.xml.in:14
msgid ""
"Mastodon is a free and open source microblogging platform similar to "
"Twitter, but with user privacy and decentralization in mind. It is one of "
"many protocols that interacts with the Fediverse of protocols like Pleroma, "
"GNU Social, and others. The power of federated microblogging that Mastodon "
"brings and the agility of Tooth creates a fantastic duo for all of your "
"social media needs."
msgstr ""
#: data/dev.geopjr.tooth.appdata.xml.in:23
msgid "bleak_grey"
msgstr ""
#: data/dev.geopjr.tooth.appdata.xml.in:67
msgid "Initial release"
msgstr ""
#: data/dev.geopjr.tooth.desktop.in:5 data/dev.geopjr.tooth.desktop.in:6
msgid "Mastodon Client"
msgstr ""
#: data/dev.geopjr.tooth.desktop.in:11
msgid "toot;mastodon;social;network;post;"
msgstr ""
#: data/ui/menus.ui:10
msgid "Mention…"
msgstr ""
#: data/ui/menus.ui:16
msgid "Direct Message…"
msgstr ""
#: data/ui/menus.ui:22
msgid "Copy Handle"
msgstr ""
#. <submenu>
#: data/ui/menus.ui:30
msgid "Moderation"
msgstr ""
#: data/ui/menus.ui:32
msgid "Hide Boosts"
msgstr ""
#: data/ui/menus.ui:37
msgid "Mute"
msgstr ""
#: data/ui/menus.ui:42
msgid "Report"
msgstr ""
#: data/ui/menus.ui:48 src/Views/Profile.vala:212 src/Views/Profile.vala:236
msgid "Block"
msgstr ""
#: data/ui/menus.ui:52
msgid "Block Domain"
msgstr ""
#: data/ui/menus.ui:61
msgid "Timeline"
msgstr ""
#: data/ui/menus.ui:63
msgid "Filter"
msgstr ""
#: data/ui/menus.ui:82
msgid "With Replies"
msgstr ""
#: data/ui/menus.ui:87
msgid "With Media"
msgstr ""
#: data/ui/menus.ui:110
msgid "Refresh"
msgstr ""
#: data/ui/dialogs/compose.ui:29 data/ui/dialogs/list_editor.ui:45
#: data/ui/dialogs/new_account.ui:21 src/Application.vala:234
msgid "Cancel"
msgstr ""
#: data/ui/dialogs/compose.ui:35 src/Dialogs/Composer/Dialog.vala:49
msgid "_Publish"
msgstr ""
#: data/ui/dialogs/list_editor.ui:29
msgid "Name"
msgstr ""
#: data/ui/dialogs/list_editor.ui:67
msgid "Save"
msgstr ""
#: data/ui/dialogs/list_editor.ui:175
msgid "Search among people you follow"
msgstr ""
#: data/ui/dialogs/list_editor.ui:219
msgid "Nobody here"
msgstr ""
#: data/ui/dialogs/new_account.ui:8 src/Views/Sidebar.vala:178
msgid "Add Account"
msgstr ""
#: data/ui/dialogs/new_account.ui:28 data/ui/dialogs/new_account.ui:115
msgid "Next"
msgstr ""
#: data/ui/dialogs/new_account.ui:42
msgid "What is Your Instance?"
msgstr ""
#: data/ui/dialogs/new_account.ui:88
msgid "<a href=\"https://joinmastodon.org/\">Don't have one yet?</a>"
msgstr ""
#: data/ui/dialogs/new_account.ui:108
msgid "Previous"
msgstr ""
#: data/ui/dialogs/new_account.ui:129
msgid "Enter Authorization Code"
msgstr ""
#: data/ui/dialogs/new_account.ui:160
msgid ""
"Didn't work? <a href=\"tooth://manual_auth\">Try manual authorization.</a>"
msgstr ""
#: data/ui/dialogs/new_account.ui:182
msgid "Done"
msgstr ""
#: data/ui/dialogs/preferences.ui:19
msgid "General"
msgstr ""
#: data/ui/dialogs/preferences.ui:22
msgid "Appearance"
msgstr ""
#: data/ui/dialogs/preferences.ui:37
msgid "Multiple Columns"
msgstr ""
#: data/ui/dialogs/preferences.ui:38
msgid "Warning: Expirimental and highly flammable"
msgstr ""
#: data/ui/dialogs/preferences.ui:52
msgid "Text scale (%)"
msgstr ""
#: data/ui/dialogs/preferences.ui:57
msgid "100"
msgstr ""
#: data/ui/dialogs/preferences.ui:69
msgid "Behavior"
msgstr ""
#: data/ui/dialogs/preferences.ui:72
msgid "Autostart"
msgstr ""
#: data/ui/dialogs/preferences.ui:74
msgid "Start minimized at boot"
msgstr ""
#: data/ui/dialogs/preferences.ui:86
msgid "Background work"
msgstr ""
#: data/ui/dialogs/preferences.ui:88
msgid "Receive notifications even when the app is closed"
msgstr ""
#: data/ui/dialogs/preferences.ui:100
msgid "Timelines"
msgstr ""
#: data/ui/dialogs/preferences.ui:103
msgid "Posts per page"
msgstr ""
#: data/ui/dialogs/preferences.ui:108
msgid "10"
msgstr ""
#: data/ui/dialogs/preferences.ui:118
msgid "Infinite scrolling"
msgstr ""
#: data/ui/dialogs/preferences.ui:120 data/ui/dialogs/preferences.ui:146
msgid "Warning: This will increase memory usage"
msgstr ""
#: data/ui/dialogs/preferences.ui:130
msgid "Stream timelines"
msgstr ""
#: data/ui/dialogs/preferences.ui:132
msgid "Receive new posts and notifications in real-time"
msgstr ""
#: data/ui/dialogs/preferences.ui:144
msgid "Stream public timelines"
msgstr ""
#: data/ui/dialogs/preferences.ui:157
msgid "Reveal spoilers by default"
msgstr ""
#: data/ui/views/new_account.ui:80
msgid "Which Instance?\n"
msgstr ""
#: data/ui/views/new_account.ui:100
msgid "<a href=\"https://joinmastodon.org/\">What's an instance?</a>"
msgstr ""
#: data/ui/views/new_account.ui:117
msgid "instance.domain"
msgstr ""
#: data/ui/views/new_account.ui:146
msgid "Grant Account Access\n"
msgstr ""
#: data/ui/views/new_account.ui:166
msgid "Paste"
msgstr ""
#: data/ui/views/new_account.ui:167
msgid "Paste your authorization code here"
msgstr ""
#: data/ui/views/new_account.ui:182
msgid "<a href=\"\">Try another instance?</a>"
msgstr ""
#: data/ui/views/sidebar/view.ui:15
msgid "Toot"
msgstr ""
#: data/ui/views/sidebar/view.ui:22
msgid "Switch Account"
msgstr ""
#: data/ui/widgets/accounts_button_item.ui:60 src/Views/Sidebar.vala:196
msgid "Forget"
msgstr ""
#: data/ui/widgets/accounts_button_item.ui:88
msgid "Title"
msgstr ""
#: data/ui/widgets/compose_attachment.ui:29
msgid "Describe for the visually impaired"
msgstr ""
#: data/ui/widgets/compose_attachment.ui:90
msgid "Unknown"
msgstr ""
#: data/ui/widgets/compose_attachment.ui:113 data/ui/widgets/list_item.ui:52
#: src/Views/Lists.vala:34
msgid "Delete"
msgstr ""
#: data/ui/widgets/list_item.ui:21 src/Dialogs/ListEditor.vala:77
msgid "Untitled"
msgstr ""
#: data/ui/widgets/list_item.ui:30
msgid "Edit"
msgstr ""
#: data/ui/widgets/status.ui:108
msgid "Pinned"
msgstr ""
#: data/ui/widgets/status.ui:120
msgid "Edited"
msgstr ""
#: data/ui/widgets/status.ui:191 src/Widgets/Status.vala:103
msgid "Show More"
msgstr ""
#: data/ui/widgets/timeline_footer.ui:41
msgid "page0"
msgstr ""
#: src/Application.vala:107
#, c-format
msgid "Could not start application: %s"
msgstr ""
#: src/Application.vala:108 src/Services/Accounts/SecretAccountStore.vala:92
#: src/Views/Sidebar.vala:207 src/Widgets/Attachment/Item.vala:46
msgid "Error"
msgstr ""
#: src/Application.vala:234
msgid "Yes"
msgstr ""
#. Please do not remove the credits below. You may add your own, but keep the existing ones intact.
#. TRANSLATORS: Replace this with your name. It will be displayed in the About dialog.
#: src/Build.vala.in:17
msgid " "
msgstr ""
#: src/API/SearchResults.vala:21
msgid "Search returned no results"
msgstr ""
#: src/Dialogs/ListEditor.vala:191
msgid "Discard changes?"
msgstr ""
#: src/Dialogs/ListEditor.vala:192
msgid "You need to save the list if you want to keep them."
msgstr ""
#: src/Dialogs/ListEditor.vala:194
msgid "Discard"
msgstr ""
#: src/Dialogs/NewAccount.vala:112
msgid "Please enter a valid instance URL"
msgstr ""
#: src/Dialogs/NewAccount.vala:145
msgid "Please enter a valid authorization code"
msgstr ""
#: src/Dialogs/NewAccount.vala:161
msgid "Instance failed to authorize the access token"
msgstr ""
#: src/Dialogs/NewAccount.vala:170
#, c-format
msgid "Hello, %s!"
msgstr ""
#: src/Dialogs/NewAccount.vala:218
msgid "Server returned an error"
msgstr ""
#: src/Dialogs/Composer/AttachmentsPage.vala:36
msgid "Media"
msgstr ""
#. Empty state
#: src/Dialogs/Composer/AttachmentsPage.vala:52
msgid "Add Media"
msgstr ""
#: src/Dialogs/Composer/AttachmentsPage.vala:58
msgid "No Media"
msgstr ""
#: src/Dialogs/Composer/AttachmentsPage.vala:59
msgid "Drag files here or click the button below"
msgstr ""
#: src/Dialogs/Composer/AttachmentsPage.vala:93
msgid "All Supported Files"
msgstr ""
#: src/Dialogs/Composer/AttachmentsPage.vala:99
msgid "Open"
msgstr ""
#: src/Dialogs/Composer/Dialog.vala:57
msgid "_Redraft"
msgstr ""
#: src/Dialogs/Composer/Dialog.vala:73
msgid "_Reply"
msgstr ""
#: src/Dialogs/Composer/EditorPage.vala:10
msgid "Text"
msgstr ""
#: src/Dialogs/Composer/EditorPage.vala:102
msgid "Characters Left"
msgstr ""
#: src/Dialogs/Composer/EditorPage.vala:114
msgid "What's on your mind?"
msgstr ""
#: src/Dialogs/Composer/EditorPage.vala:139
msgid "Emoji Picker"
msgstr ""
#: src/Dialogs/Composer/EditorPage.vala:156
msgid "Write your warning here"
msgstr ""
#: src/Dialogs/Composer/EditorPage.vala:171
msgid "Spoiler Warning"
msgstr ""
#: src/Dialogs/Composer/EditorPage.vala:192
msgid "Post Privacy"
msgstr ""
#: src/Dialogs/Composer/PollPage.vala:5
msgid "Options"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:34
msgid "Home"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:52
msgid "Direct Messages"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:60
msgid "Bookmarks"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:68
msgid "Favorites"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:76 src/Views/Lists.vala:67
msgid "Lists"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:92
msgid "Local"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:100
msgid "Federated"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:125
msgid "Public"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:127
msgid "Post to public timelines"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:131
msgid "Unlisted"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:133
msgid "Don't post to public timelines"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:137
msgid "Followers-only"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:139
msgid "Post to followers only"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:143
msgid "Direct"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:145
msgid "Post to mentioned users only"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:158
#, c-format
msgid "%s mentioned you"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:163
#, c-format
msgid "%s boosted your status"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:168
#, c-format
msgid "%s boosted"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:173
#, c-format
msgid "%s favorited your status"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:178
#, c-format
msgid "%s now follows you"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:183
#, c-format
msgid "%s wants to follow you"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:188
msgid "Poll results"
msgstr ""
#: src/Services/Accounts/SecretAccountStore.vala:78
#, c-format
msgid "%s Account"
msgstr ""
#: src/Utils/DateTime.vala:12
msgid "expires soon"
msgstr ""
#: src/Utils/DateTime.vala:23
msgid "expires on %b %e, %Y"
msgstr ""
#: src/Utils/DateTime.vala:32
msgid "expires on %b %e, %Y %H:%m"
msgstr ""
#: src/Utils/DateTime.vala:34
msgid "expired on just now"
msgstr ""
#: src/Utils/DateTime.vala:44
msgid "expired yesterday"
msgstr ""
#: src/Utils/DateTime.vala:47
msgid "expired on %b %e"
msgstr ""
#: src/Utils/DateTime.vala:50
msgid "expired on %b %e, %Y"
msgstr ""
#: src/Utils/DateTime.vala:59
msgid "%b %e, %Y %H:%m"
msgstr ""
#: src/Utils/DateTime.vala:61
msgid "Just now"
msgstr ""
#: src/Utils/DateTime.vala:71
msgid "Yesterday"
msgstr ""
#: src/Utils/DateTime.vala:74
msgid "%b %e"
msgstr ""
#: src/Utils/DateTime.vala:77
msgid "%b %e, %Y"
msgstr ""
#: src/Utils/Host.vala:16
msgid "launch_default_for_uri() failed"
msgstr ""
#: src/Utils/Html.vala:3
msgid "[ There was an error parsing this text :c ]"
msgstr ""
#: src/Views/Base.vala:6
msgid "Nothing to see here"
msgstr ""
#: src/Views/Base.vala:39
msgid "Reload"
msgstr ""
#: src/Views/Conversations.vala:6
msgid "Conversations"
msgstr ""
#: src/Views/Lists.vala:31
#, c-format
msgid "Delete \"%s\"?"
msgstr ""
#: src/Views/Lists.vala:32
msgid "This action cannot be reverted."
msgstr ""
#: src/Views/Main.vala:19 src/Views/Search.vala:15
msgid "Search"
msgstr ""
#: src/Views/Notifications.vala:11
msgid "Notifications"
msgstr ""
#: src/Views/Profile.vala:32
msgid "Profile"
msgstr ""
#: src/Views/Profile.vala:89
msgid "Posts"
msgstr ""
#: src/Views/Profile.vala:90
msgid "Following"
msgstr ""
#: src/Views/Profile.vala:91
msgid "Followers"
msgstr ""
#: src/Views/Profile.vala:205
#, c-format
msgid "Block \"%s\"?"
msgstr ""
#: src/Views/Profile.vala:205
#, c-format
msgid "Unblock \"%s\"?"
msgstr ""
#: src/Views/Profile.vala:212 src/Views/Profile.vala:236
#: src/Widgets/RelationshipButton.vala:41
msgid "Unblock"
msgstr ""
#: src/Views/Profile.vala:230
#, c-format
msgid "Block Entire \"%s\"?"
msgstr ""
#: src/Views/Profile.vala:230
#, c-format
msgid "Unblock Entire \"%s\"?"
msgstr ""
#: src/Views/Profile.vala:234
msgid ""
"Blocking a domain will:\n"
"\n"
"• Remove its public posts and notifications from your timelines\n"
"• Remove its followers from your account\n"
"• Prevent you from following its users"
msgstr ""
#: src/Views/Search.vala:38
msgid "Accounts"
msgstr ""
#: src/Views/Search.vala:39
msgid "Statuses"
msgstr ""
#: src/Views/Search.vala:40
msgid "Hashtags"
msgstr ""
#: src/Views/Search.vala:55
msgid "Enter query"
msgstr ""
#: src/Views/Sidebar.vala:22
msgid "Preferences"
msgstr ""
#: src/Views/Sidebar.vala:31
msgid "About"
msgstr ""
#: src/Views/Sidebar.vala:93
msgid "Anonymous"
msgstr ""
#: src/Views/Sidebar.vala:94
msgid "No account selected"
msgstr ""
#: src/Views/Sidebar.vala:193
#, c-format
msgid "Forget %s?"
msgstr ""
#: src/Views/Sidebar.vala:194
msgid "This account will be removed from the application."
msgstr ""
#: src/Views/Thread.vala:13
msgid "Conversation"
msgstr ""
#: src/Widgets/Status.vala:110
msgid "Sensitive"
msgstr ""
#: src/Widgets/Status.vala:168
msgid "Reblogs"
msgstr ""
#: src/Widgets/Status.vala:173
msgid "Favourites"
msgstr ""
#: src/Widgets/Status.vala:236
msgid "Reply"
msgstr ""
#: src/Widgets/Status.vala:244
msgid "This post can't be boosted"
msgstr ""
#: src/Widgets/Status.vala:249 src/Widgets/Status.vala:282
msgid "Boost"
msgstr ""
#: src/Widgets/Status.vala:293
msgid "Favourite"
msgstr ""
#: src/Widgets/Status.vala:304
msgid "Bookmark"
msgstr ""
#: src/Widgets/VoteBox.vala:20
msgid "Vote"
msgstr ""
#: src/Widgets/VoteBox.vala:141
#, c-format
msgid "%lld voted"
msgstr ""
#: src/Widgets/RelationshipButton.vala:31
#: src/Widgets/RelationshipButton.vala:64
msgid "Follow"
msgstr ""
#: src/Widgets/RelationshipButton.vala:54
msgid "Unfollow"
msgstr ""
#: src/Widgets/StatusActionButton.vala:123
msgid "Network Error"
msgstr ""

1460
po/es.po

File diff suppressed because it is too large Load Diff

1456
po/fr.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1365
po/nl.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -2,4 +2,4 @@
cd ..
cd build
ninja dev.geopjr.tooth-update-po
ninja dev.geopjr.Tooth-update-po

View File

@ -1,792 +0,0 @@
# Russian translations for dev.geopjr.tooth package.
# Copyright (C) 2020 THE dev.geopjr.tooth'S COPYRIGHT HOLDER
# This file is distributed under the same license as the dev.geopjr.tooth package.
# Automatically generated, 2020.
#
msgid ""
msgstr ""
"Project-Id-Version: dev.geopjr.tooth\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-12-20 10:12-0300\n"
"PO-Revision-Date: 2020-09-10 20:20+0300\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#: data/dev.geopjr.tooth.appdata.xml.in:7 data/dev.geopjr.tooth.desktop.in:4
msgid "Tooth"
msgstr ""
#: data/dev.geopjr.tooth.appdata.xml.in:8
msgid "Lightning fast client for Mastodon"
msgstr ""
#: data/dev.geopjr.tooth.appdata.xml.in:11
msgid ""
"Tooth is a GTK client for the world's largest, decentralized, microblogging "
"platform, Mastodon. With the user experience in mind, it provides a clean, "
"native interface that allows you to integrate Mastodon's social experience "
"seamlessly with your desktop environment."
msgstr ""
#: data/dev.geopjr.tooth.appdata.xml.in:14
msgid ""
"Mastodon is a free and open source microblogging platform similar to "
"Twitter, but with user privacy and decentralization in mind. It is one of "
"many protocols that interacts with the Fediverse of protocols like Pleroma, "
"GNU Social, and others. The power of federated microblogging that Mastodon "
"brings and the agility of Tooth creates a fantastic duo for all of your "
"social media needs."
msgstr ""
#: data/dev.geopjr.tooth.appdata.xml.in:23
msgid "bleak_grey"
msgstr ""
#: data/dev.geopjr.tooth.appdata.xml.in:67
msgid "Initial release"
msgstr ""
#: data/dev.geopjr.tooth.desktop.in:5 data/dev.geopjr.tooth.desktop.in:6
msgid "Mastodon Client"
msgstr ""
#: data/dev.geopjr.tooth.desktop.in:11
msgid "toot;mastodon;social;network;post;"
msgstr ""
#: data/ui/menus.ui:10
msgid "Mention…"
msgstr ""
#: data/ui/menus.ui:16
msgid "Direct Message…"
msgstr ""
#: data/ui/menus.ui:22
msgid "Copy Handle"
msgstr ""
#. <submenu>
#: data/ui/menus.ui:30
msgid "Moderation"
msgstr ""
#: data/ui/menus.ui:32
msgid "Hide Boosts"
msgstr ""
#: data/ui/menus.ui:37
msgid "Mute"
msgstr ""
#: data/ui/menus.ui:42
msgid "Report"
msgstr ""
#: data/ui/menus.ui:48 src/Views/Profile.vala:212 src/Views/Profile.vala:236
msgid "Block"
msgstr ""
#: data/ui/menus.ui:52
msgid "Block Domain"
msgstr ""
#: data/ui/menus.ui:61
msgid "Timeline"
msgstr ""
#: data/ui/menus.ui:63
msgid "Filter"
msgstr ""
#: data/ui/menus.ui:82
msgid "With Replies"
msgstr ""
#: data/ui/menus.ui:87
msgid "With Media"
msgstr ""
#: data/ui/menus.ui:110
msgid "Refresh"
msgstr ""
#: data/ui/dialogs/compose.ui:29 data/ui/dialogs/list_editor.ui:45
#: data/ui/dialogs/new_account.ui:21 src/Application.vala:234
msgid "Cancel"
msgstr ""
#: data/ui/dialogs/compose.ui:35 src/Dialogs/Composer/Dialog.vala:49
msgid "_Publish"
msgstr ""
#: data/ui/dialogs/list_editor.ui:29
msgid "Name"
msgstr ""
#: data/ui/dialogs/list_editor.ui:67
msgid "Save"
msgstr ""
#: data/ui/dialogs/list_editor.ui:175
msgid "Search among people you follow"
msgstr ""
#: data/ui/dialogs/list_editor.ui:219
msgid "Nobody here"
msgstr ""
#: data/ui/dialogs/new_account.ui:8 src/Views/Sidebar.vala:178
msgid "Add Account"
msgstr ""
#: data/ui/dialogs/new_account.ui:28 data/ui/dialogs/new_account.ui:115
msgid "Next"
msgstr ""
#: data/ui/dialogs/new_account.ui:42
msgid "What is Your Instance?"
msgstr ""
#: data/ui/dialogs/new_account.ui:88
msgid "<a href=\"https://joinmastodon.org/\">Don't have one yet?</a>"
msgstr ""
#: data/ui/dialogs/new_account.ui:108
msgid "Previous"
msgstr ""
#: data/ui/dialogs/new_account.ui:129
msgid "Enter Authorization Code"
msgstr ""
#: data/ui/dialogs/new_account.ui:160
msgid ""
"Didn't work? <a href=\"tooth://manual_auth\">Try manual authorization.</a>"
msgstr ""
#: data/ui/dialogs/new_account.ui:182
msgid "Done"
msgstr ""
#: data/ui/dialogs/preferences.ui:19
msgid "General"
msgstr ""
#: data/ui/dialogs/preferences.ui:22
msgid "Appearance"
msgstr ""
#: data/ui/dialogs/preferences.ui:37
msgid "Multiple Columns"
msgstr ""
#: data/ui/dialogs/preferences.ui:38
msgid "Warning: Expirimental and highly flammable"
msgstr ""
#: data/ui/dialogs/preferences.ui:52
msgid "Text scale (%)"
msgstr ""
#: data/ui/dialogs/preferences.ui:57
msgid "100"
msgstr ""
#: data/ui/dialogs/preferences.ui:69
msgid "Behavior"
msgstr ""
#: data/ui/dialogs/preferences.ui:72
msgid "Autostart"
msgstr ""
#: data/ui/dialogs/preferences.ui:74
msgid "Start minimized at boot"
msgstr ""
#: data/ui/dialogs/preferences.ui:86
msgid "Background work"
msgstr ""
#: data/ui/dialogs/preferences.ui:88
msgid "Receive notifications even when the app is closed"
msgstr ""
#: data/ui/dialogs/preferences.ui:100
msgid "Timelines"
msgstr ""
#: data/ui/dialogs/preferences.ui:103
msgid "Posts per page"
msgstr ""
#: data/ui/dialogs/preferences.ui:108
msgid "10"
msgstr ""
#: data/ui/dialogs/preferences.ui:118
msgid "Infinite scrolling"
msgstr ""
#: data/ui/dialogs/preferences.ui:120 data/ui/dialogs/preferences.ui:146
msgid "Warning: This will increase memory usage"
msgstr ""
#: data/ui/dialogs/preferences.ui:130
msgid "Stream timelines"
msgstr ""
#: data/ui/dialogs/preferences.ui:132
msgid "Receive new posts and notifications in real-time"
msgstr ""
#: data/ui/dialogs/preferences.ui:144
msgid "Stream public timelines"
msgstr ""
#: data/ui/dialogs/preferences.ui:157
msgid "Reveal spoilers by default"
msgstr ""
#: data/ui/views/new_account.ui:80
msgid "Which Instance?\n"
msgstr ""
#: data/ui/views/new_account.ui:100
msgid "<a href=\"https://joinmastodon.org/\">What's an instance?</a>"
msgstr ""
#: data/ui/views/new_account.ui:117
msgid "instance.domain"
msgstr ""
#: data/ui/views/new_account.ui:146
msgid "Grant Account Access\n"
msgstr ""
#: data/ui/views/new_account.ui:166
msgid "Paste"
msgstr ""
#: data/ui/views/new_account.ui:167
msgid "Paste your authorization code here"
msgstr ""
#: data/ui/views/new_account.ui:182
msgid "<a href=\"\">Try another instance?</a>"
msgstr ""
#: data/ui/views/sidebar/view.ui:15
msgid "Toot"
msgstr ""
#: data/ui/views/sidebar/view.ui:22
msgid "Switch Account"
msgstr ""
#: data/ui/widgets/accounts_button_item.ui:60 src/Views/Sidebar.vala:196
msgid "Forget"
msgstr ""
#: data/ui/widgets/accounts_button_item.ui:88
msgid "Title"
msgstr ""
#: data/ui/widgets/compose_attachment.ui:29
msgid "Describe for the visually impaired"
msgstr ""
#: data/ui/widgets/compose_attachment.ui:90
msgid "Unknown"
msgstr ""
#: data/ui/widgets/compose_attachment.ui:113 data/ui/widgets/list_item.ui:52
#: src/Views/Lists.vala:34
msgid "Delete"
msgstr ""
#: data/ui/widgets/list_item.ui:21 src/Dialogs/ListEditor.vala:77
msgid "Untitled"
msgstr ""
#: data/ui/widgets/list_item.ui:30
msgid "Edit"
msgstr ""
#: data/ui/widgets/status.ui:108
msgid "Pinned"
msgstr ""
#: data/ui/widgets/status.ui:120
msgid "Edited"
msgstr ""
#: data/ui/widgets/status.ui:191 src/Widgets/Status.vala:103
msgid "Show More"
msgstr ""
#: data/ui/widgets/timeline_footer.ui:41
msgid "page0"
msgstr ""
#: src/Application.vala:107
#, c-format
msgid "Could not start application: %s"
msgstr ""
#: src/Application.vala:108 src/Services/Accounts/SecretAccountStore.vala:92
#: src/Views/Sidebar.vala:207 src/Widgets/Attachment/Item.vala:46
msgid "Error"
msgstr ""
#: src/Application.vala:234
msgid "Yes"
msgstr ""
#. Please do not remove the credits below. You may add your own, but keep the existing ones intact.
#. TRANSLATORS: Replace this with your name. It will be displayed in the About dialog.
#: src/Build.vala.in:17
msgid " "
msgstr ""
#: src/API/SearchResults.vala:21
msgid "Search returned no results"
msgstr ""
#: src/Dialogs/ListEditor.vala:191
msgid "Discard changes?"
msgstr ""
#: src/Dialogs/ListEditor.vala:192
msgid "You need to save the list if you want to keep them."
msgstr ""
#: src/Dialogs/ListEditor.vala:194
msgid "Discard"
msgstr ""
#: src/Dialogs/NewAccount.vala:112
msgid "Please enter a valid instance URL"
msgstr ""
#: src/Dialogs/NewAccount.vala:145
msgid "Please enter a valid authorization code"
msgstr ""
#: src/Dialogs/NewAccount.vala:161
msgid "Instance failed to authorize the access token"
msgstr ""
#: src/Dialogs/NewAccount.vala:170
#, c-format
msgid "Hello, %s!"
msgstr ""
#: src/Dialogs/NewAccount.vala:218
msgid "Server returned an error"
msgstr ""
#: src/Dialogs/Composer/AttachmentsPage.vala:36
msgid "Media"
msgstr ""
#. Empty state
#: src/Dialogs/Composer/AttachmentsPage.vala:52
msgid "Add Media"
msgstr ""
#: src/Dialogs/Composer/AttachmentsPage.vala:58
msgid "No Media"
msgstr ""
#: src/Dialogs/Composer/AttachmentsPage.vala:59
msgid "Drag files here or click the button below"
msgstr ""
#: src/Dialogs/Composer/AttachmentsPage.vala:93
msgid "All Supported Files"
msgstr ""
#: src/Dialogs/Composer/AttachmentsPage.vala:99
msgid "Open"
msgstr ""
#: src/Dialogs/Composer/Dialog.vala:57
msgid "_Redraft"
msgstr ""
#: src/Dialogs/Composer/Dialog.vala:73
msgid "_Reply"
msgstr ""
#: src/Dialogs/Composer/EditorPage.vala:10
msgid "Text"
msgstr ""
#: src/Dialogs/Composer/EditorPage.vala:102
msgid "Characters Left"
msgstr ""
#: src/Dialogs/Composer/EditorPage.vala:114
msgid "What's on your mind?"
msgstr ""
#: src/Dialogs/Composer/EditorPage.vala:139
msgid "Emoji Picker"
msgstr ""
#: src/Dialogs/Composer/EditorPage.vala:156
msgid "Write your warning here"
msgstr ""
#: src/Dialogs/Composer/EditorPage.vala:171
msgid "Spoiler Warning"
msgstr ""
#: src/Dialogs/Composer/EditorPage.vala:192
msgid "Post Privacy"
msgstr ""
#: src/Dialogs/Composer/PollPage.vala:5
msgid "Options"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:34
msgid "Home"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:52
msgid "Direct Messages"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:60
msgid "Bookmarks"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:68
msgid "Favorites"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:76 src/Views/Lists.vala:67
msgid "Lists"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:92
msgid "Local"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:100
msgid "Federated"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:125
msgid "Public"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:127
msgid "Post to public timelines"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:131
msgid "Unlisted"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:133
msgid "Don't post to public timelines"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:137
msgid "Followers-only"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:139
msgid "Post to followers only"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:143
msgid "Direct"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:145
msgid "Post to mentioned users only"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:158
#, c-format
msgid "%s mentioned you"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:163
#, c-format
msgid "%s boosted your status"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:168
#, c-format
msgid "%s boosted"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:173
#, c-format
msgid "%s favorited your status"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:178
#, c-format
msgid "%s now follows you"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:183
#, c-format
msgid "%s wants to follow you"
msgstr ""
#: src/Services/Accounts/Mastodon/Account.vala:188
msgid "Poll results"
msgstr ""
#: src/Services/Accounts/SecretAccountStore.vala:78
#, c-format
msgid "%s Account"
msgstr ""
#: src/Utils/DateTime.vala:12
msgid "expires soon"
msgstr ""
#: src/Utils/DateTime.vala:23
msgid "expires on %b %e, %Y"
msgstr ""
#: src/Utils/DateTime.vala:32
msgid "expires on %b %e, %Y %H:%m"
msgstr ""
#: src/Utils/DateTime.vala:34
msgid "expired on just now"
msgstr ""
#: src/Utils/DateTime.vala:44
msgid "expired yesterday"
msgstr ""
#: src/Utils/DateTime.vala:47
msgid "expired on %b %e"
msgstr ""
#: src/Utils/DateTime.vala:50
msgid "expired on %b %e, %Y"
msgstr ""
#: src/Utils/DateTime.vala:59
msgid "%b %e, %Y %H:%m"
msgstr ""
#: src/Utils/DateTime.vala:61
msgid "Just now"
msgstr ""
#: src/Utils/DateTime.vala:71
msgid "Yesterday"
msgstr ""
#: src/Utils/DateTime.vala:74
msgid "%b %e"
msgstr ""
#: src/Utils/DateTime.vala:77
msgid "%b %e, %Y"
msgstr ""
#: src/Utils/Host.vala:16
msgid "launch_default_for_uri() failed"
msgstr ""
#: src/Utils/Html.vala:3
msgid "[ There was an error parsing this text :c ]"
msgstr ""
#: src/Views/Base.vala:6
msgid "Nothing to see here"
msgstr ""
#: src/Views/Base.vala:39
msgid "Reload"
msgstr ""
#: src/Views/Conversations.vala:6
msgid "Conversations"
msgstr ""
#: src/Views/Lists.vala:31
#, c-format
msgid "Delete \"%s\"?"
msgstr ""
#: src/Views/Lists.vala:32
msgid "This action cannot be reverted."
msgstr ""
#: src/Views/Main.vala:19 src/Views/Search.vala:15
msgid "Search"
msgstr ""
#: src/Views/Notifications.vala:11
msgid "Notifications"
msgstr ""
#: src/Views/Profile.vala:32
msgid "Profile"
msgstr ""
#: src/Views/Profile.vala:89
msgid "Posts"
msgstr ""
#: src/Views/Profile.vala:90
msgid "Following"
msgstr ""
#: src/Views/Profile.vala:91
msgid "Followers"
msgstr ""
#: src/Views/Profile.vala:205
#, c-format
msgid "Block \"%s\"?"
msgstr ""
#: src/Views/Profile.vala:205
#, c-format
msgid "Unblock \"%s\"?"
msgstr ""
#: src/Views/Profile.vala:212 src/Views/Profile.vala:236
#: src/Widgets/RelationshipButton.vala:41
msgid "Unblock"
msgstr ""
#: src/Views/Profile.vala:230
#, c-format
msgid "Block Entire \"%s\"?"
msgstr ""
#: src/Views/Profile.vala:230
#, c-format
msgid "Unblock Entire \"%s\"?"
msgstr ""
#: src/Views/Profile.vala:234
msgid ""
"Blocking a domain will:\n"
"\n"
"• Remove its public posts and notifications from your timelines\n"
"• Remove its followers from your account\n"
"• Prevent you from following its users"
msgstr ""
#: src/Views/Search.vala:38
msgid "Accounts"
msgstr ""
#: src/Views/Search.vala:39
msgid "Statuses"
msgstr ""
#: src/Views/Search.vala:40
msgid "Hashtags"
msgstr ""
#: src/Views/Search.vala:55
msgid "Enter query"
msgstr ""
#: src/Views/Sidebar.vala:22
msgid "Preferences"
msgstr ""
#: src/Views/Sidebar.vala:31
msgid "About"
msgstr ""
#: src/Views/Sidebar.vala:93
msgid "Anonymous"
msgstr ""
#: src/Views/Sidebar.vala:94
msgid "No account selected"
msgstr ""
#: src/Views/Sidebar.vala:193
#, c-format
msgid "Forget %s?"
msgstr ""
#: src/Views/Sidebar.vala:194
msgid "This account will be removed from the application."
msgstr ""
#: src/Views/Thread.vala:13
msgid "Conversation"
msgstr ""
#: src/Widgets/Status.vala:110
msgid "Sensitive"
msgstr ""
#: src/Widgets/Status.vala:168
msgid "Reblogs"
msgstr ""
#: src/Widgets/Status.vala:173
msgid "Favourites"
msgstr ""
#: src/Widgets/Status.vala:236
msgid "Reply"
msgstr ""
#: src/Widgets/Status.vala:244
msgid "This post can't be boosted"
msgstr ""
#: src/Widgets/Status.vala:249 src/Widgets/Status.vala:282
msgid "Boost"
msgstr ""
#: src/Widgets/Status.vala:293
msgid "Favourite"
msgstr ""
#: src/Widgets/Status.vala:304
msgid "Bookmark"
msgstr ""
#: src/Widgets/VoteBox.vala:20
msgid "Vote"
msgstr ""
#: src/Widgets/VoteBox.vala:141
#, c-format
msgid "%lld voted"
msgstr ""
#: src/Widgets/RelationshipButton.vala:31
#: src/Widgets/RelationshipButton.vala:64
msgid "Follow"
msgstr ""
#: src/Widgets/RelationshipButton.vala:54
msgid "Unfollow"
msgstr ""
#: src/Widgets/StatusActionButton.vala:123
msgid "Network Error"
msgstr ""

View File

@ -37,7 +37,7 @@ public class Tooth.API.Attachment : Entity, Widgetizable {
mime = type.get_content_type ();
}
catch (Error e) {
throw new Oopsie.USER (_("Can't open file %s:\n%s").printf (uri, e.message));
throw new Oopsie.USER ("Can't open file %s:\n%s".printf (uri, e.message));
}
var buffer = new Soup.Buffer.take (contents);

View File

@ -32,6 +32,7 @@ public class Tooth.API.Tag : Entity, Widgetizable {
suffix = _("in the past 2 days");
}
// translators: the first two are numbers, the last one is either "yesterday" or "in the past 2 days"
w.subtitle = _("Used %d times by %d people %s").printf (total_uses, total_accounts, suffix);
}
w.activated.connect(on_activated);

View File

@ -116,7 +116,7 @@ namespace Tooth {
StyleContext.add_provider_for_display (Gdk.Display.get_default (), zoom_css_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
}
catch (Error e) {
var msg = _("Could not start application: %s").printf (e.message);
var msg = "Could not start application: %s".printf (e.message);
inform (Gtk.MessageType.ERROR, _("Error"), msg);
error (msg);
}

View File

@ -52,11 +52,11 @@ public class Tooth.AttachmentsPage : ComposerPage {
public override void on_build (Dialogs.Compose dialog, API.Status status) {
base.on_build (dialog, status);
// Empty state
var attach_button = new Button.with_label (_("Add Media")) {
halign = Align.CENTER,
sensitive = accounts.active.instance_info.compat_status_max_media_attachments > 0
};
// Empty state
attach_button.add_css_class("pill");
attach_button.clicked.connect (show_file_selector);
@ -85,6 +85,7 @@ public class Tooth.AttachmentsPage : ComposerPage {
icon_name = "tooth-eye-open-negative-filled-symbolic",
valign = Gtk.Align.CENTER,
halign = Gtk.Align.CENTER,
// translators: sensitive as in not safe for work or similar
tooltip_text = _("Mark media as sensitive"),
css_classes = {"flat"}
};
@ -92,6 +93,7 @@ public class Tooth.AttachmentsPage : ComposerPage {
var sensitive_media_button_active = src.get_boolean ();
target.set_boolean (sensitive_media_button_active);
sensitive_media_button.icon_name = sensitive_media_button_active ? "tooth-eye-not-looking-symbolic" : "tooth-eye-open-negative-filled-symbolic";
// translators: sensitive as in not safe for work or similar
sensitive_media_button.tooltip_text = sensitive_media_button_active ? _("Unmark media as sensitive") : _("Mark media as sensitive");
return true;
});
@ -158,6 +160,7 @@ public class Tooth.AttachmentsPage : ComposerPage {
filter.add_mime_type (mime_type);
}
// translators: Open file
var chooser = new FileChooserNative (_("Open"), dialog, Gtk.FileChooserAction.OPEN, null, null) {
select_multiple = true,
filter = filter

View File

@ -1,7 +1,7 @@
using Gtk;
using Gee;
[GtkTemplate (ui = "/dev/geopjr/tooth/ui/dialogs/compose.ui")]
[GtkTemplate (ui = "/dev/geopjr/Tooth/ui/dialogs/compose.ui")]
public class Tooth.Dialogs.Compose : Adw.Window {
public API.Status status { get; construct set; }

View File

@ -7,6 +7,7 @@ public class Tooth.EditorPage : ComposerPage {
public bool can_publish { get; set; default = false; }
construct {
// translators: "Text" as in text-based input
title = _("Text");
icon_name = "tooth-edit-symbolic";
@ -174,7 +175,7 @@ public class Tooth.EditorPage : ComposerPage {
cw_button = new ToggleButton () {
icon_name = "tooth-warning-symbolic",
tooltip_text = _("Spoiler Warning")
tooltip_text = _("Content Warning")
};
cw_button.toggled.connect (validate);
cw_button.bind_property ("active", revealer, "reveal_child", GLib.BindingFlags.SYNC_CREATE);

View File

@ -1,7 +1,7 @@
using Gtk;
using Gdk;
[GtkTemplate (ui = "/dev/geopjr/tooth/ui/dialogs/main.ui")]
[GtkTemplate (ui = "/dev/geopjr/Tooth/ui/dialogs/main.ui")]
public class Tooth.Dialogs.MainWindow: Adw.ApplicationWindow, Saveable {
public const string ZOOM_CLASS = "ttl-scalable";
@ -17,9 +17,6 @@ public class Tooth.Dialogs.MainWindow: Adw.ApplicationWindow, Saveable {
var gtk_settings = Gtk.Settings.get_default ();
// settings.bind_property ("dark-theme", gtk_settings, "gtk-application-prefer-dark-theme", BindingFlags.SYNC_CREATE);
settings.notify["post-text-size"].connect (() => on_zoom_level_changed ());
on_zoom_level_changed ();
// button_press_event.connect (on_button_press);
}
@ -82,19 +79,6 @@ public class Tooth.Dialogs.MainWindow: Adw.ApplicationWindow, Saveable {
// return false;
// }
void on_zoom_level_changed () {
var scale = settings.post_text_size;
var css = "";
if (scale > 100) {
css ="""
.%s label {
font-size: %i%;
}
""".printf (ZOOM_CLASS, scale);
}
// app.zoom_css_provider.load_from_data (css.data);
}
[GtkCallback]
void on_view_changed () {
var view = leaflet.visible_child as Views.Base;

View File

@ -1,10 +1,10 @@
using Gtk;
[GtkTemplate (ui = "/dev/geopjr/tooth/ui/dialogs/new_account.ui")]
[GtkTemplate (ui = "/dev/geopjr/Tooth/ui/dialogs/new_account.ui")]
public class Tooth.Dialogs.NewAccount: Adw.Window {
const string AUTO_AUTH_DESCRIPTION = _("Allow access to your account in the browser. If something went wrong, <a href=\"tooth://manual_auth\">try manual authorization</a>.");
const string CODE_AUTH_DESCRIPTION = _("Copy the authorization code from the browser and paste it here.");
const string CODE_AUTH_DESCRIPTION = _("Copy the authorization code from the browser and paste it below.");
const string scopes = "read write follow";

View File

@ -1,13 +1,12 @@
using Gtk;
[GtkTemplate (ui = "/dev/geopjr/tooth/ui/dialogs/preferences.ui")]
[GtkTemplate (ui = "/dev/geopjr/Tooth/ui/dialogs/preferences.ui")]
public class Tooth.Dialogs.Preferences : Adw.PreferencesWindow {
[GtkChild] unowned Adw.ComboRow scheme_combo_row;
[GtkChild] unowned Switch autostart;
[GtkChild] unowned Switch work_in_background;
[GtkChild] unowned SpinButton timeline_page_size;
[GtkChild] unowned SpinButton post_text_size;
[GtkChild] unowned Switch live_updates;
[GtkChild] unowned Switch public_live_updates;
[GtkChild] unowned Switch show_spoilers;
@ -45,7 +44,6 @@ public class Tooth.Dialogs.Preferences : Adw.PreferencesWindow {
settings.bind ("autostart", autostart, "active", SettingsBindFlags.DEFAULT);
settings.bind ("work-in-background", work_in_background, "active", SettingsBindFlags.DEFAULT);
settings.bind ("timeline-page-size", timeline_page_size.adjustment, "value", SettingsBindFlags.DEFAULT);
settings.bind ("post-text-size", post_text_size.adjustment, "value", SettingsBindFlags.DEFAULT);
settings.bind ("live-updates", live_updates, "active", SettingsBindFlags.DEFAULT);
settings.bind ("public-live-updates", public_live_updates, "active", SettingsBindFlags.DEFAULT);
settings.bind ("show-spoilers", show_spoilers, "active", SettingsBindFlags.DEFAULT);

View File

@ -133,7 +133,7 @@ public class Tooth.InstanceAccount : API.Account, Streamable {
break;
case KIND_REBLOG:
icon = "tooth-media-playlist-repeat-symbolic";
descr = _("%s boosted your status").printf (account.display_name);
descr = _("%s boosted your post").printf (account.display_name);
descr_url = account.url;
break;
case KIND_REMOTE_REBLOG:
@ -143,7 +143,7 @@ public class Tooth.InstanceAccount : API.Account, Streamable {
break;
case KIND_FAVOURITE:
icon = "tooth-starred-symbolic";
descr = _("%s favorited your status").printf (account.display_name);
descr = _("%s favorited your post").printf (account.display_name);
descr_url = account.url;
break;
case KIND_FOLLOW:

View File

@ -130,13 +130,14 @@ public class Tooth.Mastodon.Account : InstanceAccount {
});
set_visibility (new Visibility () {
id = "unlisted",
// translators: Probably follow Mastodon's translation
name = _("Unlisted"),
icon_name = "tooth-padlock2-open-symbolic",
description = _("Don\'t post to public timelines")
});
set_visibility (new Visibility () {
id = "private",
name = _("Followers-only"),
name = _("Followers Only"),
icon_name = "tooth-padlock2-symbolic",
description = _("Post to followers only")
});

View File

@ -76,6 +76,7 @@ public class Tooth.SecretAccountStore : AccountStore {
account.instance_info = null;
generator.set_root (account.to_json ());
var secret = generator.to_data (null);
// translators: The variable is the backend like "Mastodon"
var label = _("%s Account").printf (account.backend);
try {

View File

@ -7,7 +7,6 @@ public class Tooth.Settings : GLib.Settings {
public bool autostart { get; set; }
public bool work_in_background { get; set; }
public int timeline_page_size { get; set; }
public int post_text_size { get; set; }
public bool live_updates { get; set; }
public bool public_live_updates { get; set; }
public bool show_spoilers { get; set; }
@ -22,7 +21,6 @@ public class Tooth.Settings : GLib.Settings {
init ("autostart");
init ("work-in-background");
init ("timeline-page-size");
init ("post-text-size");
init ("live-updates");
init ("public-live-updates");
init ("show-spoilers");
@ -44,10 +42,13 @@ public enum Tooth.ColorScheme {
public string to_string () {
switch (this) {
case SYSTEM:
// translators: Follow System's dark mode preference
return _("Follow System");
case LIGHT:
// translators: Light mode theme
return _("Light");
case DARK:
// translators: Dark mode theme
return _("Dark");
default:
assert_not_reached ();

View File

@ -20,6 +20,9 @@ public class Tooth.DateTime {
var days = delta / TimeSpan.DAY;
return _(@"$(days)d left");
} else {
// translators: %b is Month name (short)
// %-e is the Day number
// %Y is the year (with century)
return date.format (_("expires on %b %-e, %Y"));
}
}
@ -29,6 +32,11 @@ public class Tooth.DateTime {
var now = new GLib.DateTime.now_local ();
var delta = now.difference (date);
if (delta < 0)
// translators: %b is Month name (short)
// %-e is the Day number
// %Y is the year (with century)
// %H is the hours (24h format)
// %m is the minutes
return date.format (_("expires on %b %-e, %Y %H:%m"));
else if (delta <= TimeSpan.MINUTE)
return _("expired on just now");
@ -44,9 +52,14 @@ public class Tooth.DateTime {
return _("expired yesterday");
}
else if (date.get_year () == now.get_year ()) {
// translators: %b is Month name (short)
// %-e is the Day number
return date.format (_("expired on %b %-e"));
}
else {
// translators: %b is Month name (short)
// %-e is the Day number
// %Y is the year (with century)
return date.format (_("expired on %b %-e, %Y"));
}
}
@ -56,6 +69,11 @@ public class Tooth.DateTime {
var now = new GLib.DateTime.now_local ();
var delta = now.difference (date);
if (delta < 0)
// translators: %b is Month name (short)
// %-e is the Day number
// %Y is the year (with century)
// %H is the hours (24h format)
// %m is the minutes
return date.format (_("%b %-e, %Y %H:%m"));
else if (delta <= TimeSpan.MINUTE)
return _("Just now");
@ -71,9 +89,14 @@ public class Tooth.DateTime {
return _("Yesterday");
}
else if (date.get_year () == now.get_year ()) {
// translators: %b is Month name (short)
// %-e is the Day number
return date.format (_("%b %-e"));
}
else {
// translators: %b is Month name (short)
// %-e is the Day number
// %Y is the year (with century)
return date.format (_("%b %-e, %Y"));
}
}

View File

@ -13,7 +13,7 @@ public class Tooth.Host {
try {
var success = AppInfo.launch_default_for_uri (uri, null);
if (!success)
throw new Oopsie.USER (_("launch_default_for_uri() failed"));
throw new Oopsie.USER ("launch_default_for_uri() failed");
}
catch (Error e){
Gtk.show_uri(app.active_window, uri, Gdk.CURRENT_TIME);

View File

@ -1,6 +1,6 @@
public class Tooth.HtmlUtils {
public const string FALLBACK_TEXT = _("[ There was an error parsing this text :c ]");
public const string FALLBACK_TEXT = "[ There was an error parsing this text ]";
public static string remove_tags (string content) {
try {

View File

@ -1,6 +1,6 @@
using Gtk;
[GtkTemplate (ui = "/dev/geopjr/tooth/ui/views/base.ui")]
[GtkTemplate (ui = "/dev/geopjr/Tooth/ui/views/base.ui")]
public class Tooth.Views.Base : Box {
public static string STATUS_EMPTY = _("Nothing to see here");

View File

@ -62,7 +62,7 @@ public class Tooth.Views.Profile : Views.Timeline {
.exec ();
}
[GtkTemplate (ui = "/dev/geopjr/tooth/ui/views/profile_header.ui")]
[GtkTemplate (ui = "/dev/geopjr/Tooth/ui/views/profile_header.ui")]
protected class Cover : Box {
[GtkChild] unowned Widgets.Background background;
@ -487,12 +487,16 @@ public class Tooth.Views.Profile : Views.Timeline {
.then ((sess, msg) => {
var toast_msg = "";
if (button.remove) {
// translators: First variable is a handle, second variable is a list name
toast_msg = _("User \"%s\" got removed from \"%s\"").printf (profile.handle, list.title);
button.icon_name = "tooth-plus-large-symbolic";
// translators: First variable is a handle, second variable is a list name
button.tooltip_text = _("Add \"%s\" to \"%s\"").printf (profile.handle, list.title);
} else {
// translators: First variable is a handle, second variable is a list name
toast_msg = _("User \"%s\" got added to \"%s\"").printf (profile.handle, list.title);
button.icon_name = "tooth-minus-large-symbolic";
// translators: First variable is a handle, second variable is a list name
button.tooltip_text = _("Remove \"%s\" from \"%s\"").printf (profile.handle, list.title);
}

View File

@ -1,6 +1,6 @@
using Gtk;
[GtkTemplate (ui = "/dev/geopjr/tooth/ui/views/sidebar/view.ui")]
[GtkTemplate (ui = "/dev/geopjr/Tooth/ui/views/sidebar/view.ui")]
public class Tooth.Views.Sidebar : Box, AccountHolder {
[GtkChild] unowned ToggleButton accounts_button;
@ -126,7 +126,7 @@ public class Tooth.Views.Sidebar : Box, AccountHolder {
// Item
[GtkTemplate (ui = "/dev/geopjr/tooth/ui/views/sidebar/item.ui")]
[GtkTemplate (ui = "/dev/geopjr/Tooth/ui/views/sidebar/item.ui")]
protected class ItemRow : ListBoxRow {
public Place place;
@ -177,7 +177,7 @@ public class Tooth.Views.Sidebar : Box, AccountHolder {
// Account
[GtkTemplate (ui = "/dev/geopjr/tooth/ui/views/sidebar/account.ui")]
[GtkTemplate (ui = "/dev/geopjr/Tooth/ui/views/sidebar/account.ui")]
protected class AccountRow : Adw.ActionRow {
public InstanceAccount? account;

View File

@ -165,7 +165,7 @@ public class Tooth.Widgets.Attachment.Item : Adw.Bin {
var menu_model = new GLib.Menu ();
menu_model.append (_("Open in Browser"), "attachment.open-in-browser");
menu_model.append (_("Copy URL"), "attachment.copy-url");
menu_model.append (_("Save as…"), "attachment.save-as");
menu_model.append (_("Save Media"), "attachment.save-as");
context_menu = new PopoverMenu.from_model(menu_model);
context_menu.set_parent(this);

View File

@ -1,7 +1,7 @@
using Gtk;
using Gdk;
[GtkTemplate (ui = "/dev/geopjr/tooth/ui/widgets/status.ui")]
[GtkTemplate (ui = "/dev/geopjr/Tooth/ui/widgets/status.ui")]
public class Tooth.Widgets.Status : ListBoxRow {
API.Status? _bound_status = null;
@ -367,12 +367,12 @@ public class Tooth.Widgets.Status : ListBoxRow {
formal_bindings.bind_property ("content", content, "content", BindingFlags.SYNC_CREATE);
formal_bindings.bind_property ("reblogs_count", reblog_count_label, "label", BindingFlags.SYNC_CREATE, (b, src, ref target) => {
int64 srcval = (int64) src;
target.set_string (@"<b>$srcval</b> " + _("Reblogs"));
target.set_string (@"<b>$srcval</b> " + _("Boosts"));
return true;
});
formal_bindings.bind_property ("favourites_count", fav_count_label, "label", BindingFlags.SYNC_CREATE, (b, src, ref target) => {
int64 srcval = (int64) src;
target.set_string (@"<b>$srcval</b> " + _("Favourites"));
target.set_string (@"<b>$srcval</b> " + _("Favorites"));
return true;
});
formal_bindings.bind_property ("replies_count", reply_button_content, "label", BindingFlags.SYNC_CREATE, (b, src, ref target) => {
@ -469,7 +469,7 @@ public class Tooth.Widgets.Status : ListBoxRow {
icon_toggled_name = "tooth-starred-symbolic"
};
favorite_button.add_css_class("ttl-status-action-star");
favorite_button.tooltip_text = _("Favourite");
favorite_button.tooltip_text = _("Favorite");
actions.append (favorite_button);
bookmark_button = new StatusActionButton () {

View File

@ -2,7 +2,7 @@ using Gtk;
using Gdk;
using Gee;
[GtkTemplate (ui = "/dev/geopjr/tooth/ui/widgets/votebox.ui")]
[GtkTemplate (ui = "/dev/geopjr/Tooth/ui/widgets/votebox.ui")]
public class Tooth.Widgets.VoteBox: Box {
[GtkChild] protected unowned ListBox pollBox;
[GtkChild] protected unowned Button button_vote;