crbelaus / trans

Embedded translations for Ecto
https://hex.pm/packages/trans
Apache License 2.0
231 stars 18 forks source link

Returning a translated record from the DB #78

Open bigardone opened 2 years ago

bigardone commented 2 years ago

👋🏼 Hi there, I just started using this great library (thanks for sharing it 🙌🏼 ), and I was wondering what would be the best approach to return a translated record from the DB. From what I've read in the main version, translated_as returns a translated field that Ecto can load into a struct, so I'm doing something like the following:

  def with_translated_name(query, locale) do
    from c in query,
      select_merge: %{name: translated_as(Car, c.name, locale)}
  end

Is this how it is intended to be used, or is there a better way of doing it without the select_merge? I haven't found any examples in the tests.

Thanks in advance!

crbelaus commented 1 year ago

Hi @bigardone, thanks four your interest in Trans!

At the moment this is the best way that we have. I have to think about it a bit more but maybe we can have a macro that allows you to translate multiple fields at once. This looks like a common use case that should be covered by the library.

bigardone commented 1 year ago

Hi @crbelaus, thanks for the reply 🙌. Having something that returns a translated record would be awesome! I'll stick to the select merge in the meantime 😊