fbt-inline-translations
TypeScript icon, indicating that this package has built-in type declarations

0.2.0 • Public • Published

👽 Inline translations for FBT

The extension serves to effectively translate your application using inline translations so that you can view strings you are translating in context. If you right-click on the underlined string, the translation dialog appears and you will be able to vote for the available translations or submit a new one.

You can make translations available to your translators, users, or the entire community and make your product multilingual.

Translations can also be approved by your trusted translator(s).

Demo of FBT inline translating

ℹ️ Usage notes

📦 Installing

npm install fbt-inline-translations

How to add polyfills in Webpack 5

Errors in the terminal will give hints on how to add the required polyfill.

Example for path module:

In your Webpack config:

module.exports = {
  resolve: {
    // ...
    fallback: {
      "buffer": require.resolve("buffer/"),
      "url": require.resolve("url/"),
      "path": require.resolve("path-browserify"),
      "http": require.resolve("stream-http"),
      "https": require.resolve("https-browserify"),
    },

    alias: {
      process: "process/browser",
    },

    plugins: [
      // Work around for Buffer is undefined:
      // https://github.com/webpack/changelog-v5/issues/10
      new webpack.ProvidePlugin({
        Buffer: ['buffer', 'Buffer'],
      }),
      new webpack.ProvidePlugin({
        process: 'process/browser',
      }),
    ],
  },
};

and

npm install buffer url path-browserify stream-http https-browserify --save-dev
# you may need to clear your cache after this change
rm -fr node_modules/.cache

Restart the Dev Server and the error will be gone.

🔧 Configuration

Register your FBT project on Swiftyper Translations

Non-React usage

Add this code to your page:

<div id="inline-translator"></div>

<script src="https://cdn.jsdelivr.net/npm/fbt-inline-translations/dist/bundle.js"></script>
<script>
    swiftyperInlineTranslations({
        token: 'YOUR_API_KEY_HERE',
        locale: 'sk_SK', // translation locale
        contributor: 'contributor@email.com', // contributor must be invited
        darkMode: false, // dark mode also depends on html class 'tw-dark'
    })
</script>

React usage

In your application, wrap your App component. We recommend adding it around your root component in the index.js file.

// src/index.js

import ReactDOM from 'react-dom';
import { FbtInlineTranslationsWrapper } from 'fbt-inline-translations';

ReactDOM.render(
  <FbtInlineTranslationsWrapper
    token={'YOUR_API_KEY_HERE'}
    locale={"sk_SK"} // translation locale
    contributor={"contributor@email.com"} // contributor must be invited
    darkMode={false} // dark mode also depends on html class 'tw-dark'
  >
    <App />
  </FbtInlineTranslationsWrapper>,
  document.getElementById('root')
);

/fbt-inline-translations/

    Package Sidebar

    Install

    npm i fbt-inline-translations

    Weekly Downloads

    7

    Version

    0.2.0

    License

    MIT

    Unpacked Size

    52 kB

    Total Files

    32

    Last publish

    Collaborators

    • swiftyper