I want to move to xliff instead of translating `Localizable.strings` and `Main.strings` files but I found out that I'm using `NSLocalizedString` in an improper way (and I did it for 5 years actually...). 

I don't like to have the translations directly inside my code, so I use a generic key and I do not write any comments: 

`NSLocalizedString("general.error", comment: "")`

Then I include the string into the Localizable.strings 

`"general.error" = "An error occured";`

So far so good (maybe). Now when I export xliff files I see that the `source` is just my generic key and obviously a translator cannot guess what to write as `target` for that key :/ 

So my question is: Is the only solution to move all the translations directly inside the `NSLocalizedString`?

`NSLocalizedString("An error occured", comment: "")` 

or inside the comment... (I really don't like this solution)

And what if the string is really long? it seems so strange to put a string of 3 rows directly into the code :/

Any other interesting solution out there? 

### EDIT

I've already tried to use constants, but it seems that this solution doesn't work in swift. I've created a `String.swift` file where I've added constants: 

`let thisIsMyLonStringID = "An here I can put the long translation";` 

And I can use it in this way:

`NSLocalizedString(thisIsMyLonStringID, comment: "")`

When I export to XLIFF this string is not available in the xliff files though :(