I'm applying number formatting to a PDF document, which works fine in a 'parent' record in the JSON data, but fails when used inside a table. How can I get the $formatNumber expression to work inside an array of data?
The data is being merged into an invoice document, and in one of the columns of the "Invoice Line Items" I'd like to format the number with the expression $formatNumber, '#,###.00'.
Here is the merge syntax in my word document:
This formatting works fine for the parent data:
{{ $formatNumber(QuoteLineItems.totalSize, '#,###.00') }}
This formatting fails when used inside a table (the output in the PDF si "NaN")
{{ $formatNumber(QuoteLineItems.records.AmountNet, '#,###.00') }}
Image: Comparison of Success vs Failure syntax
Image: PDF Output contains NaN in table
here is the sample input data I am using inside the word plugin document tagger:
{
"QuoteLineItems":
{
"records":
[
{
"AmountGross": 47897,
"AmountNet": 44556,
"Name": "Sample Charges"
},
{
"AmountGross": 4968,
"AmountNet": 4621,
"Name": "Sample 2 Charges"
}
],
"done": true,
"totalSize": 2
},
"Name": "Sample Invoice"
}
Sorry for the delay in answering this. This is a known bug (I'm going to check on the status). For now I suggest doing your number format in your code before sending it to the API. If that doesn't make sense, let me know and I'll clarify.
I am implementing an app using the Fixer.io API.
I wanted to retrieve the following:
currency description from a symbol (e.g. from EUR get EURO)
currency icon from a symbol
Is there any way to do so?
EDIT:
To obtain the description I am thinking of using the native iOS class nslocale:
https://developer.apple.com/documentation/foundation/nslocale/1642814-currencysymbol
There's a display name in the Supported Symbols Endpoint:
{
"success": true,
"symbols": {
"AED": "United Arab Emirates Dirham",
"AFN": "Afghan Afghani",
"ALL": "Albanian Lek",
"AMD": "Armenian Dram",
[...]
}
}
If you want to get the display name in another language, you can also use the java.util.Currency which has a method for names in local languages.
Or you can also give a try to the Java API for Fixer.io:
https://github.com/lico/jFixer
See also Fixer.io documentation:
https://fixer.io/documentation#supportedsymbols
In a json file, I have some fields that have a list of dictionaries with the locale and the translated text:
description_localized: [
{
locale: "en-UK",
value: "Read along"
},
{
locale: "de-DE",
value: "Lesen und"
},
{
locale: "fr-FR",
value: "Lis avec"
},
]
There are other fields where there are two keys in the value key:
path_localized: [
{
locale: "de-DE",
value: "{"identifier"=>"", "value"=>"http://path_6987.path"}"
},
{
locale: "es-ES",
value: "{"identifier"=>"", "value"=>"http://path_4685.path"}"
},
I already created a schema that grabs these fields, but instead of pulling the entire dictionary, on Graphql, I will need to be able to make a query where I only specify the language-locale I want (e.g. fr-FR) and that would only fetch the translated value for that one language (fr-FR). I don't want to get an array of all localized languages as this will be very taxing and will take longer to load per query.
Does anyone have any ideas on how I could accomplish this? Maybe through a resolver where I pass in the language as a parameter? But where would the languages be defined? I may need to clean this but we have an assortment of locale definitions: en_UK, en-UK, UK, en_UK_CO... Also, if the queried language is not found, how could I define a fallback?
Any guidance would be appreciated.
Thanks!
What stack are you working on, Node.js? If so, you can find a localization example here: https://github.com/kriasoft/nodejs-api-starter ..it uses "i18next" module to detect user's language, fallback to default language etc. then you can pass "lng" string as a context variable and use that inside of your "resolve()" methods. See src/app.js, src/Context.js.
I have a service which gives the language display name as part of response. I want to retrieve the language code so that I can apply the internationalization for output file.
Expected input : English - United States
Output : en_US
You might use something like that:
Optional<Locale> locale = Arrays.stream(Locale.getAvailableLocales())
.filter(l ->
l.getDisplayLanguage().equals("English") &&
l.getDisplayCountry().equals("United States")
).findAny();
locale.ifPresent(System.out::println);
I am using the slack API to get the full list of emoji, so that when I get a message, I will just replace :squirrel: with the icon.
The method https://slack.com/api/emoji.list works like a charm, but returns 30 icons only. I think this is correct since in the documentation page (https://api.slack.com/methods/emoji.list) they say:
This method lists the custom emoji for a team.
Fair enough, but how can I get the full list of the associations icon-name / icon URL ?
I finally managed to get all the icons and to use them and I post here the solution for anyone that would like to use do similar:
First of all, I got the Slack Custom Emoji through this slack URL
Since at step 1 we get only Custom Emojis, it is useful to know that slack uses standard emoji defined in unicode characters, mapped through custom handles like :smiley: or :horse:. The good thing is that we can find, linked through slack page a link to a JSON object with all the emoji mappings. This file is HUGE, but has everything we need.
In the file you'll find an array of javascript object like the one below:
{
"name":"SMILING FACE WITH OPEN MOUTH",
"unified":"1F603",
"variations":[],
"docomo":"E6F0",
"au":"E471",
"softbank":"E057",
"google":"FE330",
"image":"1f603.png",
"sheet_x":26,
"sheet_y":18,"
short_name":"smiley",
"short_names":["smiley"],
"text":":)",
"texts":["=)","=-)"],
"category":"People",
"sort_order":5,
"has_img_apple":true,
"has_img_google":true,
"has_img_twitter":true,
"has_img_emojione":true
}
I used the following information:
shortnames are the names that are used in slack (you'll need to turn smiley into :smiley: )
unified is the unicode character to use (to use it directly in an HTML page you'll need to add &#x so in this case you'll have to use 😃 which is rendered 😃
Using this information you will be able to create a slack-to-html function to decode emojis and display them wherever you want
Not entirely sure if this is what you are looking for, but if it's just about mapping images to slack-style names, this is a pretty good library:
https://github.com/iamcal/emoji-data
So, building on the example in their README:
The emoji with the Slack style short name point_uphas the hex value 261d, and can thus be found here: https://github.com/iamcal/emoji-data/blob/master/img-apple-160/261d.png
(Apple, because the default slack emoji are the apple emoji)
Just extending on #Luca's awesome solution, I've created a shortnames => html unicode javascript dictionary...
Download: Slack emoticons to unicode html mapping.
Generated - 17th August 2018 from the source https://raw.githubusercontent.com/iamcal/emoji-data/master/emoji.json
Example:
{
"+1": "👍",
"-1": "👎",
"100": "💯",
"1234": "🔢",
"8ball": "🎱",
"ab": "🆎",
"abc": "🔤",
"abcd": "🔡",
"accept": "🉑",
...
"zebra_face": "🦓",
"zipper_mouth_face": "🤐",
"zombie": "🧟",
"zzz": "💤"
}
Which becomes...
{ "+1": "👍", "-1": "👎", "100": "💯",
"1234": "🔢", "8ball": "🎱", "ab": "🆎",
"abc": "🔤", "abcd": "🔡", "accept": "🉑",
... "zebra_face": "🦓", "zipper_mouth_face": "🤐",
"zombie": "🧟", "zzz": "💤" }
As far as I know, there is no API endpoint or comprehensive list of supported emoji/keywords available. I was able to grab the full set (including custom emoji for the workspace) by inspecting the Slack emoji picker using React Developer Tools (Chrome extension).
Here's an example (JSON):
...
{
"name": "beers",
"unicode": "1f37b",
"id": "E1f37b",
"keywords": ["bar", "beer", "clink", "drink", "mug", "ale", "food"]
},
{
"name": "baby_bottle",
"unicode": "1f37c",
"id": "E1f37c",
"keywords": ["baby", "bottle", "drink", "milk", "infant"]
},
{
"name": "knife_fork_plate",
"unicode": "1f37d-fe0f",
"id": "E1f37d-fe0f",
"keywords": ["cooking", "fork", "knife", "plate"]
},
{
"name": "champagne",
"unicode": "1f37e",
"id": "E1f37e",
"keywords": ["bar", "bottle", "cork", "drink", "popping"]
},
{ "name": "popcorn", "unicode": "1f37f", "id": "E1f37f", "keywords": [] },
...
Full dump (as of 12/20/2020, excluding custom emoji): https://gist.github.com/impressiver/87b5b9682d935efba8936898fbfe1919
Since it seemed impossible to find a complete and up-to-date source for these emoji names I came up with this browser console script. Just let it run in Slack and when it finishes it will download a full emoji.json. At time of writing it contains 2485 entries.
https://gist.github.com/8461e125072c2806301403a4e1eca891
This looks like this:
{
"+1": "https://a.slack-edge.com/production-standard-emoji-assets/13.0/google-medium/1f44d#2x.png",
"+1::skin-tone-2": "https://a.slack-edge.com/production-standard-emoji-assets/13.0/google-medium/1f44d-1f3fb#2x.png",
"+1::skin-tone-3": "https://a.slack-edge.com/production-standard-emoji-assets/13.0/google-medium/1f44d-1f3fc#2x.png",
"+1::skin-tone-4": "https://a.slack-edge.com/production-standard-emoji-assets/13.0/google-medium/1f44d-1f3fd#2x.png",
If you want the actual emoji instead of the image you can parse that out of the image file name, e.g. 1f44d-1f3fd#2x.png is "\u1f44d\u1f3fd".