Simplify and enhance language detection and file loading mechanism:
- Parse primary language from browser settings more accurately.
- Remove redundant scanning of language files.
- Load default English language file as a base.
- Add support for region-specific language files if available.
- Remove unused language strings from various translation files.
These changes enhance the robustness and efficiency of language handling, ensuring better support for user language preferences.
Updated browser language detection to handle full locale strings and
mapped various Chinese variants to simplified or traditional Chinese.
Renamed language files for consistency with the new alias system.
This improves support for a wider array of language settings, ensuring
users receive content in their preferred language variant when possible.
Updated the default GitHub URL in the configuration to point to the new repository at git.private.coffee. Ensures users are directed to the correct project location for up-to-date resources and issue tracking.
Added logic to check for the existence of 'coingecko.json' and generate it by executing 'coingecko.php' if it doesn't exist. This ensures that the necessary data file is available on first run, preventing potential errors or missing data.
Updated the currency conversion URLs to the new `monerooo.private.coffee` site. This change ensures users are directed to the current and actively maintained service. Updated examples maintain consistency and improve user experience.
Expanded README with detailed sections including usage, features, installation, configuration, and contribution guidelines. Enhanced documentation provides clarity on converting XMR to/from fiat, office application integrations, and new project enhancements. This makes the project more accessible for users and contributors.
Replaced the hardcoded GitHub URL with a dynamic variable in the Polish translation file. This change improves maintainability by ensuring the URL is consistent and easier to update globally.
Localized various strings and metadata in the application to Czech, Greek, Persian, and Dutch languages. Updated translations for currency names, descriptions, and web elements to improve user experience for non-English speakers.
Refactored inline exchangeRates script to main.js for better practice and maintainability. Enhanced the noscript warning message's readability by replacing paragraph tags with line breaks, ensuring clearer instructions for users without JavaScript.
Added a noscript alert message for users with JavaScript disabled, informing them about the limitations and manual controls available. Improved UI spacing with an additional margin in the conversion button section. Adjusted CSS padding for better visual alignment. Expanded Webpack safelist to include alert classes for proper styling.
Removed event listeners on conversion buttons and instead
hide them when JavaScript is enabled. This aims to improve
the user experience by preventing redundant UI interactions
that are handled dynamically.
Introduced bidirectional conversion functionality for XMR to fiat calculations. Added form elements and event listeners to handle user inputs and conversion direction. Enhanced URL and metadata processing to be dynamic based on protocol. Updated UI with conversion buttons for a better user experience. Safelisted new CSS classes in webpack configuration.
Relocated the configuration setup to the top of index.php to improve code clarity and maintainability. This ensures configuration settings are initialized before any other operations, reducing potential for unexpected behaviors and making the code easier to follow.
No functional changes introduced.
Enhanced configuration by introducing a dynamic GitHub URL. This change ensures the GitHub link in all language files is consistently updated based on the configuration, increasing maintainability and consistency across translations.
Enhanced the configuration and display logic to allow specifying preferred currencies, which are now ordered at the top of the list. This improves user experience by prioritizing commonly used currencies.
This also eliminates duplicate entries for the currently selected currency in the drop-down.
Introduced a new 'footer_links' configuration option allowing users to specify custom links to display in the footer. Each link includes 'text' and 'url'. This enhances the flexibility of the footer content, making it adaptable to various use cases.
Updated the index.php to dynamically generate these footer links if they are set in the configuration, ensuring they are rendered appropriately along with existing links.
Extended the decimal precision of the converted XMR value from 8 to 12 places. This ensures more accurate representation of conversion rates, especially critical for high-precision financial calculations.
Unified the decimal places to 8 for all cryptocurrency conversions in
fiatConvert function. This simplifies the logic and ensures consistent
precision across all supported cryptocurrencies.
Start fetching exchange rates immediately upon initialization, ensuring the most current data is available from the outset. This prevents potential inaccuracies during initial use if rates are only fetched after the interval delay.
Added translations for new currencies including Bitcoin Cash, Binance Coin, EOS.IO, Ripple, Stellar Lumens, Chainlink, Polkadot, Yearn.Finance, Georgian Lari, and Special Drawing Rights across multiple languages. This enhances the platform's comprehensive support for various cryptocurrencies, making it more accessible and informative for international users.
Refactored event listeners for XMR and fiat input fields, consolidating common logic and improving maintainability. Introduced explicit copy button IDs and enhanced their functionality by moving inline click handlers to addEventListener. These changes streamline form control interactions and ensure consistent behavior across different user inputs.
Additionally, removed redundant onchange handlers from the PHP file to simplify code and mitigate potential conflicts.
- Added config.php to ignore list for security reasons
- Clarified comments for NodeJS dependencies and Coingecko export data
- Ensured consistent use of leading slashes for ignored paths
Aligned info text more consistently by removing the unnecessary "clock" word in the time displays across different language files. This enhances readability and maintains uniformity in the presentation of exchange rate update times. No functional changes were made.
Changed the update frequency for exchange rates displayed on the site from every 5 seconds to approximately once per minute for all supported languages. This reflects the actual achievable update frequency given CoinGecko's rate limits.
No user-facing functionality is affected.
Added a missing semicolon to maintain consistent syntax and prevent potential issues in the German language translation file. This change ensures the proper functionality of the affected code.
Introduced a new configuration file allowing optional attribution
content and conditional display of the "Servers Guru" attribution
link. This enhances customizability and control over displayed
attributions.
The changes include:
- Adding a config.dist.php for default configurations.
- Modifying index.php to load and utilize the new configuration
options.
- Updating multiple language files to support the new attribution
and link display.
These modifications will enable users to have a more tailored
display of attributions on the website.
- Switched to using cURL for fetching data from CoinGecko API, with added error handling for failed requests. This reduces the chances of runtime errors and ensures fallback to previous data.
- Implemented periodic updates to exchange rates every 5 seconds in `main.js` to keep the rates current.
- Added OpenGraph meta tags on `index.php` for better social media integration.
- Minor CSS adjustments for better table rendering.
- Moved `import` statements for Bootstrap CSS and JS to the top in `main.js`.
Corrected spelling mistakes in the English translation file for "Tooltip Title" and "Swedish Krona" to improve accuracy and readability. These corrections ensure that the language used in the application is correct and professional, enhancing user experience.
Updated the tooltip descriptions for currency links to display full currency names where available, improving user clarity and interface usability. If a full name is not available, the currency code is still shown. This enhances the experience by making the tooltips more informative.
Enhanced the currency drop-down to display localized names if available. This improves user experience by showing familiar names in their local language. Ensures the default language is used if localization isn't specified.
Eliminated the redundant stylesheet inclusion to reduce unnecessary HTTP requests and improve page load performance. No impact on visual styling as the content of custom.css was deprecated and merged into main.css.
Replaced button element with a hyperlink to improve accessibility, ensuring better navigation for screen readers and users. Also, formatted the inline script for clarity and consistency. These changes contribute to a more user-friendly interface and maintain clean, readable code.
Updated to always output JSON in response, ensuring the latest data is provided to the client. Previously, data output was conditional based on the update interval. This change guarantees a more consistent API behavior and better user experience by always serving the current state, even if no recent update occurred.
Replaced the static list of currencies with a dynamic fetch from the CoinGecko API. Implemented a filter to exclude 'bits' and 'sats' from the fetched currencies. This ensures the currency list is always up-to-date and excludes unsupported currencies.
Consolidated currency list initialization and improved data fetching from CoinGecko API. Enhanced error handling for CURL requests. Optimized the logic for updating and saving currency data, ensuring more efficient and readable code. Ensured data write-back occurs only when sufficient time has elapsed since the last update.
- Moved currency data initialization to load dynamically from JSON.
- Removed static array of currencies, utilizing the JSON keys instead.
- Simplified exchange rate extraction to dynamically fetch values.
- Improved user language detection and selection process.
- Refactored HTML and PHP to dynamically generate language and currency options.
- Replaced various currency conversion logic with a dynamic implementation.
- Enhanced UI elements for better readability and maintainability.
- Consolidated inline JavaScript functions into external script for organization.
These changes reduce hardcoding, improve maintainability, and ensure that currency data is up-to-date and reflects user preferences more effectively.