As it should be. "I am canadian" and "I am from canada" are not interchangeable. For example, I am currently living in Canada but I am not canadian. If I were to go to, say, Tailand, I could say that I am from canada but not that I am canadian.
first point- of course you could be "from spain". Let's say that you know Spanish and while living/studying/working in Spain you go on a research expedition to Indonesia, along with a number of groups of other researchers from various countries. If an Indonesian guide asks you where you're from, you could say that you're from Spain. That's where you're coming from, and you belong to the Spanish group of researchers. He doesn't give a damn if you were born in Mozambique or in England, he wants to know what research party you belong to.
Second point: I am obviously just learning Portuguese too, but I'm 99% sure that no portuguese speaker would ever say "Eu estou Canadense" (in this context). That just doesn't exist, it makes no sense. It would be like saying "eu estou oyttb" (my screen name if you didn't notice). Logically it might make sense that my name can change (as could my sex, my religious beliefs, or any number of other things you generally use "stare" to describe) and therefore I would use "estou" for that, but languages aren't terribly logical and it just doesn't work that way.
I live in London. I have lived in London for 30 years, but I was born in Manchester. If I went somewhere else (say, Portugal...) would I be from Manchester instead of London?
What if I was born somewhere else entirely like Eddie Izzard. Is he not English?
Also, it is Eu estou and that applies if you are only temporarily in Spain (such as for a vacation). If you live in Spain then it is Eu sou (especially if you do not intend to leave as that becomes a defining characteristic of who you are).
Of course with additional Portuguese skills it can be changed up and expanded to something like, I come from/live in Spain but I am English (though born in Germany).
Countries in Portuguese have gender. Canadá is masculine. De + o (article for masculine words) = do.
How is Canadá masculine? It ends with "a" so wouldn't it be feminine meaning this should be "eu sou da Canadá"?
Canada is masculine in French (Le Canada), Spanish (El Canadá), and Italian (Il Canada). Likewise, it kept the same masculine gender in another romance language - Portuguese.
spanish speaker just said "canada" we do not give a gender to this word it just sounds weird if we "el canada" or "la canada" this means this word has no gender at all
It is not a hard and fast rule that the last letter of the word determines the gender. Besides, "á" is not "a".
Accented "a" at the end of a noun in Portuguese is usually masculine: o chá, o guaraná, o pá, o sofá, o galã, o imã, o talismã, o cardigã, o sutiã, o amanhã
Exceptions (cause there always are):
a maçã, a lã
Just a correction: pá is a feminine noun, a pá. (I don't know if there's other meaning, but just in case, I'm talking about that thing to collect garbage. And I'm brazilian, so I don't know if that applies to all portuguese speaking countries)
You are correct. I had meant to put "a pá" as an exception but somehow put it in the main list. =]
Some other exceptions are, a manhã ("morning" versus "tomorrow" which is, o amanhã), and also, a irmã, a vilã, a órfã...
Meanwhile, there is the unaccented, "o dia" to remember and which throws so many new learners off! =)
Thanks for pointing out my error. It really does help. :)