Code Monkey home page Code Monkey logo

adonis-translatable's Introduction

@stouder-io/adonis-translatable

Translatable fields for AdonisJS models.

npm

Installation

This package is available in the npm registry.

pnpm i @stouder-io/adonis-translatable

Usage

After installing the package, you can now decorate your translatable fields with the @translation decorator.

class Post extends BaseModel {
  @column()
  declare id: number

  @translation()
  declare title: Translation

  @translation()
  declare body: Translation
}

In your migrations, the translatable fields must be of type json.

export default class extends BaseSchema {
  protected tableName = 'posts'

  async up() {
    this.schema.createTable(this.tableName, (table) => {
      table.increments('id')
      table.json('title')
      table.json('body')
    })
  }
  
  async down() {
    this.schema.dropTable(this.tableName)
  }
}

When using your model, you can now access the translated fields.

const post = await Post.find(1)
post.title.get('fr')

You can access it and throw if it doesn't exist.

const post = await Post.find(1)
post.title.getOrFail('fr')

You can also set the translated fields.

const post = await Post.find(1)
post.title.set('fr', 'Mon titre')

Or fully replace the translations.

const post = await Post.find(1)
post.title = Translation.from({
  fr: 'Mon titre',
  en: 'My title',
})

adonis-translatable's People

Contributors

xstoudi avatar github-actions[bot] avatar

Stargazers

Natael Bernardo avatar Jeremy Chaufourier avatar Kouadio Fabrice N'guessan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.