Yuito-app-android/app/src/main/res/values/donottranslate.xml

268 lines
8.7 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="tusky_website" translatable="false">https://tusky.app</string>
<string name="about_app_version">%1$s %2$s</string>
2017-04-06 19:01:02 +02:00
<string name="oauth_scheme" translatable="false">oauth2redirect</string>
<string name="preferences_file_key" translatable="false">com.keylesspalace.tusky.PREFERENCES</string>
<string name="at_symbol" translatable="false">\@</string>
<string name="hash_symbol" translatable="false">#</string>
<string name="title_tag" translatable="false">#%s</string>
2017-11-30 20:12:09 +01:00
2019-06-29 08:34:58 +02:00
<string name="emoji_shortcode_format" translatable="false">:%s:</string>
<string name="post_timestamp_with_edited_indicator" translatable="false">%s *</string>
<string name="metadata_joiner" translatable="false">" • "</string>
Add trending tags (#3149) * Add initial feature for viewing trending graphs. Currently only views hash tag trends. Contains API additions, tab additions and a set of trending components. * Add clickable system through a LinkListener. Duplicates a little code from SFragment. * Add accessibility description. * The background for the graph should match the background for black theme too. * Add error handling through a state flow system using existing code as an example. * Graphing: Use a primary and a secondary line. Remove under line fill. Apply line thickness. Dotted end of line. * Trending changes: New layout for trending: Cell. Use ViewBinding. Add padding to RecyclerView to stop the FAB from hiding content. Multiple bugs in GraphView resolved. Wide (landscape, for example) will show 4 columns, portrait will show 2. Remove unused base holder class. ViewModel invalidate scoping changed. Some renaming to variables made. For uses and accounts, use longs. These could be big numbers eventually. TagViewHolder renamed to TrendingTagViewHolder. * Trending changes: Remove old layout. Update cell textsizes and use proper string. Remove bad comment. * Trending changes: Refresh the main drawer when the tabs are edited. This will allow the trending item to toggle. * Trending changes: Add a trending activity to be able to view the trending data from the main drawer. * Trending changes: The title text should be changed to Trending Hashtags. * Trending changes: Add meta color to draw axis etc. Draw the date boundaries on the graph. Remove dates from each cell and place them in the list as a header. Graphs should be proportional to the highest historical value. Add a new interface to control whether the FAB should be visible (important when switching tabs, the state is lost). Add header to the adapter and viewdata structures. Add QOL extensions for getting the dates from history. * Trending changes: Refresh FAB through the main activity and FabFragment interface. Trending has no FAB. * Trending changes: Make graph proportional to the highest usage value. Fixes to the graph ratio calculations. * Trending changes: KtLintFix * Trending changes: Remove accidental build gradle change. Remove trending cases. Remove unused progress. Set drawer button addition explicitly to false, leaving the code there for future issue #3010. Remove unnecessary arguments for intent. Remove media preview preferences, there is nothing to preview. No padding between hashtag symbol and text. Do not ellipsize hashtags. * Trending changes: Use bottomsheet slide in animation helper for opening the hashtag intent. Remove explicit layout height from the XML and apply it to the view holder itself. The height was not being respected in XML. * Use some platform standards for styling - Align on an 8dp grid - Use android:attr for paddingStart and paddingEnd - Use textAppearanceListItem variants - Adjust constraints to handle different size containers * Correct lineWidth calculations Previous code didn't convert the value to pixels, so it was always displaying as a hairline stroke, irrespective of the value in the layout file. While I'm here, rename from lineThickness to lineWidth, to be consistent with parameters like strokeWidth. * Does not need to inherit from FabFragment * Rename to TrendingAdapter "Paging" in the adapter name is a misnomer here * Clean up comments, use full class name as tag * Simplify TrendingViewModel - Remove unncessary properties - Fetch tags and map in invalidate() - emptyList() instead of listOf() for clarity * Remove line dividers, use X-axis to separate content Experiment with UI -- instead of dividers between each item, draw an explicit x-axis for each chart, and add a little more vertical padding, to see if that provides a cleaner separation between the content * Adjust date format - Show day and year - Use platform attributes for size * Locale-aware format of numbers Format numbers < 100,000 by inserting locale-aware separators. Numbers larger are scaled and have K, M, G, ... etc suffix appended. * Prevent a crash if viewData is empty Don't access viewData without first checking if it's empty. This can be the case if the server returned an empty list for some reason, or the data has been filtered. * Filter out tags the user has filtered from their home timeline Invalidate the list if the user's preferences change, as that may indicate they've changed their filters. * Experiment with alternative layout * Set chart height to 160dp to align to an 8dp grid * Draw ticks that are 5% the height of the x-axis * Legend adjustments - Use tuskyblue for the ticks - Wrap legend components in a layout so they can have a dedicated background - Use a 60% transparent background for the legend to retain legibility if lines go under it * Bezier curves, shorter cell height * More tweaks - List tags in order of popularity, most popular first - Make it clear that uses/accounts in the legend are totals, not current - Show current values at end of the chart * Hide FAB * Fix crash, it's not always hosted in an ActionButtonActivity * Arrange totals vertically in landscape layout * Always add the Trending drawer menu if it's not a tab * Revert unrelated whitespace changes * One more whitespace revert --------- Co-authored-by: Nik Clayton <nik@ngo.org.uk>
2023-02-14 19:52:11 +01:00
<string name="date_range" translatable="false">%1$s — %2$s</string>
2019-06-29 08:34:58 +02:00
<string-array name="post_privacy_values">
<item>public</item>
<item>unlisted</item>
<item>private</item>
</string-array>
<string-array name="post_text_size_values">
<item>smallest</item>
<item>small</item>
<item>medium</item>
<item>large</item>
<item>largest</item>
</string-array>
Theming improvements (#502) * Split theme definitions into day and night * Add support for Night Mode in code * Add theme chooser in preferences * Fix translations * Adjust IDs * Adjust preferences for custom themes * UI tweaks for custom theme support * Added code for custom theme support 🍅 * Fixed resource display in Kotlin 🍅 * Restored styles * Updated strings * Fixed getIdentifier() to fit into setTheme() * Removed redundant resources * Reset default theme to "Dusky" * Fixed night mode handler to maintain compatibility * Refactor functions to use helper methods * Added license block * Added preview to theme selector * Added color identifier getter helper method * Fixed reference in AccountMediaFragment * Cleanup * Fixed navbar foreground not changing color * Fix fallback theme switch(){} * Enable location-based daylight trigger * Cleanup * Modified theming strategy to reduce clutter in preferences * Updated translations for latest version * Removed "Default" theme flavor from settings * Updated Polish translations 🇵🇱 * Modified TwilightManager handling code to support Android M's UiModeManager features and moved it to its own function * Updated Polish translations 🇵🇱 * Cleanup; Fixed hardcoded string * Added missing escape in string * Removed permission request dialog. As we now use native UiModeManager APIs that don't need special permission for Android 6.0 and above, we no longer need to bother user with Android M+ specific location permission request dialog. * Increased readability of ThemeUtil class * Refactored ThemeUtils.setAppNightMode method * Cleanup
2018-01-20 13:39:01 +01:00
<string-array name="app_theme_values">
<item>night</item>
<item>day</item>
<item>black</item>
2018-02-03 23:26:53 +01:00
<item>auto</item>
<item>auto_system</item>
Theming improvements (#502) * Split theme definitions into day and night * Add support for Night Mode in code * Add theme chooser in preferences * Fix translations * Adjust IDs * Adjust preferences for custom themes * UI tweaks for custom theme support * Added code for custom theme support 🍅 * Fixed resource display in Kotlin 🍅 * Restored styles * Updated strings * Fixed getIdentifier() to fit into setTheme() * Removed redundant resources * Reset default theme to "Dusky" * Fixed night mode handler to maintain compatibility * Refactor functions to use helper methods * Added license block * Added preview to theme selector * Added color identifier getter helper method * Fixed reference in AccountMediaFragment * Cleanup * Fixed navbar foreground not changing color * Fix fallback theme switch(){} * Enable location-based daylight trigger * Cleanup * Modified theming strategy to reduce clutter in preferences * Updated translations for latest version * Removed "Default" theme flavor from settings * Updated Polish translations 🇵🇱 * Modified TwilightManager handling code to support Android M's UiModeManager features and moved it to its own function * Updated Polish translations 🇵🇱 * Cleanup; Fixed hardcoded string * Added missing escape in string * Removed permission request dialog. As we now use native UiModeManager APIs that don't need special permission for Android 6.0 and above, we no longer need to bother user with Android M+ specific location permission request dialog. * Increased readability of ThemeUtil class * Refactored ThemeUtils.setAppNightMode method * Cleanup
2018-01-20 13:39:01 +01:00
</string-array>
2018-02-03 23:26:53 +01:00
<string-array name="language_entries">
<item>@string/system_default</item>
<item>Català</item>
<item>Čeština</item>
<item>Cymraeg</item>
<item>Deutsch</item>
<item>English (UK)</item>
<item>English (US)</item>
<item>Esperanto</item>
<item>Español</item>
<item>Euskara</item>
<item>Français</item>
<item>Gaeilge</item>
<item>Gàidhlig</item>
<item>Galego</item>
<item>íslenska</item>
<item>Italiano</item>
<item>Magyar</item>
<item>Nederlands</item>
<item>Norsk</item>
<item>Occitan</item>
<item>Polski</item>
<item>Português (Brasil)</item>
<item>Português (Portugal)</item>
<item>Slovenščina</item>
<item>Svenska</item>
<item>Taqbaylit</item>
<item>Tiếng Việt</item>
<item>Türkçe</item>
<item>Беларуская</item>
<item>български</item>
<item>Русский</item>
<item>Українська</item>
<item>العربية</item>
<item>کوردیی ناوەندی</item>
<item>বাংলা (বাংলাদেশ)</item>
<item>বাংলা (ভারত)</item>
<item>فارسی</item>
<item>हिंदी</item>
<item>संस्कृतम्</item>
<item>ଓଡ଼ିଆ</item> <!-- or: Odia -->
<item>தமிழ்</item>
<item>ภาษาไทย</item>
<item>한국어</item>
<item>中文(台灣)</item>
<item>中文(新加坡)</item>
<item>中文(澳門)</item>
<item>中文(简体)</item>
<item>中文(香港)</item>
<item>日本語</item>
</string-array>
<string-array name="language_values">
<item>default</item>
<item>ca</item>
<item>cs</item>
<item>cy</item>
<item>de</item>
<item>en-GB</item>
<item>en</item>
<item>eo</item>
<item>es</item>
<item>eu</item>
<item>fr</item>
<item>ga</item>
<item>gd</item>
<item>gl</item>
<item>is</item>
<item>it</item>
<item>hu</item>
<item>nl</item>
<item>nb-NO</item>
<item>oc</item>
<item>pl</item>
<item>pt-BR</item>
<item>pt-PT</item>
<item>sl</item>
<item>sv</item>
<item>kab</item>
<item>vi</item>
<item>tr</item>
<item>be</item>
<item>bg</item>
<item>ru</item>
<item>uk</item>
<item>ar</item>
<item>ckb</item>
<item>bn-BD</item>
<item>bn-IN</item>
<item>fa</item>
<item>hi</item>
<item>sa</item>
<item>or</item>
<item>ta</item>
<item>th</item>
<item>ko</item>
<item>zh-TW</item>
<item>zh-SG</item>
<item>zh-MO</item>
<item>zh-CN</item>
<item>zh-HK</item>
<item>ja</item>
</string-array>
<string-array name="pref_main_nav_position_options">
<item>@string/pref_main_nav_position_option_top</item>
<item>@string/pref_main_nav_position_option_bottom</item>
</string-array>
<string-array name="pref_main_nav_position_values">
<item>top</item>
<item>bottom</item>
</string-array>
<string-array name="pref_show_self_username_values">
<item>always</item>
<item>disambiguate</item>
<item>never</item>
</string-array>
<string name="description_status" translatable="false">
<!-- Display name, cw?, content?, poll? relative date, edited?, reposted by?, reposted?, favorited?, bookmarked?, username, media?; visibility, fav number?, reblog number?-->
%1$s; %2$s; %3$s, %15$s %4$s, %5$s, %6$s; %7$s, %8$s, %9$s, %10$s, %11$s; %12$s, %13$s, %14$s
</string>
<string-array name="poll_duration_names">
<item>@string/duration_5_min</item>
<item>@string/duration_30_min</item>
<item>@string/duration_1_hour</item>
<item>@string/duration_6_hours</item>
<item>@string/duration_1_day</item>
<item>@string/duration_3_days</item>
<item>@string/duration_7_days</item>
<item>@string/duration_14_days</item>
<item>@string/duration_30_days</item>
<item>@string/duration_60_days</item>
<item>@string/duration_90_days</item>
<item>@string/duration_180_days</item>
<item>@string/duration_365_days</item>
</string-array>
<integer-array name="poll_duration_values"> <!-- values in seconds, corresponding to poll_duration_names -->
<item>300</item>
<item>1800</item>
<item>3600</item>
<item>21600</item>
<item>86400</item>
<item>259200</item>
<item>604800</item>
<item>1209600</item>
<item>2592000</item>
<item>5184000</item>
<item>7776000</item>
<item>15552000</item>
<item>31536000</item>
</integer-array>
<string name="poll_percent_format"><!-- 15% --> &lt;b>%1$d%%&lt;/b></string>
<string-array name="mute_duration_names">
<item>@string/duration_indefinite</item>
<item>@string/duration_5_min</item>
<item>@string/duration_30_min</item>
<item>@string/duration_1_hour</item>
<item>@string/duration_6_hours</item>
<item>@string/duration_1_day</item>
<item>@string/duration_3_days</item>
<item>@string/duration_7_days</item>
</string-array>
<integer-array name="mute_duration_values"> <!-- values in seconds, corresponding to mute_duration_names -->
<item>0</item>
<item>300</item>
<item>1800</item>
<item>3600</item>
<item>21600</item>
<item>86400</item>
<item>259200</item>
<item>604800</item>
</integer-array>
<string-array name="filter_duration_names">
<item>@string/duration_indefinite</item>
<item>@string/duration_5_min</item>
<item>@string/duration_30_min</item>
<item>@string/duration_1_hour</item>
<item>@string/duration_6_hours</item>
<item>@string/duration_1_day</item>
<item>@string/duration_3_days</item>
<item>@string/duration_7_days</item>
</string-array>
<integer-array name="filter_duration_values"> <!-- values in seconds, corresponding to mute_duration_names -->
<item>0</item>
<item>300</item>
<item>1800</item>
<item>3600</item>
<item>21600</item>
<item>86400</item>
<item>259200</item>
<item>604800</item>
</integer-array>
Keep scroll position when loading missing statuses (#3000) * Change "Load more" to load oldest statuses first in home timeline Previous behaviour loaded missing statuses by using "since_id" and "max_id". This loads the most recent N statuses, looking backwards from "max_id". Change to load the oldest statuses first, assuming the user is scrolling up through the timeline and will want to load statuses in reverse chronological order. * Scroll to the bottom of new entries added by "Load more" - Remember the position of the "Load more" placeholder - Check the position of inserted entries - If they match, scroll to the bottom * Change "Load more" to load oldest statuses first in home timeline Previous behaviour loaded missing statuses by using "since_id" and "max_id". This loads the most recent N statuses, looking backwards from "max_id". Change to load the oldest statuses first, assuming the user is scrolling up through the timeline and will want to load statuses in reverse chronological order. * Scroll to the bottom of new entries added by "Load more" - Remember the position of the "Load more" placeholder - Check the position of inserted entries - If they match, scroll to the bottom * Ensure the user can't have two simultaneous "Load more" coroutines Having two simultanous coroutines would break the calculation used to figure out which item in the list to scroll to after a "Load more" in the timeline. Do this by: - Creating a TimelineUiState and associated flow that tracks the "Load more" state - Updating this in the (Cached|Network)TimelineViewModel - Listening for changes to it in TimelineFragment, and notifying the adapter - The adapter will disable any placeholder views while "Load more" is active * Revert changes that loaded the oldest statuses instead of the newest * Be more robust about locating the status to scroll to Weirdness with the PagingData library meant that positionStart could still be wrong after "Load more" was clicked. Instead, remember the position of the "Load more" item and the ID of the status immediately after it. When new items are added, search for the remembered status at the position of the "Load more" item. This is quick, testing at most LOAD_AT_ONCE items in the adapter. If the remembered status is not visible on screen then scroll to it. * Lint * Add a preference to specify the reading order Default behaviour (oldest first) is for "load more" to load statuses and stay at the oldest of the new statuses. Alternative behaviour (if the user is reading from top to bottom) is to stay at the newest of the new statuses. * Move ReadingOrder enum construction logic in to the enum * Jump to top if swipe/refresh while preferring newest-first order * Show a circular progress spinner during "Load more" operations Remove a dedicated view, and use an icon on the button instead. Adjust the placeholder attributes and styles accordingly. * Remove the "loadMoreActive" property Complicates the code and doesn't really achieve the desired effect. If the user wants to tap multiple "Load more" buttons they can. * Update comments in TimelineFragment * Respect the user's reading order preference if it changes * Add developer tools This is for functionality that makes it easier for developers to interact with the app, or get it in to a known-state. These features are for use by users, so are only visible in debug builds. * Adjust how content is loaded based on preferred reading order - Add the readingOrder to TimelineViewModel so derived classes can use it. - Update the homeTimeline API to support the `minId` parameter and update calls in NetworkTimelineViewModel In CachedTimelineViewModel: - Set the bounds of the load to be the status IDs on either side of the placeholder ID (update TimelineDao with a new query for this) - Load statuses using either minId or sinceId depending on the reading order - Is there was no overlap then insert the new placeholder at the start/end of the list depending on reading order * Lint * Rename unused dialog parameter to _ * Update API arguments in tests * Simplify ReadingOrder preference handling * Fix bug with Placeholder and the "expanded" property If a status is a Placeholder the "expanded" propery is used to indicate whether or not it is loading. replaceStatusRange() set this property based on the old value, and the user's alwaysOpenSpoiler preference setting. This shouldn't have been used if the status is a Placeholder, as it can lead to incorrect loading states. Fix this. While I'm here, introduce an explicit computed property for whether a TimelineStatusEntity is a placeholder, and use that for code clarity. * Set the "Load more" button background to transparent * Fix typo. * Inline spec, update comment * Revert 1480c6aa3ac5c0c2d362fb271f47ea2259ab14e2 Turns out the behaviour is not desired. * Remove unnecessary Log call * Extract function * Change default to newest first
2023-01-13 19:26:24 +01:00
<string-array name="reading_order_names">
<item>@string/pref_reading_order_oldest_first</item>
<item>@string/pref_reading_order_newest_first</item>
</string-array>
<string-array name="reading_order_values">
<item>OLDEST_FIRST</item>
<item>NEWEST_FIRST</item>
</string-array>
<string-array name="filter_action_values">
<item>warn</item>
<item>hide</item>
</string-array>
<string-array name="filter_context_values">
<item>home</item>
<item>notifications</item>
<item>public</item>
<item>thread</item>
<item>account</item>
</string-array>
</resources>