473,698 Members | 1,997 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

i want to create a program that translates a sentance in english to another language

77 New Member
I want to help teach to a minority group in Milwaukee, so I want to create a dictionary program that translates a sentence (like a homework problem or teacher instructions), from English into Hmong.

I have one Idea, and that is to have an English text file of all the A-words, then a Hmong text file of the proper translations. Each text file would have the same amount of lines, with one english word per line, then translated to hmong. Would it be even possible to..

1. user inputs question, "Describe the holocaust"
2. describe is looked in the d text (like if d, search d.txt), then the word is found. then it either compares it to a translation txt (like hmong-d.txt), spitting out the word. then it would prompt to the next word to translate, one line at a time.

A different way was to have 1 giant text file for each letter. like look up "albino", when it finds the word in the a a-dictionary, it searches for the albino string, then finds the comma, then spits out the word/words after the comma. would this be possible as well? which method is easiest for someone that hasn't c++ in a few years?

so far I have a useless code typed up. i just want to start simple getting a-words to work, then get more complex from there. once i have a start i can go with it. please help me, i would love to reach the needs of my esl students who could use this greatly in the US.

summary,i want to take a line of words, compare each word to a specific dictionary, then output one line at a time, the translation. thank you so much!

this code is not correct:

#include <iostream> // I/O
#include <fstream> // file I/O
#include <iomanip> // format manipulation
#include <string>

//This program will hopefully translate english to hmong
using namespace std;
string english; //declare english word to translate
string search; //what to search

int main()
{

cout << "Type the english words here, then press enter. Make sure to copy the words correctly. If you need to spell check use www.google.com" ;
cin >> english;

ifstream myFile;
myFile.open ("c:\\eAh.txt") ;

string* search = english; //search using input
int offset; // where it was found (or not (-1))
if ((offset = line.find(searc h, 0)) != string::npos) {
cout << "found '" << search << "' @ offset " << offset << endl;
}

return 0;
}
May 22 '07
91 7765
DeMan
1,806 Top Contributor
I thought you were entering texct on teh command line? Is this not the case?
You could also use getline as in the example for the Dicationary file(s) if you want input from a file
May 22 '07 #11
jerger
77 New Member
the function you had did not exhist... but i removed it and it works but no matter what you cin/enter for input it spits out the entire text which is better then nothing! hehe.

this part did not compile because of strncmp

if(strncmp(line , english, englis.length() )


what i want is... users to insert a sentance... but for now, a word. like "apple". then have it say... hmm... apple starts with a, look at a.txt (a dictionary, or if i have to, one super dictionary of a-z)... once it finds the word apple followed by a space = sign " = ", it would then spit out the word apple = koj (or however it is in the other language)... so it will say the word in english then = then hmong... so love = hlub, so it would search l dictionary (i can figure out if's later, if not a super dictionary a-z), find love, stop then print

love = hlub ...

it would then end line, and go onto the next word to translate.. until finished with the sentance. however at this stage i just want it to find a word, and spit it out with the translation.

example:
"input your sentance to be translated" love

love = hlub


how do i make the stuff stop printing after it prints the line i need? do i end it after a endl; ? or is there a different way? thanks for your help! i feel like were on the right track. i found some cool c examples but c doesnt compile well on my comp, c++ you wrote is a good start for me
May 22 '07 #12
DeMan
1,806 Top Contributor
strncmp(a, b, c) - compare string a with string b over c characters - english is misspelt in my example it should be
if(strncmp(line , english, english.length( ))
May 22 '07 #13
weaknessforcats
9,208 Recognized Expert Moderator Expert
You should use an association table. That is the only way to resolve a many-to-many relationship.

In C++ this would be a multimap. One for English/Hmong and another for Hmong/English.

You should not have to write a lot of code.

For example, using Spanish as an example, submitting "Hello" as an English key may have several Spanish equivalents. Use iterators with the equal_range algorithm to determined the low and high iterator value for "Hello". Then simply traverse the range to get your possible choices:

Hola
Buenos dias
Como esta usted?
etc...
May 22 '07 #14
jerger
77 New Member
i tried this instead, but i imagine it might get rather large and tidious. is there a way to move the dictionary from internal the program to a .txt file?

#include <map>
#include <string>
#include <iostream>

using namespace std;

string pause; // pause the program

int main()
{
map<string,stri ng> dictionary;

// examples of adding to the dictionary
dictionary["I"] = "kuv";
dictionary["love"] = "hlub";
dictionary["you"] = "kij";

// searching the dictionary
string translateme; //user input

cout<<"Please enter the English words / sentance to be translated to Hmong:" << endl;
cin>>translatem e;

string s = translateme;

map<string,stri ng>::iterator it = dictionary.find (s);

if (it != dictionary.end( ))
{
cout << s << " = " << it->second << "\n";
}
else
{
cout << s << " not found in the dictionary\n";
}

cin >>pause;
return 0;
}


what i need to do now, is add words. but i also then need to turn your if statements into a function that will translate each individual word. so i need to make it stop after the space, translate... then move onto the next word correct? hmm... lol
May 22 '07 #15
DeMan
1,806 Top Contributor
Why can't you use the file as you did before?
What are the errors you were getting?

Using the text file would be a far better idea...
May 22 '07 #16
jerger
77 New Member
i guess i am lost. this one compiled so i was like sweet!

but the other one I hadn't compiled right. so i should try it again.
May 22 '07 #17
DeMan
1,806 Top Contributor
Generally (in programs this small), so long as you can find the first error during compile, the problem is (reasonably) easy to trace.
When strange errors appear, it is most commonly mismatched parentheses or missing semi-colons.
May 22 '07 #18
jerger
77 New Member
deman i get these errors with your code

Expand|Select|Wrap|Line Numbers
  1.  
  2. 37 C:\hmong dictionary.cpp no matching function for call to `strncmp(std::string&, std::string&, <unknown type>)' 
  3.  
  4. note C:\temp\Dev-Cpp\include\string.h:51 candidates are: int strncmp(const char*, const char*, size_t)
  5.  
May 22 '07 #19
DeMan
1,806 Top Contributor
you can try substituting english.length( ) with english.size()
(in fact english is not declared in my original example, so you may like to add "string english" below "string line" if you haven't already.

Seeing as you have got an array version working, you may like to add the filehandling from the first with the array operations of the latter (then you don't need the strncmp), so that you read from a file into an array. Once you have the array, you can use the find method as you are.
May 22 '07 #20

Sign in to post your reply or Sign up for a free account.

Similar topics

4
1761
by: Derek Fountain | last post by:
I'm just starting another PHP project and can see a familiar task not far on the horizon. I have several database record tuples that I need to manipulate - person, department, client, job, etc. - and each one needs a form where the user can enter new details to create a new tuple in the DB, another form where the user can enter a name/id/whatever to query the DB and display the results, another form where the user can modify the existing...
8
1789
by: Aziz McTang | last post by:
Hi Group, I am not an experienced programmer at all. I've learned html and css well enough to hand-write simple websites. I'm now looking to move to the next step. Initially, I'd like to do 3 things: 1) Generate web pages This one's fairly obvious maybe. 2) Create a simplified translation package specific to my line of work:
52
9640
by: piaseckiac | last post by:
I am producing a website on air and need a link to change the entire website from standard to metric for temperature, pressure, miles-kilometers, and volume. Thank you.
46
12535
by: vvk4 | last post by:
I have an excel spreadsheet that I need to parse. I was thinking of saving this as a CSV file. And then reading the file using C. The actual in EXCEL looks like: a,b a"b a","b a,",b In CSV format looks like: "a,b","a""b","a"",""b","a,"",b" Does anybody have suggestions or have C program based code to parse CSV. Please reply to the message board itself. I do not wish to get spam.
39
2103
by: Quick Fox | last post by:
Hi All, Please help for following case: How to Load a Assembly from DLL file and create instance of the class in the loaded file. I want make a function that get 2 string parameters (Assembly file Name and Class Name) and create a instance. Thanks
182
7503
by: Jim Hubbard | last post by:
http://www.eweek.com/article2/0,1759,1774642,00.asp
4
2124
by: Chris F Clark | last post by:
Please excuse the length of this post, I am unfortunately long-winded, and don't know how to make my postings more brief. I have a C++ class library (and application generator, called Yacc++(r) and the Language Objects Library) that I have converted over to C#. It works okay. However, in the C# version, one has to build the class library into the generated application, because I haven't structured this one thing right. I would like to...
13
3041
by: jerger | last post by:
my program takes users input (words/sentance) and translates it from english to hmong. I have to main variables, but cannot post my entire code. char In; CString in; basically the user cin >> In; then later in = In, then computes using the dictionary. is there anyway i can remove ! commas and periods from the input before translating in my dictionary? i keep getting error codes. if i do this (first idea) if (strcmp(In, "!") == 0)...
0
1698
by: bvdb | last post by:
Hi Everyone, One of my customers lives in Taiwan and can only make my program work if he changes his Regional and Language Options to English from the Simplifies Chinese that his computer is normally set to use. Switching back and forth is very inconvenient for him. Is there a way that I can compile my program so that it works with the Regional Options set to Simplified Chinese? I set my PC Regional Options to Simplified Chinese,...
0
8671
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
8598
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
9016
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
8887
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
8856
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
6515
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5858
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
4360
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
3037
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.