Note: This is no longer really necessary, as Google released an alternative keyboard with an option to disable censorship. This is most useful for CM10.1 users that want to continue using the CM10.1-style keyboard. And fortunately, it's compiled for multiple versions of Android, so more people can use it.
Rationale:
I wish to use a broad vocabulary in my electronic communications. I want to type colorful words with the same user interface as other words (gesture typing). I want prediction. I want automatic spelling correction. By default, Android will recognize dirty words but won't correct their spelling and won't recognize them through gesture typing.
There are two keyboard mods attached: one to try out the keyboard, and one that will survive subsequent ROM flashes via an addon.d script. To restore the old keyboard, flash the restore package. I can also make a corresponding keyboard that supports a few other languages. (German, French, and Russian can definitely be added, but other languages would be harder.)
Build Details/Source
I regenerated the Android keyboard dictionaries from their source XML files, after changing them so the censored frequency was the same as the uncensored frequency. A new keyboard was then built. The base for this was CyanogenMod 10.1, so I'm not sure whether this will work on other ROMs. Please let me know. There are not significant changes from the CyanogenMod source. I built the source tree (which included a tool called "dicttool"), then used dicttool to regenerate main_en.dict file from input files en_whitelist.xml and the modified en_us_wordlist.xml (part of the codebase). Inspiration/information came from:
- http://forum.xda-developers.com/showthread.php?t=2087318
- https://code.google.com/p/softkeyboard/wiki/BinaryDictionaries
Changelog
1.1:
- Used the same predictive weights as the Google keyboard, except where the Google keyboard sets weight=0 (profanity, medical words).
- Added backup/restore capabilities. New users can flash the restore script. (1.0 users will have to install an original LatinIME.apk manually.)
Download
LatinIME-explicit-1.1.zip
LatinIME-explicit-persistent-1.1.zip
LatinIME-restore-1.1.zip
i`m gonna try it pm-ing you ... don`t get it wrong , just trying to see if it works
xanthrax said:
i`m gonna try it pm-ing you ... don`t get it wrong , just trying to see if it works
Click to expand...
Click to collapse
you wont have to send the PM to see if it works lol. if it works, just discard the PM
nah ... only if he/she`s gonna sue me ...:silly:
flashed both zips, doesn't work.
unsungkhan said:
flashed both zips, doesn't work.
Click to expand...
Click to collapse
do you know how to swear against someone ? type fuc... and check if the prediction appears
xanthrax said:
do you know how to swear against someone ? type fuc... and check if the prediction appears
Click to expand...
Click to collapse
lol, I did try, suggestion doesn't show up for curse words
did it work for you?
unsungkhan said:
lol, I did try, suggestion doesn't show up for curse words
did it work for you?
Click to expand...
Click to collapse
sure it does ! well , flashed only the first zip
-=-=-
down below it shows how useful it is when texting your boss
-=-=-
@fenstre , you can use it on OP :angel:
xanthrax said:
sure it does ! well , flashed only the first zip
-=-=-
down below it shows how useful it is when texting your boss
-=-=-
@fenstre , you can use it on OP :angel:
Click to expand...
Click to collapse
okay, flashed it once again, it works now.
thank you.
I just noticed for some reason "ill" is weighted more highly than "I'll". I'll investigate on Monday. If anybody else notices weird linguistic inconsistencies, please let me know. Cue before cute and cure. I think Google must use a different corpus for this dictionary.
I have flashed twice and still have no luck. I downloaded the first .zip, then flashed it via ROM Manager. The phone rebooted into recovery and I made sure that the package was installed.
What could I be doing wrong?
As I was testing this, I noticed the package sometimes didn't install when I selected it from within ROM Manager. It always installed from recovery, though. Does the md5sum of /system/app/LatinIME.apk start with "19dee2"? It should. Check it with any md5sum checker from Google Play.
Looking forward to next update....
Tap, tap says the wicked G()()GLE N4
Going to try on carbon and going to use it phablet mode on XYE
Sent from my Nexus 4 using xda app-developers app
New version
Version 1.1 fixes many incorrect word weights: I was taking the wrong word frequency from the XML dictionary. Also added a restore script (useful for new users only).
Does it work for Italian too?
Can you supply a change-log with detailed listings of words included or added?
How about a post with requests for words to be added?
Sent from my Nexus 4 using xda app-developers app
Just downloaded. Excited about testing. You would not believe how much the word duck annoys me.
---- update still the occasional duck when swyping but it seems to know what I mean with using tap tap auto correct . love it!
Sent from my Nexus 4 using Tapatalk 2
andynx1 said:
Can you supply a change-log with detailed listings of words included or added?
How about a post with requests for words to be added?
Click to expand...
Click to collapse
I took the words that were already in the phone's dictionary (with prediction frequency=0) and gave them nonzero frequency values. I didn't come up with these values myself, they were stored in a different part of the dictionary (being ignored). The list is exhaustive (see attached). If a word you use isn't on this list, the imperfect workaround is to add it to your personal dictionary in the phone's language settings.
gpvecchi said:
Does it work for Italian too?
Click to expand...
Click to collapse
The Italian dictionary that comes with CyanogenMod or AOSP Android doesn't have any frequency data at all for colorful Italian words, though they are enumerated. If you can find a linguistic corpus (sample of Italian word usage) that contains at least 10 or 20 instances of every swear word, I can use that to generate frequency data. Gesture typing and prediction don't work well without frequency values, because the wrong words would usually be predicted. So get me a large (very large) sample of Italian language, including all types of profanity (not just the words you like), and I'll regenerate the Italian dictionary.
A large sample of Italian dirty words? Once I found a public bathroom with a list written on a wall: it was named "**** dictionary" and it listed a serie of synonymous... It was "open source", so everyone could add it's own. One wall was already filled up...
Related
Guys,
At first I'd like to thank to all developers releasing us great firmware. I have a question; how can I configure or edit the Locale settings?
I have seen many Locale's on The Dude's edition, I wonder how can it be done?
Thank you in advance,
I would like to know... can we add Locale's? I am using the JF1.5 build and I only see english--- no biggie, I can just add hebrew (although it does remove chinese) by adding the dejavu fonts. I would just like to be able to choose a locale... like the regular folks.
I'm also interested in this
I've sent a PM to TheDude, haven't got a reply yet.
yochaigal said:
I would like to know... can we add Locale's? I am using the JF1.5 build and I only see english--- no biggie, I can just add hebrew (although it does remove chinese) by adding the dejavu fonts. I would just like to be able to choose a locale... like the regular folks.
Click to expand...
Click to collapse
we alredy have a hebrew onscreen keboard, by Hezi Cohen.
Come on iandroid.com...
Just to potentially bring this issue back out there, I am also interested in this. I have spent the last 4-5 hours scouring the internet with google trying to figure out how to add locales to builds, but I have not succeeded. I love the JF build, all that I am missing is Japanese Local as some of the apps look horrible when localized to English and there is no way to force an app to load in a specific language.
I recently started a new thread on this:
http://forum.xda-developers.com/showthread.php?t=535780&highlight=locales
What I have discovered is:
There is an app, called Custom Locales, that allows you to add new locales. You can either compile it from source, or run the emulator and adb pull it out.
I would try it, but eclipse no longer works on my ubuntu box, so I'll have to find another way.
CustomLocale.apk
So I was able to extract the custom locale app from the emulator... here it is:
http://yochai.dyndns.org:8888/android/apps/CustomLocale.apk
hope this helps someone, somehow!
Hello,
I've searched the forum, but I can't find an answer to this question:
Is it possible to add other locales than just English?
Dude's G build had a bunch of them. I'd like to have my national locale on JF1.5 as well.
No one? C'mon guys :/
I think the Locales are in the kernel, because i've never seen some files of them in the system directory for example. Could someone say if this is right?
I´d love Danish locales.
it depends. most of the UI you see belongs to different system apps. you'll have to modify the apks and add you own localization xml files. i guess you can get the original xmls from the source code repositories, otherwise you'll have to figure out a way to decompress the xmls in the apk.
Yeah but the hole system is still in English. The menus for example.
But I wonder why Dude's build has many locales and JF's doesn't?
KozzioU said:
But I wonder why Dude's build has many locales and JF's doesn't?
Click to expand...
Click to collapse
What are the langueges that Dude's build supports ?
Nayyak said:
What are the langueges that Dude's build supports ?
Click to expand...
Click to collapse
Dude's build has plenty, I have a MASSIVE list of them. I remember reading 72 somewher in his massive thread...
What I want to know is how to add different input methods. I'd love to be able to type in Japanese using the proper input rather than copy-pasting.
Locale
I'm searching too how to add other locale... and how to map my AZERTY keyboard...
I'm not sure but I think this is what you're looking for: http://developer.android.com/reference/java/util/Locale.html
There's a custom locales app too, compile that and run it and you can add locales to your phone. The system's language won't change though, each part has it's own XML file that stores the text for that language.
Look at the source of any of the built in apps, you'll see a values directories (more than one if you're looking at a cupcake build).
There are also values-fr, values-de, etc directories. The system loads the text from each of these depending on what locale is chosen.
You can also specify regions (values-en-rGB: English (Great Britain)).
In short, just setting a locale won't change the language of the phone, each individual app has to support that locale. If it doesn't, it uses the default values directory which is in English (US).
ganny said:
What I want to know is how to add different input methods. I'd love to be able to type in Japanese using the proper input rather than copy-pasting.
Click to expand...
Click to collapse
Well, I know that it has been a while since you posted this comment, but there is presently a REALLY good Japanese IME on the marketplace. Just search for simeji. It is made by a guy that goes by the name adamrocker you can find his blog and details about the IME on www.adamrocker.com. He just recently put the latest version on the marketplace, for a while it was just a horribly outdated version and he only released updates on his website.
For now I would just recommend that you do not download one of the local dictionaries as it makes the conversion table generation a little clunky.
the system language can be adjusted in many roms (cupcake based). The thing I am still looking for is the foreign (german) text prediction, I would like to add. The best would be to combine german and english, as I write in both languages.
Haven't found a solution for this yet
Since the threads moving forward, close to the right direction, github has some generous people helping filling in missing locals.
hey guys,
as the title suggest, can we install swype on the Desire HD?
It works exellent. I came from the galaxy s, and swype was the one thing i missed.
It worked just fine. But you will have to search for a version with your language in it. Then just install it as any APK file. Good luck
I've been using it just fine since I got my DHD - works great, although I wish the annoying pop up about custom words or whatever would disappear.
where to find it? download it i mean??
NoEnd said:
where to find it? download it i mean??
Click to expand...
Click to collapse
Google is your friend. That's all we are allowed to tell you in this forum.
olivierlee said:
Google is your friend. That's all we are allowed to tell you in this forum.
Click to expand...
Click to collapse
thanks bro
I find it annoying, when you double tap a word because it's wrong, you get the word selector as well as the Sense popup, so you can't see all the words
which version of swpe are you using i thought it had trouble with landscape on the DHD
I much prefer shapewriter to swype, they are not hugely different, but shapewriter has a few features i prefer.
PM me if you want to apk for the non expiring version. Its not available for sale anywhere, as the company that made it got bought up
Its one of the few apps i would be happy to pay for!
AndyCr15 said:
I find it annoying, when you double tap a word because it's wrong, you get the word selector as well as the Sense popup, so you can't see all the words
Click to expand...
Click to collapse
Try hitting the back button when you get the sense popup and the word selector, it makes the sense popup disappear on the version of Swype I'm using, thus giving you full view of the word selector.
Florida
combat goofwing said:
which version of swpe are you using i thought it had trouble with landscape on the DHD
Click to expand...
Click to collapse
Im useing 1.6. Would like a newer version with swedish layout and dictionary.
1.6 works great tough. Swype is really awsome as soon as you get used to it.
I do agree that Swype works flawlessly on the DHD....
However, I must admit, I like the HTC keyboard better....
It better predicts and auto corrects the words I need (in Dutch), also, with swype I find it more difficult to type letter by letter...
FloridaK said:
Try hitting the back button when you get the sense popup and the word selector, it makes the sense popup disappear on the version of Swype I'm using, thus giving you full view of the word selector.
Click to expand...
Click to collapse
I can do this, but then when I choose a word, it inserts it wherever the cursor is so I'm left with giberish
Also, I have contact with a surname that keeps being used when I Swype 'mate'. I did what it said to remove it, it didn't work. I even removed the contact itself... didn't work!
Any ideas?
AndyCr15 said:
I can do this, but then when I choose a word, it inserts it wherever the cursor is so I'm left with giberish
Also, I have contact with a surname that keeps being used when I Swype 'mate'. I did what it said to remove it, it didn't work. I even removed the contact itself... didn't work!
Any ideas?
Click to expand...
Click to collapse
Which Sywpe version are you using? I have rolled back to an older version as the newer beta is absolute crap, the word selector was driving me up the wall.
Version 2.10.52.13753.t100
I would agree it seems to have go worse These days it seems much harder for it to work out what I write. Which version do you have?
AndyCr15 said:
Version 2.10.52.13753.t100
I would agree it seems to have go worse These days it seems much harder for it to work out what I write. Which version do you have?
Click to expand...
Click to collapse
I have moved back to version 2.4.44.10912.t100 I was using your version but I can't get on with it. At all.
Thanks for the tip. I've found that version, I'll give it a go
Hi,
If people are still looking for Swype, I have version 2.15.56.14870 -
I got invited into the beta on Friday was using it before then, the latest versoin is nice, the speech to text is a nice feature.
iridium21 said:
Hi,
If people are still looking for Swype, I have version 2.15.56.14870 -
Click to expand...
Click to collapse
I'd edit that ASAP, you're offering illegal software.
Hello all.
I decided to start developing apps for WP7 and since I really wanted to have my own Translate app I decided to make one. I only started C# programming yesterday but it looks that it's really similar to VB.Net (which I have been doing for 3 years ). This is my first app I made for WP7 therefore it's really simple.
Simple UI: (GoogleTranslate.zip) the simpliest ever Google translate client (prototype) with basic features. Most languages are available though not every combination has been tested.
It can remember default language settings by selecting the 'set default (target/source) language' option in the menu.
Version 0.1: (GoogleTranslate-0.1.zip)
Added country flags
A few graphical effects when an item is selected
Auto save of current language settings (no more set as default)
Added an additional page for choosing source and target language
Version 0.2: (in development)
Renamed to GTranslate
Added Korean language
'Language Settings' page renamed to 'Settings'
Add About subpage in 'Settings'
Activated text wrapping for textbox on translation page
Globalisation support (application needs to be translated to different languages though)
Added 'History Page' with date, time of translation and a 'tap and hold' menu
Using a blue gradient as a background (no matter what phone theme is)
New logo
Added a nice tile based start-up page
Changed/revamped transitions
Added a progressbar to show progress when translating
Some other bug fixes
No Marketplace Yet! Only to be installed on Chevron unlocked devices.
I need some beta testers! PM me if you are happy to help
Screenshoots of all versions:
https://picasaweb.google.com/mateuszd.MD/GTranslate?authkey=Gv1sRgCP71w5DmiMv8PQ&feat=directlink
I hope it works all right like it does on my HD2 and the WP7 Emulator.
The very base of this app is here: Source
Enjoy and please report feedback.
P.S: I just realised the posts release date was 2010 not 2011! What a fail!
Hi,
Thank you very much for developing.
I've installed the translater on my HD2 WP7.
Working great.
If I find a bug I will let you know but first I need to play with it.
Grtz, Leo
thanks mate...
great work
tried now and no problem for now
Hi Laurentius26.
Thanks for the first comment.
I may improve this app a bit when I have some free time but the college work is currently killing any bits of free time I have unfortunately. Also please increase my Thanks Meter + 1 if you know what I mean.
I am also looking for suggestions for apps to make. If you have an idea to make something good. Please let me know.
@Alesscam: Thanks and enjoy.
Hi,
Thanks for developing.Working great.
You to thank you mate,
the app performs good I have nothing to complain.
No bugs.
My thanks meter allows me to do 5 thank you a day, but I will thank you tomorrow haha
Good luck with college
mateuszd said:
Hi Laurentius26.
Thanks for the first comment.
I may improve this app a bit when I have some free time but the college work is currently killing any bits of free time I have unfortunately. Also please increase my Thanks Meter + 1 if you know what I mean.
I am also looking for suggestions for apps to make. If you have an idea to make something good. Please let me know.
@Alesscam: Thanks and enjoy.
Click to expand...
Click to collapse
Hey all. I prepared a new version of this app that has a bit different UI. I will post screenshots soon and upload it a bit later.
Sounds good, thanks Mateus.
mateuszd said:
Hey all. I prepared a new version of this app that has a bit different UI. I will post screenshots soon and upload it a bit later.
Click to expand...
Click to collapse
no korean
no korean yet?
Suggestion
Hi!
Installed and works great!
Can you extend the app bottom bar with a button that switches source and target languages? Wouldn't be so hard to code and it would be a nice function to have I think.
Thanks,
Cina.
Hi. The new version has the language switch button.
Doesn't it?
I'm not sure about Korean language. I will have a look into that.
Sent from my HD2 using XDA App
wer can i find the tool here?
i found nothing under the name "google translate"
http://wp7applist.com
siddartha said:
wer can i find the tool here?
i found nothing under the name "google translate"
http://wp7applist.com
Click to expand...
Click to collapse
Currently it's only available at XDA so no other websites know about it.
You can download it from the first post but it's only for unlocked devices.
I will publish it to the official market for like £0.50 when I improve it.
ah ok, thx for the info
Version 0.2 is coming with a nicer UI, some bugfixes and new features.
I think I will make it a market version.
I have changed the name of it to GTranslate.
Does anyone want to be a beta tester? PM me
Hi everyone,
I've created a translation tool. It's written in Java for Servlet Spec 3.0, and uses OpenID for authentication. Currently i've only implemented a PostgreSQL back-end but it can easily support MySQL or even AppEngine.
If anyone is interested, i'll open-source it so you can host it yourself.
You can try it out, by helping me translate my app Timesheet: :laugh:
https://llamalab.com/timesheet/translation/
Please leave any feedback about the tool here.
ballzak said:
Hi everyone,
I've created a translation tool. It's written in Java for Servlet Spec 3.0, and uses OpenID for authentication. Currently i've only implemented a PostgreSQL back-end but it can easily support MySQL or even AppEngine.
If anyone is interested, i'll open-source it so you can host it yourself.
You can try it out, by helping me translate my app Timesheet: :laugh:
https://llamalab.com/timesheet/translation/
Please leave any feedback about the tool here.
Click to expand...
Click to collapse
Wow, I just started to use this translator and I am really surprised, all thumbs up! :good::good:
It's easy to use and very fast switching to next translation string. It's very pleasing. And I am very happy, you'll open source this piece of software, great. Is it possible that you host other translation projects or is this intended as a demonstration? However, thanks for that, I really like
EDIT:
Where is the source available or will be? Would frankly put this tool in first post for the developers. Also, if you need further tests for your timesheet app, go ahead to App Tester Index.
benkxda said:
Wow, I just started to use this translator and I am really surprised, all thumbs up! :good::good:
It's easy to use and very fast switching to next translation string. It's very pleasing. And I am very happy, you'll open source this piece of software, great. Is it possible that you host other translation projects or is this intended as a demonstration? However, thanks for that, I really like
EDIT:
Where is the source available or will be? Would frankly put this tool in first post for the developers. Also, if you need further tests for your timesheet app, go ahead to App Tester Index.
Click to expand...
Click to collapse
I made it for the translation of my own app. But if others would like to use the tool, i'll open-source it. I just made the tool public so i'd like some usage feedback, bug squashing, before i'll post the source on github or alike.
It's not a cloud service. If you got a server running a Java Servlet container like Tomcat with a PostgreSQL database, you'll be able to host it yourself as is. If you use MySQL we'll maybe have to change some sql statement first.
gaich said:
I would prefer I can edit or delete my translations.
I have made an error and it cannot be deleted. So I make another translation, the right one, but when I return to this line, I see the first one, with error, is still present and is above the right one, I tried to rate the wrong one down and the right one viceversa, it doesn`t work. Does it mean the wrong translation can be merged?
Click to expand...
Click to collapse
Fixed the bug that prevented you from down-rating a translation alternative. As for deleting. Tricky to implement, don't want users to delete an established alternative that may have gotten votes. Maybe allow the person who submitted it to only remove it for a certain time?
As it is now, only the administrator can "approve" an translation alternative, which is then exported. I was thinking the administrator would go through the translations and approve the highest rated translation. But it may be better if i'll add an "approver" user role so that a trusted contributor, like yourself , can approve a certain language translations?
gaich said:
And in the summary section of each xml I`d like to see two more columns, right to the NAME, maybe, a column with the original text and to the right of TRANSLATED - a column with the translated text. Let them be abbreviated to save space, but it will be very useful to search through the text, return to the strings I want to correct etc. It is hard to search through codes indicated in NAMES...
Or, instead of this, it would be great to have a separate page with a table where I can see just the original text on one side and the translation on the other - so i could have the whole translation to correct in context, because now I can forget which Russian term I assigned to "Mileage", for example in the first lines of the translation and I can translate it with different word at the end. And when I can see the whole translation, I can easily correct it. Right now I have to search through the codes and even corrected I am not sure the wrong translation will be dismissed or included, as I said earlier.
Click to expand...
Click to collapse
Sounds reasonable. I'll see what i can do.
gaich said:
By the way, Russian is done, just these things above should be taken into account.
Click to expand...
Click to collapse
Wow, thanks! Your a super-hero. :good:
ballzak said:
Fixed the bug that prevented you from down-rating a translation alternative. As for deleting. Tricky to implement, don't want users to delete an established alternative that may have gotten votes. Maybe allow the person who submitted it to only remove it for a certain time?
As it is now, only the administrator can "approve" an translation alternative, which is then exported. I was thinking the administrator would go through the translations and approve the highest rated translation. But it may be better if i'll add an "approver" user role so that a trusted contributor, like yourself , can approve a certain language translations?
Click to expand...
Click to collapse
Of course, people shouldn`t delete other user`s translations! I am talking about only one who submitted it could delete and edit it.
For example - you just put your hand an keyboard occasionaly and typed something like fagerwtywrjkoivthi genk;xcnF and submitted it ocasionaly too, and there will be found many "experienced" users to vote and rank this translation, as a result, it will appear in the app when it is released.
It is true, sometimes I read translations on crowding and cannot downrate the incorrect ones because there are more than 1 vote for it!
It`s easier, when you`re proofreader or, as you say, approver, such person is necessary, it has the rights to edit, delete and approve all translations for this language. It makes the unique style for the app - because it isn`t always good if there are many translators - they could use different terms and expressions and all will be rated by the third user... As a result the app user will be confused with different meanings of the same word.
I am proofreader for some crowding projects, so I am sure these translations will be good for the user. Not sure other will.
So if you will make such kind of person and grant him such kind or rights, I will be glad to help you with Russian!:laugh:
P.S.-I still cannot downrate the incorrect translations.
P.P.S.S. even if I sign in with other account.
gaich said:
Of course, people shouldn`t delete other user`s translations! I am talking about only one who submitted it could delete and edit it.
For example - you just put your hand an keyboard occasionaly and typed something like fagerwtywrjkoivthi genk;xcnF and submitted it ocasionaly too, and there will be found many "experienced" users to vote and rank this translation, as a result, it will appear in the app when it is released.
It is true, sometimes I read translations on crowding and cannot downrate the incorrect ones because there are more than 1 vote for it!
It`s easier, when you`re proofreader or, as you say, approver, such person is necessary, it has the rights to edit, delete and approve all translations for this language. It makes the unique style for the app - because it isn`t always good if there are many translators - they could use different terms and expressions and all will be rated by the third user... As a result the app user will be confused with different meanings of the same word.
I am proofreader for some crowding projects, so I am sure these translations will be good for the user. Not sure other will.
So if you will make such kind of person and grant him such kind or rights, I will be glad to help you with Russian!:laugh:
P.S.-I still cannot downrate the incorrect translations.
P.P.S.S. even if I sign in with other account.
Click to expand...
Click to collapse
I've implemented "contributors" and given you "approver" status for Russian. You should be able to down-rate. The translation alternatives are sorted by "rating", you just didn't see the current rating number. Only the admin and approver can see that, so now you should see it.
Wow I just tried your translation tool and I am impressed!
Any news about open sourcing it?
iapps said:
Wow I just tried your translation tool and I am impressed!
Any news about open sourcing it?
Click to expand...
Click to collapse
The front-end for the participating translator is pretty complete. But i've not had the time to fix the developer side ui, for adding and updating the strings to be translated. It's a hazzle to use, and until i fix that it's not ready for release.
ballzak said:
The front-end for the participating translator is pretty complete. But i've not had the time to fix the developer side ui, for adding and updating the strings to be translated. It's a hazzle to use, and until i fix that it's not ready for release.
Click to expand...
Click to collapse
OK! If/When it's ready I will be interested in hosting a copy on app engine so that anyone can use! :good: